diff --git a/package.yaml b/package.yaml
index f6b071c..4b6139e 100644
--- a/package.yaml
+++ b/package.yaml
@@ -70,7 +70,7 @@ scripts:
   watch: parcel watch --no-autoinstall
 
   # Production build
-  build-dist: parcel build --no-cache --no-autoinstall && rename '.html' '.html.hbs' dist/*.html
+  build-dist: parcel build --no-cache --no-autoinstall
 
   # Checks
   check: tsc --noEmit
@@ -78,5 +78,7 @@ scripts:
   lint: eslint --max-warnings=0 --format unix src
 
 # Parcel config
-source: src/index.html
+source:
+  - src/index.html
+  - src/404.html
 browserslist: '> 1%, not dead'
diff --git a/src/404.html b/src/404.html
new file mode 100644
index 0000000..b1ec2e3
--- /dev/null
+++ b/src/404.html
@@ -0,0 +1,21 @@
+<extends src="./lib/html/base.html">
+  <block name="content">
+    <section class="section">
+      <div class="container">
+        <h1 class="title has-text-weight-normal">404</h1>
+
+        <div class="columns">
+          <div class="column content">
+            <!-- prettier-ignore -->
+            <markdown>
+              Whatever you were expecting to see here doesn't exist.
+
+              If you were sent here from a link and you really think
+              this page *should* exist, feel free to contact me!
+            </markdown>
+          </div>
+        </div>
+      </div>
+    </section>
+  </block>
+</extends>