diff --git a/.gitignore b/.gitignore
index 55f3de909..ef586ac8d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,9 +5,15 @@ corpora/
keys/
# Website
+website/.cache/
+website/public/
+website/node_modules
+website/.npm
+website/logs
+*.log
+npm-debug.log*
website/www/
website/_deploy.sh
-website/.gitignore
# Cython / C extensions
cythonize.json
diff --git a/website/.prettierrc b/website/.prettierrc
new file mode 100644
index 000000000..7555c734a
--- /dev/null
+++ b/website/.prettierrc
@@ -0,0 +1,38 @@
+{
+ "semi": false,
+ "singleQuote": true,
+ "trailingComma": "es5",
+ "tabWidth": 4,
+ "printWidth": 100,
+ "overrides": [
+ {
+ "files": "*.sass",
+ "options": {
+ "printWidth": 999
+ }
+ },
+ {
+ "files": "*.mdx",
+ "options": {
+ "tabWidth": 2,
+ "printWidth": 80,
+ "proseWrap": "always"
+ }
+ },
+ {
+ "files": "*.md",
+ "options": {
+ "tabWidth": 2,
+ "printWidth": 80,
+ "proseWrap": "always",
+ "htmlWhitespaceSensitivity": "strict"
+ }
+ },
+ {
+ "files": "*.html",
+ "options": {
+ "htmlWhitespaceSensitivity": "strict"
+ }
+ }
+ ]
+}
diff --git a/website/404.jade b/website/404.jade
deleted file mode 100644
index af4e7d0f2..000000000
--- a/website/404.jade
+++ /dev/null
@@ -1,12 +0,0 @@
-//- 💫 404 ERROR
-
-include _includes/_mixins
-
-+landing-header
- h1.c-landing__title.u-heading-0
- | Ooops, this page#[br]
- | does not exist!
-
- h2.c-landing__title.u-heading-3.u-padding-small
- +button(false, true, "secondary-light")(href="javascript:history.go(-1)")
- | Click here to go back
diff --git a/website/README.md b/website/README.md
index 15e73c651..7c38d0371 100644
--- a/website/README.md
+++ b/website/README.md
@@ -1,143 +1,559 @@
-
+
# spacy.io website and docs
-The [spacy.io](https://spacy.io) website is implemented in [Jade (aka Pug)](https://www.jade-lang.org), and is built or served by [Harp](https://harpjs.com). Jade is an extensible templating language with a readable syntax, that compiles to HTML.
-The website source makes extensive use of Jade mixins, so that the design system is abstracted away from the content you're
-writing. You can read more about our approach in our blog post, ["Rebuilding a Website with Modular Markup"](https://explosion.ai/blog/modular-markup).
+_This page contains the documentation and styleguide for the spaCy website. Its
+rendered version is available at https://spacy.io/styleguide._
+---
-## Viewing the site locally
+
+
+The [spacy.io](https://spacy.io) website is implemented using
+[Gatsby](https://www.gatsbyjs.org) with
+[Remark](https://github.com/remarkjs/remark) and [MDX](https://mdxjs.com/). This
+allows authoring content in **straightforward Markdown** without the usual
+limitations. Standard elements can be overwritten with powerful
+[React](http://reactjs.org/) components and wherever Markdown syntax isn't
+enough, JSX components can be used.
+
+> #### Contributing to the site
+>
+> The docs can always use another example or more detail, and they should always
+> be up to date and not misleading. We always appreciate a
+> [pull request](https://github.com/explosion/spaCy/pulls). To quickly find the
+> correct file to edit, simply click on the "Suggest edits" button at the bottom
+> of a page.
+>
+> For more details on editing the site locally, see the installation
+> instructions and markdown reference below.
+
+## Logo {#logo source="website/src/images/logo.svg"}
+
+import { Logos } from 'widgets/styleguide'
+
+If you would like to use the spaCy logo on your site, please get in touch and
+ask us first. However, if you want to show support and tell others that your
+project is using spaCy, you can grab one of our
+[spaCy badges](/usage/spacy-101#faq-project-with-spacy).
+
+
+
+## Colors {#colors}
+
+import { Colors, Patterns } from 'widgets/styleguide'
+
+
+
+### Patterns
+
+
+
+## Typography {#typography}
+
+import { H1, H2, H3, H4, H5, Label, InlineList, Comment } from
+'components/typography'
+
+> #### Markdown
+>
+> ```markdown_
+> ## Headline 2
+> ## Headline 2 {#some_id}
+> ## Headline 2 {#some_id tag="method"}
+> ```
+>
+> #### JSX
+>
+> ```jsx
+>