diff --git a/SciPost_v1/settings/base.py b/SciPost_v1/settings/base.py
index 7d5cb452e8c2a242f72eeaa562e17d5a9394876e..0f1ff47d561e9f69470f0aaaa49864410e6be9eb 100644
--- a/SciPost_v1/settings/base.py
+++ b/SciPost_v1/settings/base.py
@@ -77,6 +77,7 @@ INSTALLED_APPS = (
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
+    'django.contrib.sites',
     'django_countries',
     'django_extensions',
     'django_mathjax',
@@ -113,9 +114,13 @@ INSTALLED_APPS = (
     'funders',
     'stats',
     'petitions',
-    'webpack_loader'
+    'sitesserved',
+    'webpack_loader',
+    'maintenancemode',
 )
 
+SITE_ID = 1
+
 
 HAYSTACK_CONNECTIONS = {
     'default': {
@@ -172,6 +177,7 @@ MIDDLEWARE = (
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
     'django.middleware.security.SecurityMiddleware',
+    'maintenancemode.middleware.MaintenanceModeMiddleware',
 )
 
 ROOT_URLCONF = 'SciPost_v1.urls'
diff --git a/requirements.txt b/requirements.txt
index 63c14c58ce4d59f979e2f5e12b4e9abc8d71c7db..176e10765b2e5252f3879571ba27bc11e07e7cb3 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -22,6 +22,7 @@ django-sphinxdoc==1.5.1
 django-silk==2.0.0
 django-recaptcha==1.3.1
 django-webpack-loader==0.5
+django-maintenancemode-2==1.1.11
 
 
 # Documentation Packages
diff --git a/sitesserved/__init__.py b/sitesserved/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/sitesserved/migrations/0001_set_SciPost_site.py b/sitesserved/migrations/0001_set_SciPost_site.py
new file mode 100644
index 0000000000000000000000000000000000000000..3f0757c78852341aa6bec93df238a9ec01c57e66
--- /dev/null
+++ b/sitesserved/migrations/0001_set_SciPost_site.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-23 11:35
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+def set_site_name(apps, schema_editor):
+    Sites = apps.get_model('sites', 'Site')
+    try:
+        site = Sites.objects.get(id=1)
+    except Sites.DoesNotExist:
+        site = Sites(id=1)
+    site.name = 'SciPost'
+    site.domain = 'scipost.org'
+    site.save()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('sites', '0002_alter_domain_unique'),
+    ]
+
+    operations = [
+        migrations.RunPython(set_site_name,
+                             reverse_code=migrations.RunPython.noop),
+    ]
diff --git a/sitesserved/migrations/__init__.py b/sitesserved/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/templates/503.html b/templates/503.html
new file mode 100644
index 0000000000000000000000000000000000000000..f90a6dc609a41007459896c9d6c86f274ade2578
--- /dev/null
+++ b/templates/503.html
@@ -0,0 +1,13 @@
+{% extends 'scipost/base.html' %}
+
+{% block pagetitle %}: 503{% endblock pagetitle %}
+
+{% block content %}
+
+<div style="text-align: center;">
+    <img src="//scipost.org/static/scipost/images/logo_scipost_RGB_HTML_groot.png" alt="SciPost logo" width="240" style="margin-top: 20px; margin-bottom: 20px" />
+    <h1>We are currently in maintenance, please try again in a few minutes!</h1>
+    <h2>503</h2>
+</div>
+
+{% endblock %}