diff --git a/.eleventy.js b/.eleventy.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f24433f098043f67b94114bf0418c6fbd184386
--- /dev/null
+++ b/.eleventy.js
@@ -0,0 +1,140 @@
+const { DateTime } = require("luxon");
+const fs = require("fs");
+const pluginRss = require("@11ty/eleventy-plugin-rss");
+const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
+const pluginNavigation = require("@11ty/eleventy-navigation");
+const pluginSEO = require('eleventy-plugin-seo');
+const markdownIt = require("markdown-it");
+const markdownItAnchor = require("markdown-it-anchor");
+const lodash = require('lodash');
+const redirect = require('./build/redirect');
+
+module.exports = function(eleventyConfig) {
+  eleventyConfig.addPlugin(pluginRss);
+  eleventyConfig.addPlugin(pluginSyntaxHighlight);
+  eleventyConfig.addPlugin(pluginNavigation);
+  eleventyConfig.addPlugin(pluginSEO);
+
+  redirect('/2020/03/14/The-Discord-privacy-scandal.html', '/articles/discord.html');
+  redirect('/2020/05/02/Twitter-we-need-a-break.html', '/articles/twitter.html');
+  redirect('/2020/05/02/Twitter-we-need-a-break.html', '/articles/mastodon.html');
+  redirect('/2020/05/18/Isolation-the-effects-on-mental-health.html', '/articles/isolation.html');
+
+  eleventyConfig.addShortcode('removeTrailingSlash', string => string.replace(/\/$/, ''));
+
+  eleventyConfig.setDataDeepMerge(true);
+
+  eleventyConfig.addLayoutAlias("post", "post.html");
+  eleventyConfig.addLayoutAlias("base", "base.html");
+
+  eleventyConfig.addFilter("readableDate", dateObj => {
+    return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat("dd LLL yyyy");
+  });
+
+  eleventyConfig.addCollection('articles', (collectionAPI) => 
+    collectionAPI.getFilteredByGlob('./articles/*.md')
+  );
+
+  eleventyConfig.addCollection('responses', (collectionAPI) => 
+    collectionAPI.getFilteredByGlob('./responses/*.md')
+  );
+
+  // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
+  eleventyConfig.addFilter('htmlDateString', (dateObj) => {
+    return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat('yyyy-LL-dd');
+  });
+
+  eleventyConfig.addShortcode('get', function (object, path) {
+    return lodash.get(object, path);
+  });
+
+  eleventyConfig.addShortcode('env', function () {
+    return process.env.NODE_ENV || 'development';
+  });
+
+  eleventyConfig.addShortcode('synth_reverse', function (array) {
+    return [...array].reverse();
+  });
+
+  eleventyConfig.addPairedShortcode('takeaway', content => 
+      `<div class="take-away">${content}</div>`
+  );
+
+//   eleventyConfig.addShortcode('isDefined', function ())
+
+  // Get the first `n` elements of a collection.
+  eleventyConfig.addFilter("head", (array, n) => {
+    if( n < 0 ) {
+      return array.slice(n);
+    }
+
+    return array.slice(0, n);
+  });
+
+//   eleventyConfig.addCollection("tagList", require("./_11ty/getTagList"));
+
+  eleventyConfig.addPassthroughCopy("img");
+  eleventyConfig.addPassthroughCopy("styling");
+  eleventyConfig.addPassthroughCopy("assets");
+
+  /* Markdown Overrides */
+  let markdownLibrary = markdownIt({
+    html: true,
+    breaks: true,
+    linkify: true
+  }).use(markdownItAnchor, {
+    permalink: true,
+    permalinkClass: "direct-link",
+    permalinkSymbol: "#"
+  });
+  eleventyConfig.setLibrary("md", markdownLibrary);
+
+  // Browsersync Overrides
+  eleventyConfig.setBrowserSyncConfig({
+    callbacks: {
+      ready: function(err, browserSync) {
+        // const content_404 = fs.readFileSync('_site/404.html');
+
+        // browserSync.addMiddleware("*", (req, res) => {
+        //   // Provides the 404 content without redirect.
+        //   res.write(content_404);
+        //   res.end();
+        // });
+      },
+    },
+    ui: false,
+    ghostMode: false
+  });
+
+  return {
+    templateFormats: [
+      "md",
+      "html",
+      "liquid",
+      "pug"
+    ],
+
+    // If your site lives in a different subdirectory, change this.
+    // Leading or trailing slashes are all normalized away, so don’t worry about those.
+
+    // If you don’t have a subdirectory, use "" or "/" (they do the same thing)
+    // This is only used for link URLs (it does not affect your file structure)
+    // Best paired with the `url` filter: https://www.11ty.io/docs/filters/url/
+
+    // You can also pass this in on the command line using `--pathprefix`
+    // pathPrefix: "/",
+
+    markdownTemplateEngine: "liquid",
+    htmlTemplateEngine: "liquid",
+    dataTemplateEngine: "liquid",
+
+    // These are all optional, defaults are shown:
+    dir: {
+      input: "./",
+      includes: "_includes/",
+      layouts: "_includes/layouts/",
+      data: "_data",
+      output: "_site"
+    }
+  };
+};
diff --git a/.eleventyignore b/.eleventyignore
new file mode 100644
index 0000000000000000000000000000000000000000..3bbe627b95f7423b3830c0531f8582267f8baaac
--- /dev/null
+++ b/.eleventyignore
@@ -0,0 +1,4 @@
+new-blog/
+old/
+.vercel/
+node_modules/
\ No newline at end of file