diff --git a/docs/.gitignore b/docs/.gitignore
new file mode 100644
index 0000000000..8782b2d294
--- /dev/null
+++ b/docs/.gitignore
@@ -0,0 +1,3 @@
+#docfx
+_site
+api
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000000..44ed3528af
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,21 @@
+# Perspex Documentation
+
+* [API Reference](http://perspex.github.io/)
+
+## Building
+
+Download and unzip `docfx.zip` into `Documentation` folder from [DocFX project site](https://github.com/dotnet/docfx/releases).
+
+**Step 1.** To create `_site` documentation folder run build script
+
+```
+build.cmd
+```
+
+**Step 2.** To browse `_site` documentation folder run serve script
+
+```
+serve.cmd
+```
+
+And you can view the generated website in your browser `http://localhost:8080`.
diff --git a/docs/build.cmd b/docs/build.cmd
new file mode 100644
index 0000000000..b11ad76376
--- /dev/null
+++ b/docs/build.cmd
@@ -0,0 +1,3 @@
+@echo off
+docfx metadata
+docfx build
diff --git a/docs/docfx.json b/docs/docfx.json
new file mode 100644
index 0000000000..8775904c6a
--- /dev/null
+++ b/docs/docfx.json
@@ -0,0 +1,55 @@
+{
+ "metadata": [
+ {
+ "src": [
+ {
+ "files": [
+ "/src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj",
+ "/src/Gtk/Perspex.Gtk/Perspex.Gtk.csproj",
+ "/src/Markup/Perspex.Markup/Perspex.Markup.csproj",
+ "/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj",
+ "/src/Perspex.Animation/Perspex.Animation.csproj",
+ "/src/Perspex.Application/Perspex.Application.csproj",
+ "/src/Perspex.Base/Perspex.Base.csproj",
+ "/src/Perspex.Controls/Perspex.Controls.csproj",
+ "/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj",
+ "/src/Perspex.HtmlRenderer/Perspex.HtmlRenderer.csproj",
+ "/src/Perspex.Input/Perspex.Input.csproj",
+ "/src/Perspex.Interactivity/Perspex.Interactivity.csproj",
+ "/src/Perspex.Layout/Perspex.Layout.csproj",
+ "/src/Perspex.ReactiveUI/Perspex.ReactiveUI.csproj",
+ "/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj",
+ "/src/Perspex.Styling/Perspex.Styling.csproj",
+ "/src/Perspex.Themes.Default/Perspex.Themes.Default.csproj",
+ "/src/Skia/Perspex.Skia.Desktop/Perspex.Skia.Desktop.csproj",
+ "/src/Windows/Perspex.Designer/Perspex.Designer.csproj",
+ "/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj",
+ "/src/Windows/Perspex.Win32/Perspex.Win32.csproj",
+ ],
+ "exclude": [ "**/bin/**", "**/obj/**" ],
+ "cwd": ".."
+ }
+ ],
+ "dest": "api"
+ },
+ ],
+ "build": {
+ "content":
+ [
+ {
+ "files": ["**/*.yml", "index.md", "tutorial/*.md", "guidelines/*.md", "spec/*.md"],
+ }
+ ],
+ "resource": [
+ {
+ "files": ["images/**", "tutorial/images/**", "guidelines/images/**", "spec/images/**"]
+ }
+ ],
+ "overwrite": "apidoc/*.md",
+ "globalMetadata": {
+ "_appTitle": "Perspex Website"
+ },
+ "dest": "_site",
+ "template": "default"
+ }
+}
diff --git a/docs/build.md b/docs/guidelines/build.md
similarity index 100%
rename from docs/build.md
rename to docs/guidelines/build.md
diff --git a/docs/contributing.md b/docs/guidelines/contributing.md
similarity index 100%
rename from docs/contributing.md
rename to docs/guidelines/contributing.md
diff --git a/docs/guidelines/toc.yml b/docs/guidelines/toc.yml
new file mode 100644
index 0000000000..a3ef7bb87d
--- /dev/null
+++ b/docs/guidelines/toc.yml
@@ -0,0 +1,4 @@
+- name: Building Perspex
+ href: build.md
+- name: Contributing
+ href: contributing.md
\ No newline at end of file
diff --git a/docs/add-dialogs.png b/docs/images/add-dialogs.png
similarity index 100%
rename from docs/add-dialogs.png
rename to docs/images/add-dialogs.png
diff --git a/docs/images/cross-platform.png b/docs/images/cross-platform.png
new file mode 100644
index 0000000000..70ded84bf8
Binary files /dev/null and b/docs/images/cross-platform.png differ
diff --git a/docs/images/hello-world-xaml.png b/docs/images/hello-world-xaml.png
new file mode 100644
index 0000000000..f649984500
Binary files /dev/null and b/docs/images/hello-world-xaml.png differ
diff --git a/docs/images/inspection-support.png b/docs/images/inspection-support.png
new file mode 100644
index 0000000000..849c590cf5
Binary files /dev/null and b/docs/images/inspection-support.png differ
diff --git a/docs/perspex-video.png b/docs/images/perspex-video.png
similarity index 100%
rename from docs/perspex-video.png
rename to docs/images/perspex-video.png
diff --git a/docs/screen.png b/docs/images/screen.png
similarity index 100%
rename from docs/screen.png
rename to docs/images/screen.png
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000000..c470b988d2
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,37 @@
+# The Perspex UI Framework
+
+Cross platform .NET UI Framework with bindings and XAML
+
+## Current status
+
+We're pleased to announce that Perspex is now in alpha!
+
+What does alpha mean? Well, it means that it's now at a stage where you can have a play and hopefully create simple applications. There's now a Visual Studio Extension containing project and item templates that will help you get started, and there's an initial complement of controls. There's still a lot missing, and you will find bugs, and the API will change, but this represents the first time where we've made it somewhat easy to have a play and experiment with the framework.
+
+## How do I try it out
+
+The easiest way to try out Perspex is to install the [Visual Studio Extension](https://visualstudiogallery.msdn.microsoft.com/a4542e8a-b56c-4295-8df1-7e220178b873).
+
+This will add a Perspex project template and a Window template to the standard Visual Studo "Add" dialog (yes, icons still to come :) ):
+
+
+
+Creating a Perspex Project will give you a simple project with a single XAML window. There's currently no designer, and not even any type-checking or intellisense for Perspex's xaml, but it works when you press F5, which is the important part!
+
+
+
+You can also find the project [on GitHub](https://github.com/Perspex/Perspex/)
+
+## News
+
+You can read news about Perspex on [Groky's blog](http://grokys.github.io/)
+
+## Cross Platform
+
+Fow now we can run on Windows, Linux and Mac.
+
+
+
+## Inspection support
+
+
diff --git a/docs/serve.cmd b/docs/serve.cmd
new file mode 100644
index 0000000000..8d19925938
--- /dev/null
+++ b/docs/serve.cmd
@@ -0,0 +1,2 @@
+@echo off
+docfx serve _site
diff --git a/docs/architecture.md b/docs/spec/architecture.md
similarity index 100%
rename from docs/architecture.md
rename to docs/spec/architecture.md
diff --git a/docs/defining-properties.md b/docs/spec/defining-properties.md
similarity index 100%
rename from docs/defining-properties.md
rename to docs/spec/defining-properties.md
diff --git a/docs/styles.md b/docs/spec/styles.md
similarity index 100%
rename from docs/styles.md
rename to docs/spec/styles.md
diff --git a/docs/spec/toc.yml b/docs/spec/toc.yml
new file mode 100644
index 0000000000..e5c40d7544
--- /dev/null
+++ b/docs/spec/toc.yml
@@ -0,0 +1,8 @@
+- name: Perspex Architecture
+ href: architecture.md
+- name: Styling in Perspex
+ href: styles.md
+- name: Defining Properties
+ href: defining-properties.md
+- name: Working with Properties
+ href: working-with-properties.md
\ No newline at end of file
diff --git a/docs/working-with-properties.md b/docs/spec/working-with-properties.md
similarity index 100%
rename from docs/working-with-properties.md
rename to docs/spec/working-with-properties.md
diff --git a/docs/toc.yml b/docs/toc.yml
new file mode 100644
index 0000000000..3720b4fcbe
--- /dev/null
+++ b/docs/toc.yml
@@ -0,0 +1,10 @@
+- name: Home
+ href: index.md
+- name: Getting Started
+ href: tutorial/
+- name: Guidelines
+ href: guidelines/
+- name: Specifications
+ href: spec/
+- name: API Documentation
+ href: api/
diff --git a/docs/gettingstarted.md b/docs/tutorial/gettingstarted.md
similarity index 82%
rename from docs/gettingstarted.md
rename to docs/tutorial/gettingstarted.md
index 21f85a7088..c26b064dde 100644
--- a/docs/gettingstarted.md
+++ b/docs/tutorial/gettingstarted.md
@@ -1,8 +1,8 @@
-# Getting Started
+# Getting Started
## Windows
-
+
The easiest way to try out Perspex is to install the Visual Studio Extension.
@@ -12,4 +12,4 @@ This will add a Perspex project template and a Window template to the standard V
It is a little more manual on non-Windows platforms, but using Xamarin Studio you can install the Perspex NuGet package.
-
+
diff --git a/docs/tutorial/images/add-dialogs.png b/docs/tutorial/images/add-dialogs.png
new file mode 100644
index 0000000000..c89d025e01
Binary files /dev/null and b/docs/tutorial/images/add-dialogs.png differ
diff --git a/docs/add-packages.png b/docs/tutorial/images/add-packages.png
similarity index 100%
rename from docs/add-packages.png
rename to docs/tutorial/images/add-packages.png
diff --git a/docs/tutorial/toc.yml b/docs/tutorial/toc.yml
new file mode 100644
index 0000000000..9f4a411cf4
--- /dev/null
+++ b/docs/tutorial/toc.yml
@@ -0,0 +1,2 @@
+- name: Getting Started
+ href: gettingstarted.md
diff --git a/readme.md b/readme.md
index 6eec66c9ae..f4cb42f927 100644
--- a/readme.md
+++ b/readme.md
@@ -5,11 +5,11 @@
A multi-platform .NET UI framework. It can run on Windows, Linux, Mac OS X, iOS and Android.
-
+
Desktop platforms:
-
+
Mobile platforms:
@@ -43,19 +43,19 @@ framework.
## Documentation
As mentioned above, Perspex is still in alpha and as such there's not much documentation yet. You can
-take a look at the [getting started page](docs/gettingstarted.md) for an
+take a look at the [getting started page](docs/tutorial/gettingstarted.md) for an
overview of how to get started but probably the best thing to do for now is to already know a little bit
about WPF/Silverlight/UWP/XAML and ask questions in our [Gitter room](https://gitter.im/Perspex/Perspex).
-There's also a high-level [architecture document](docs/architecture.md) that is currently a little bit
+There's also a high-level [architecture document](docs/spec/architecture.md) that is currently a little bit
out of date, and I've also started writing blog posts on Perspex at http://grokys.github.io/.
Contributions are always welcome!
## Building and Using
-See the [build instructions here](https://github.com/grokys/Perspex/blob/master/docs/build.md)
+See the [build instructions here](docs/guidelines/build.md)
## Contributing ##
-Please read the [contribution guidelines](docs/contributing.md) before submitting a pull request.
+Please read the [contribution guidelines](docs/guidelines/contributing.md) before submitting a pull request.