diff --git a/ROADMAP.md b/ROADMAP.md
new file mode 100644
index 0000000000000000000000000000000000000000..1056374baaed9a580bd7c9d3d3960d965f51beaf
--- /dev/null
+++ b/ROADMAP.md
@@ -0,0 +1,73 @@
+*Last updated: 21. April 2021*
+
+# Roadmap
+
+## 0.4: Voice
+
+This update introduces voice support to REVOLT.
+
+Beta entry is now **closed** for this version as we have reached maximum capacity, if you do really want access, contact me directly through [https://insrt.uk](https://insrt.uk).
+
+### Release Features
+
+[x]  Voice Chat
+[ ]  Deafening
+[ ]  Volume Sliders
+[ ]  Show Call Status Globally
+[ ]  Ringing
+
+### General Features
+
+[x]  Ability to change username.
+[x]  Markdown User Profiles
+[x]  User Badges
+[x]  User Status
+  [x]  Status Indicators
+[x]  Re-designed languages page in settings.
+[x]  Ability to change group name / description.
+[x]  Mention auto-complete.
+[x]  Emoji auto-complete.
+
+### Improvements
+
+[x]  Combo box design.
+[x]  User selector design.
+[x]  Show participants on sidebar.
+[x]  Improve call design.
+[ ]  Use server configuration to determine endpoints for voso.
+
+## 0.4.1: CDN Rework
+
+This update aims to refine how the CDN works.
+
+### Features
+
+[x]  Add support for S3.
+[x]  Remove EXIF data.
+[ ]  Link embeds.
+[ ]  Image proxy.
+[x]  Announce max file limit through server configuration.
+[x]  Save file size to database, and display it in client.
+[x]  Improve image / video detection, hence allow more file types.
+[ ]  Ability to change group icons.
+[ ]  Ability to change user profile picture.
+[ ]  Ability to change user profile background image.
+
+### Improvements
+
+[ ]  Use combined environment file for docker deployment.
+[x]  Allow failed image / video uploads to be uploaded as a normal file.
+
+# 0.5: Servers
+
+### Features
+
+[ ]  Ability to create a server.
+[ ]  Creating server channels.
+[ ]  Deleting server channels.
+[ ]  Ability to change server name.
+[ ]  Mini member pop out.
+[ ]  Bot support.
+[ ]  Permission editor.
+[ ]  Invites.
+[ ]  Webhooks for groups / guild channels.
diff --git a/components/Footer.tsx b/components/Footer.tsx
index 09fb5dd583169c08b8c9427a59ae1ff0775995e9..090407ff848ff428b8526fb9b6dbbf817add4714 100644
--- a/components/Footer.tsx
+++ b/components/Footer.tsx
@@ -24,7 +24,9 @@ export function Footer() {
                 <div className={styles.column}>
                     <b>App</b>
                     <a href={URLs.App}>Open App</a>
-                    <a href={URLs.Roadmap}>Roadmap</a>
+                    <Link href="/roadmap">
+                        <a>Roadmap</a>
+                    </Link>
                     {/*<a>Download</a>
                     <a>Features</a>
                     <a>Branding</a>*/}
diff --git a/components/Markdown.module.scss b/components/Markdown.module.scss
index 0154eff88158d3dc782f9cd41ac8c7adcae272ae..caf4a7aee7863f59f940de06501ebf1f5a1a71fa 100644
--- a/components/Markdown.module.scss
+++ b/components/Markdown.module.scss
@@ -30,4 +30,41 @@
             opacity: 0.8;
         }
     }
+
+    input[type="checkbox"] {
+        opacity: 0;
+        margin-top: 12px;
+        pointer-events: none;
+        display: inline-block;
+    }
+
+    label {
+        pointer-events: none;
+    }
+
+    input[type="checkbox"] + label:before {
+        width: 32px;
+        height: 32px;
+        content: 'a';
+        line-height: 32px;
+        position: relative;
+        border-radius: 6px;
+        background: white;
+        display: inline-block;
+    }
+
+    input[type="checkbox"][checked="true"] + label:before {
+        content: '✓';
+        align-items: center;
+        display: inline-flex;
+        justify-content: center;
+        background: var(--accent);
+    }
+
+    input[type="checkbox"] + label {
+        top: -6px;
+        line-height: 20px;
+        padding-left: 6px;
+        position: relative;
+    }
 }
diff --git a/components/Markdown.tsx b/components/Markdown.tsx
index a49743ca73be1d321efed621a319e6e22a2961be..66e094d89d9f9a3ac16f4702370e9ed2cad29a55 100644
--- a/components/Markdown.tsx
+++ b/components/Markdown.tsx
@@ -1,9 +1,11 @@
 import MarkdownIt from "markdown-it";
 import styles from './Markdown.module.scss';
 import MarkdownItAnchor from "markdown-it-anchor";
+import MarkdownItCheckbox from "markdown-it-checkbox";
 
 export const md: MarkdownIt = MarkdownIt({ breaks: true, linkify: true })
-    .use(MarkdownItAnchor, { level: 3 });
+    .use(MarkdownItAnchor, { level: 3 })
+    .use(MarkdownItCheckbox);
 
 interface Props {
     content?: string;
diff --git a/components/Navbar.tsx b/components/Navbar.tsx
index eef22784342e9d98e99a3febd928d57c057a2fcd..80bfa33c9d5f497960a0811c541040ac5782455f 100644
--- a/components/Navbar.tsx
+++ b/components/Navbar.tsx
@@ -1,5 +1,4 @@
 import Link from 'next/link';
-import { URLs } from '../urls';
 import styles from './Navbar.module.scss';
 import { Globe } from '@styled-icons/feather';
 
@@ -12,7 +11,9 @@ export function Navbar() {
                 </a>
             </Link>
             <div className={styles.actions}>
-                <a href={URLs.Roadmap} target="_blank">Roadmap</a>
+                <Link href="/roadmap">
+                    <a>Roadmap</a>
+                </Link>
                 {/* <a>Developers</a> */}
                 {/* <a>Download</a> */}
                 {/*<a><Globe size={28} strokeWidth={2} /></a>*/}
diff --git a/package.json b/package.json
index 556c59d232a41d8830f2c35a0cab92706049b523..ca9f4dc64533d91143d759beb11bb7cfcd6c0d06 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
     "classnames": "^2.3.1",
     "markdown-it": "^12.0.6",
     "markdown-it-anchor": "^7.1.0",
+    "markdown-it-checkbox": "^1.1.0",
     "sass": "^1.32.10",
     "styled-components": "^5.2.3",
     "typescript": "^4.2.4"
diff --git a/pages/roadmap.tsx b/pages/roadmap.tsx
index 99ba684ed9e536795b65840783ec4f82fb4f26fc..2c106e9f8167399af200a55b332a7921b9d0dffc 100644
--- a/pages/roadmap.tsx
+++ b/pages/roadmap.tsx
@@ -8,7 +8,7 @@ export default function Home({ content }: { content: string }) {
     return (
         <div>
             <Head>
-                <title>About Revolt</title>
+                <title>Roadmap - Revolt</title>
                 <link rel="icon" href="/favicon.ico" />
                 <meta name="viewport" content="width=device-width, initial-scale=0.9, user-scalable=0" />
             </Head>
@@ -25,7 +25,7 @@ export default function Home({ content }: { content: string }) {
 
 export async function getStaticProps() {
     const { readFile } = require('fs/promises');
-    const file = await readFile('./legal/About.md');
+    const file = await readFile('./ROADMAP.md');
     const content = file.toString();
     
     return { props: { content } }
diff --git a/urls.ts b/urls.ts
index e3af57874fcddda2eea095f7e006853b63185e59..d3c983f36cd41fab467c225367b181a77bc5415b 100644
--- a/urls.ts
+++ b/urls.ts
@@ -1,7 +1,6 @@
 export const URLs = {
     Apply: 'https://revolt.chat/beta',
     App: 'https://app.revolt.chat',
-    Roadmap: 'https://www.notion.so/Roadmap-d285602ba73543438bf1cdb0a4754514',
     Developers: 'https://developers.revolt.chat',
 
     Feedback: 'https://form.insrt.uk/form/607f276fed17160022857908',
@@ -9,7 +8,5 @@ export const URLs = {
     Reddit: 'https://reddit.com/r/revoltchat',
     Twitter: 'https://twitter.com/revoltchat',
 
-    Translate: 'https://weblate.insrt.uk/engage/revolt/?utm_source=widget',
-
-    AboutUs: 'https://www.notion.so/About-f12f76fcbb124e27824639bac5dbbf11'
+    Translate: 'https://weblate.insrt.uk/engage/revolt/?utm_source=widget'
 };
diff --git a/yarn.lock b/yarn.lock
index c99137d257e9e4202da38db4a9b12a2b541caf13..6a4c10c7b3c6798ca0ea44659f9155ad72f1be5e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1284,6 +1284,13 @@ markdown-it-anchor@^7.1.0:
   resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-7.1.0.tgz#30fb21497bf59e83ff4d1ddc052d821962e2489e"
   integrity sha512-loQggrwsIkkP7TOrESvmYkV2ikbQNNKhHcWyqC7/C2CmfHl1tkUizJJU8C5aGgg7J6oXVQJx17gk7i47tNn/lQ==
 
+markdown-it-checkbox@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/markdown-it-checkbox/-/markdown-it-checkbox-1.1.0.tgz#20cff97f33d77d172f9dcf1bcfc92cecc5330fac"
+  integrity sha1-IM/5fzPXfRcvnc8bz8ks7MUzD6w=
+  dependencies:
+    underscore "^1.8.2"
+
 markdown-it@^12.0.6:
   version "12.0.6"
   resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.6.tgz#adcc8e5fe020af292ccbdf161fe84f1961516138"
@@ -2102,6 +2109,11 @@ unbox-primitive@^1.0.0:
     has-symbols "^1.0.2"
     which-boxed-primitive "^1.0.2"
 
+underscore@^1.8.2:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1"
+  integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==
+
 unpipe@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"