diff --git a/website/client/assets/images/404.png b/website/client/assets/images/404.png
new file mode 100644
index 0000000000..664f25070d
Binary files /dev/null and b/website/client/assets/images/404.png differ
diff --git a/website/client/components/404.vue b/website/client/components/404.vue
new file mode 100644
index 0000000000..5201b55b5c
--- /dev/null
+++ b/website/client/components/404.vue
@@ -0,0 +1,55 @@
+
+.row
+ .col-12.text-center
+ // @TODO i18n. How to setup the strings with the router-link inside?
+ img.not-found-img(src='~assets/images/404.png')
+ h1.not-found Sometimes even the bravest adventurer gets lost.
+ h2.not-found Looks like this link is broken or the page may have moved, sorry!
+ h2.not-found Head back to the Homepage or Contact Us about the issue.
+
+
+
+
+
\ No newline at end of file
diff --git a/website/client/components/appFooter.vue b/website/client/components/appFooter.vue
index 15334be709..262bfc9b3b 100644
--- a/website/client/components/appFooter.vue
+++ b/website/client/components/appFooter.vue
@@ -119,6 +119,7 @@
padding-top: 3em;
margin: 0;
color: #878190;
+ z-index: 99;
a {
color: #878190;
diff --git a/website/client/router.js b/website/client/router.js
index 005693fc7b..1a7e41a1aa 100644
--- a/website/client/router.js
+++ b/website/client/router.js
@@ -85,6 +85,8 @@ const QuestsPage = () => import(/* webpackChunkName: "shops-quest" */'./componen
const SeasonalPage = () => import(/* webpackChunkName: "shops-seasonal" */'./components/shops/seasonal/index');
const TimeTravelersPage = () => import(/* webpackChunkName: "shops-timetravelers" */'./components/shops/timeTravelers/index');
+import NotFoundPage from './components/404';
+
Vue.use(VueRouter);
const router = new VueRouter({
@@ -253,6 +255,7 @@ const router = new VueRouter({
{ name: 'pressKit', path: 'press-kit', component: PressKitPage, meta: {requiresLogin: false}},
{ name: 'privacy', path: 'privacy', component: PrivacyPage, meta: {requiresLogin: false}},
{ name: 'terms', path: 'terms', component: TermsPage, meta: {requiresLogin: false}},
+ { name: 'notFound', path: 'not-found', component: NotFoundPage, meta: {requiresLogin: false} },
],
},
{
@@ -263,6 +266,7 @@ const router = new VueRouter({
{ name: 'contributors', path: 'contributors', component: HeroesPage },
],
},
+ { path: '*', redirect: { name: 'notFound' } },
],
});