diff --git a/.gitignore b/.gitignore
index 0f4acea54679c2fa463eb0064b94d724c73d3032..22da5e7cb978453ef89b445aa6e4db957428464a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,5 @@ UPLOADS
 static_bundles/
 
 whoosh_index
+
+*.pid
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000000000000000000000000000000000000..a302dfefc92a4c4165f5bd267f0bc3eaf14e80ab
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,45 @@
+=======
+SciPost
+=======
+
+This repository carries the entire codebase for the
+`scipost.org <https://scipost.org>`__ scientific publication portal.
+
+
+Project organization
+--------------------
+
+Development work for SciPost is headed by `Jean-Sébastien
+Caux <https://jscaux.org>`__ and Jorran de Wit. Bug reports, issues,
+suggestions and ideas can be emailed to techsupport@scipost.org.
+
+If you are competent in Django-based web development and would like to join our core
+development team, please email your credentials to jscaux@scipost.org.
+
+
+License
+-------
+
+This codebase is released under the terms of the GNU Affero General
+Public License (Version 3, 19 November 2007).
+
+
+Dependencies
+------------
+
+SciPost is written in Python 3.5 using Django 1.11 and requires
+PostgreSQL 9.4 or higher. Python dependencies are listed in
+``requirements.txt``. Frontend dependencies are managed by
+`NPM <https://www.npmjs.com/>`__ in package.json.
+
+
+Installing
+----------
+
+See the :doc:`installation instructions <installation>`.
+
+
+Deploying
+---------
+
+See the :doc:`deployment instructions <deployment>`.
diff --git a/SciPost_v1/__init__.py b/SciPost_v1/__init__.py
index 6ac81a11decbbfeef42b3baa7b3b526dcda12c35..58dc9012e87b364ac66a96d0e6cf46ca5fc3a5af 100644
--- a/SciPost_v1/__init__.py
+++ b/SciPost_v1/__init__.py
@@ -1,5 +1,6 @@
 from __future__ import absolute_import, unicode_literals
 
+
 # This will make sure the app is always imported when
 # Django starts so that shared_task will use this app.
 from .celery import app as celery_app
diff --git a/SciPost_v1/settings/base.py b/SciPost_v1/settings/base.py
index 908f3dcbfd4c17b1587a15f0c71d407a80071db4..0d9502305cd1253ecdfdfa3a164c9754b586667d 100644
--- a/SciPost_v1/settings/base.py
+++ b/SciPost_v1/settings/base.py
@@ -94,6 +94,7 @@ INSTALLED_APPS = (
     'django_celery_results',
     'django_celery_beat',
     'finances',
+    'guides',
     'invitations',
     'journals',
     'mails',
@@ -130,10 +131,9 @@ HAYSTACK_SIGNAL_PROCESSOR = 'SciPost_v1.signalprocessors.AutoSearchIndexingProce
 
 
 SPHINXDOC_BASE_TEMPLATE = 'scipost/base.html'
+SPHINXDOC_BUILD_DIR = '../build'
 SPHINXDOC_PROTECTED_PROJECTS = {
-    'admin': ['scipost.can_view_docs_scipost'],
-    'codebase': ['scipost.can_view_docs_scipost'],
-    'users': ['scipost.can_view_docs_scipost'],
+    'developers': ['scipost.can_view_docs_scipost'],
 }
 
 CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.math_challenge'
diff --git a/SciPost_v1/settings/production.py b/SciPost_v1/settings/production.py
index 75d9596d649a070d5d276dbef8070139502d8d8d..b29857897e9eaa74a1c564222e575c8686f86976 100644
--- a/SciPost_v1/settings/production.py
+++ b/SciPost_v1/settings/production.py
@@ -39,7 +39,7 @@ SERVER_EMAIL = get_secret("SERVER_EMAIL")
 CROSSREF_LOGIN_ID = get_secret("CROSSREF_LOGIN_ID")
 CROSSREF_LOGIN_PASSWORD = get_secret("CROSSREF_LOGIN_PASSWORD")
 CROSSREF_DEBUG = False
-CROSSREF_DEPOSIT_EMAIL = 'admin@scipost.org'
+CROSSREF_DEPOSIT_EMAIL = 'edadmin@scipost.org'
 
 DOAJ_API_KEY = get_secret("DOAJ_API_KEY")
 HAYSTACK_CONNECTIONS['default']['PATH'] = '/home/scipost/webapps/scipost/scipost_v1/whoosh_index'
@@ -53,3 +53,6 @@ ITHENTICATE_PASSWORD = get_secret('ITHENTICATE_PASSWORD')
 # Logging
 LOGGING['handlers']['scipost_file_arxiv']['filename'] = '/home/scipost/webapps/scipost/logs/arxiv.log'
 LOGGING['handlers']['scipost_file_doi']['filename'] = '/home/scipost/webapps/scipost/logs/doi.log'
+
+
+#BROKER_URL = 'amqp://guest:guest@localhost:5672//'
diff --git a/SciPost_v1/urls.py b/SciPost_v1/urls.py
index ed1149fd045a499f89a18bdab3495887737088a2..1baef1fd4b7118c5122a8bd45f7765037f32abfa 100644
--- a/SciPost_v1/urls.py
+++ b/SciPost_v1/urls.py
@@ -37,6 +37,7 @@ urlpatterns = [
     url(r'^comments/', include('comments.urls', namespace="comments")),
     url(r'^funders/', include('funders.urls', namespace="funders")),
     url(r'^finances/', include('finances.urls', namespace="finances")),
+    url(r'^guides/', include('guides.urls', namespace="guides")),
     url(r'^invitations/', include('invitations.urls', namespace="invitations")),
     url(r'^journals/', include('journals.urls.general', namespace="journals")),
     url(r'^mailing_list/', include('mailing_lists.urls', namespace="mailing_lists")),
diff --git a/colleges/templates/colleges/_prospectivefellow_card.html b/colleges/templates/colleges/_prospectivefellow_card.html
index 48edb8808caf78bf103b322a52aba5096739b7e7..0668e2009e0de0046875bc3d46ce813855555dc2 100644
--- a/colleges/templates/colleges/_prospectivefellow_card.html
+++ b/colleges/templates/colleges/_prospectivefellow_card.html
@@ -8,7 +8,7 @@
 	<br/>
 	{{ prosfel.email }}
 	<br/>
-	{% if prosfel.webpage %}<a href="{{ prosfel.webpage }}">webpage</a>
+	{% if prosfel.webpage %}<a href="{{ prosfel.webpage }}" target="_blank">webpage</a>
 	{% else %}No personal webpage given
 	{% endif %}
 	<br/>
diff --git a/colleges/views.py b/colleges/views.py
index 58e7c11399d1f082876fcb67162efbe9e972da22..3ca851fef491fbf3f63cea8c9429f02f9a96e3fd 100644
--- a/colleges/views.py
+++ b/colleges/views.py
@@ -379,18 +379,15 @@ class ProspectiveFellowListView(PermissionsMixin, ListView):
 
 
 class ProspectiveFellowInitialEmailView(PermissionsMixin, MailView):
-    """
-    Send a templated email to a Prospective Fellow.
-    """
+    """Send a templated email to a Prospective Fellow."""
+
     permission_required = 'scipost.can_manage_college_composition'
     queryset = ProspectiveFellow.objects.all()
     mail_code = 'prospectivefellows/invite_prospective_fellow_initial'
     success_url = reverse_lazy('colleges:prospective_Fellows')
 
     def form_valid(self, form):
-        """
-        Create an event associated to this outgoing email.
-        """
+        """Create an event associated to this outgoing email."""
         event = ProspectiveFellowEvent(
             prosfellow=self.object,
             event=PROSPECTIVE_FELLOW_EVENT_EMAILED,
@@ -398,7 +395,7 @@ class ProspectiveFellowInitialEmailView(PermissionsMixin, MailView):
             noted_on=timezone.now(),
             noted_by=self.request.user.contributor)
         event.save()
-        self.object.status=PROSPECTIVE_FELLOW_INVITED
+        self.object.status = PROSPECTIVE_FELLOW_INVITED
         self.object.save()
         return super().form_valid(form)
 
diff --git a/cronjob_production_daily.sh b/cronjob_production_daily.sh
index 7de15c4334a73f60e128fb7181c970ba595ccb8b..2a66612bfa3ec7a4cdf5b819a2f76279d2540a70 100755
--- a/cronjob_production_daily.sh
+++ b/cronjob_production_daily.sh
@@ -6,3 +6,4 @@ cd /home/scipost/webapps/scipost/scipost_v1
 source venv/bin/activate
 
 python3 manage.py remind_fellows_to_submit_report
+python3 manage.py organization_update_cf_nr_associated_publications
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6aad3322e94a9d8f39be6c9d89a3d2565b9d1582
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+SPHINXPROJ    = SciPost
+SOURCEDIR     = source
+BUILDDIR      = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/docs/admin/Makefile b/docs/admin/Makefile
deleted file mode 100644
index 766d9a8bc3fc53a651b7c9618affa897bd2475c3..0000000000000000000000000000000000000000
--- a/docs/admin/Makefile
+++ /dev/null
@@ -1,192 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-PAPER         =
-BUILDDIR      = _build
-
-# User-friendly check for sphinx-build
-ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
-$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
-endif
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
-
-help:
-	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html       to make standalone HTML files"
-	@echo "  dirhtml    to make HTML files named index.html in directories"
-	@echo "  singlehtml to make a single large HTML file"
-	@echo "  pickle     to make pickle files"
-	@echo "  json       to make JSON files"
-	@echo "  htmlhelp   to make HTML files and a HTML help project"
-	@echo "  qthelp     to make HTML files and a qthelp project"
-	@echo "  applehelp  to make an Apple Help Book"
-	@echo "  devhelp    to make HTML files and a Devhelp project"
-	@echo "  epub       to make an epub"
-	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
-	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
-	@echo "  text       to make text files"
-	@echo "  man        to make manual pages"
-	@echo "  texinfo    to make Texinfo files"
-	@echo "  info       to make Texinfo files and run them through makeinfo"
-	@echo "  gettext    to make PO message catalogs"
-	@echo "  changes    to make an overview of all changed/added/deprecated items"
-	@echo "  xml        to make Docutils-native XML files"
-	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
-	@echo "  linkcheck  to check all external links for integrity"
-	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
-	@echo "  coverage   to run coverage check of the documentation (if enabled)"
-
-clean:
-	rm -rf $(BUILDDIR)/*
-
-html:
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
-	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
-	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
-	@echo
-	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
-	@echo
-	@echo "Build finished; now you can process the pickle files."
-
-json:
-	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
-	@echo
-	@echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
-	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
-	@echo
-	@echo "Build finished; now you can run HTML Help Workshop with the" \
-	      ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-qthelp:
-	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
-	@echo
-	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
-	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
-	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SciPost.qhcp"
-	@echo "To view the help file:"
-	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SciPost.qhc"
-
-applehelp:
-	$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
-	@echo
-	@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
-	@echo "N.B. You won't be able to view it unless you put it in" \
-	      "~/Library/Documentation/Help or install it in your application" \
-	      "bundle."
-
-devhelp:
-	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
-	@echo
-	@echo "Build finished."
-	@echo "To view the help file:"
-	@echo "# mkdir -p $$HOME/.local/share/devhelp/SciPost"
-	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SciPost"
-	@echo "# devhelp"
-
-epub:
-	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
-	@echo
-	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-latex:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo
-	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
-	@echo "Run \`make' in that directory to run these through (pdf)latex" \
-	      "(use \`make latexpdf' here to do that automatically)."
-
-latexpdf:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through pdflatex..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-latexpdfja:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through platex and dvipdfmx..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
-	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
-	@echo
-	@echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
-	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
-	@echo
-	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-texinfo:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo
-	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
-	@echo "Run \`make' in that directory to run these through makeinfo" \
-	      "(use \`make info' here to do that automatically)."
-
-info:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo "Running Texinfo files through makeinfo..."
-	make -C $(BUILDDIR)/texinfo info
-	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-gettext:
-	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
-	@echo
-	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-changes:
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
-	@echo
-	@echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
-	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
-	@echo
-	@echo "Link check complete; look for any errors in the above output " \
-	      "or in $(BUILDDIR)/linkcheck/output.txt."
-
-doctest:
-	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
-	@echo "Testing of doctests in the sources finished, look at the " \
-	      "results in $(BUILDDIR)/doctest/output.txt."
-
-coverage:
-	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
-	@echo "Testing of coverage in the sources finished, look at the " \
-	      "results in $(BUILDDIR)/coverage/python.txt."
-
-xml:
-	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
-	@echo
-	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
-
-pseudoxml:
-	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
-	@echo
-	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/admin/conf.py b/docs/admin/conf.py
deleted file mode 100644
index 461731e1fa84d8811ca44afc27290eb83058ad22..0000000000000000000000000000000000000000
--- a/docs/admin/conf.py
+++ /dev/null
@@ -1,302 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# SciPost documentation build configuration file, created by
-# sphinx-quickstart on Fri Nov 25 11:01:13 2016.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys
-import os
-import shlex
-import django
-from django.conf import settings
-
-sys.path.insert(0, os.path.abspath('../..'))
-
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SciPost_v1.settings")
-
-#settings.configure()
-django.setup()
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
-    'sphinx.ext.autodoc',
-    'sphinx.ext.todo',
-    'sphinx.ext.coverage',
-    'sphinx.ext.mathjax',
-    'sphinx.ext.viewcode',
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = 'SciPost'
-copyright = '2016, Jean-Sébastien Caux'
-author = 'Jean-Sébastien Caux'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '1.0'
-# The full version, including alpha/beta/rc tags.
-release = '1.0'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-#keep_warnings = False
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = True
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-# html_theme = 'alabaster'
-html_theme = 'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['../_static']
-
-# Add any extra paths that contain custom files (such as robots.txt or
-# .htaccess) here, relative to this directory. These files are copied
-# directly to the root of the documentation.
-#html_extra_path = []
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Language to be used for generating the HTML full-text search index.
-# Sphinx supports the following languages:
-#   'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
-#   'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'
-#html_search_language = 'en'
-
-# A dictionary with options for the search language support, empty by default.
-# Now only 'ja' uses this config value
-#html_search_options = {'type': 'default'}
-
-# The name of a javascript file (relative to the configuration directory) that
-# implements a search results scorer. If empty, the default will be used.
-#html_search_scorer = 'scorer.js'
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'SciPostAdmindoc'
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-
-# Latex figure (float) alignment
-#'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-#  author, documentclass [howto, manual, or own class]).
-latex_documents = [
-  (master_doc, 'SciPost_Admin.tex', 'SciPost Admin Documentation',
-   'Jean-Sébastien Caux', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
-    (master_doc, 'scipost admin', 'SciPost Admin Documentation',
-     [author], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-#  dir menu entry, description, category)
-texinfo_documents = [
-  (master_doc, 'SciPost admin', 'SciPost Admin Documentation',
-   author, 'SciPost', 'One line description of project.',
-   'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-#texinfo_no_detailmenu = False
diff --git a/docs/admin/foundation.rst b/docs/admin/foundation.rst
deleted file mode 100644
index 6289d007259f7e90c20cc8d53ebd76f3d66a7aed..0000000000000000000000000000000000000000
--- a/docs/admin/foundation.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Stichting SciPost
-=================
-
-
-History
--------
diff --git a/docs/admin/index.rst b/docs/admin/index.rst
deleted file mode 100644
index 5eff852ba767415d0c0685f4613629ba5a39ad52..0000000000000000000000000000000000000000
--- a/docs/admin/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-SciPost Admin documentation
-===========================
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-
-   foundation
diff --git a/docs/codebase/Makefile b/docs/codebase/Makefile
deleted file mode 100644
index 766d9a8bc3fc53a651b7c9618affa897bd2475c3..0000000000000000000000000000000000000000
--- a/docs/codebase/Makefile
+++ /dev/null
@@ -1,192 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-PAPER         =
-BUILDDIR      = _build
-
-# User-friendly check for sphinx-build
-ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
-$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
-endif
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
-
-help:
-	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html       to make standalone HTML files"
-	@echo "  dirhtml    to make HTML files named index.html in directories"
-	@echo "  singlehtml to make a single large HTML file"
-	@echo "  pickle     to make pickle files"
-	@echo "  json       to make JSON files"
-	@echo "  htmlhelp   to make HTML files and a HTML help project"
-	@echo "  qthelp     to make HTML files and a qthelp project"
-	@echo "  applehelp  to make an Apple Help Book"
-	@echo "  devhelp    to make HTML files and a Devhelp project"
-	@echo "  epub       to make an epub"
-	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
-	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
-	@echo "  text       to make text files"
-	@echo "  man        to make manual pages"
-	@echo "  texinfo    to make Texinfo files"
-	@echo "  info       to make Texinfo files and run them through makeinfo"
-	@echo "  gettext    to make PO message catalogs"
-	@echo "  changes    to make an overview of all changed/added/deprecated items"
-	@echo "  xml        to make Docutils-native XML files"
-	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
-	@echo "  linkcheck  to check all external links for integrity"
-	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
-	@echo "  coverage   to run coverage check of the documentation (if enabled)"
-
-clean:
-	rm -rf $(BUILDDIR)/*
-
-html:
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
-	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
-	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
-	@echo
-	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
-	@echo
-	@echo "Build finished; now you can process the pickle files."
-
-json:
-	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
-	@echo
-	@echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
-	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
-	@echo
-	@echo "Build finished; now you can run HTML Help Workshop with the" \
-	      ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-qthelp:
-	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
-	@echo
-	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
-	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
-	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SciPost.qhcp"
-	@echo "To view the help file:"
-	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SciPost.qhc"
-
-applehelp:
-	$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
-	@echo
-	@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
-	@echo "N.B. You won't be able to view it unless you put it in" \
-	      "~/Library/Documentation/Help or install it in your application" \
-	      "bundle."
-
-devhelp:
-	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
-	@echo
-	@echo "Build finished."
-	@echo "To view the help file:"
-	@echo "# mkdir -p $$HOME/.local/share/devhelp/SciPost"
-	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SciPost"
-	@echo "# devhelp"
-
-epub:
-	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
-	@echo
-	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-latex:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo
-	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
-	@echo "Run \`make' in that directory to run these through (pdf)latex" \
-	      "(use \`make latexpdf' here to do that automatically)."
-
-latexpdf:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through pdflatex..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-latexpdfja:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through platex and dvipdfmx..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
-	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
-	@echo
-	@echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
-	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
-	@echo
-	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-texinfo:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo
-	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
-	@echo "Run \`make' in that directory to run these through makeinfo" \
-	      "(use \`make info' here to do that automatically)."
-
-info:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo "Running Texinfo files through makeinfo..."
-	make -C $(BUILDDIR)/texinfo info
-	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-gettext:
-	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
-	@echo
-	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-changes:
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
-	@echo
-	@echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
-	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
-	@echo
-	@echo "Link check complete; look for any errors in the above output " \
-	      "or in $(BUILDDIR)/linkcheck/output.txt."
-
-doctest:
-	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
-	@echo "Testing of doctests in the sources finished, look at the " \
-	      "results in $(BUILDDIR)/doctest/output.txt."
-
-coverage:
-	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
-	@echo "Testing of coverage in the sources finished, look at the " \
-	      "results in $(BUILDDIR)/coverage/python.txt."
-
-xml:
-	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
-	@echo
-	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
-
-pseudoxml:
-	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
-	@echo
-	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/codebase/conf.py b/docs/codebase/conf.py
deleted file mode 100644
index 1abedddd45987b5764b55baea1ad3decf618bc9e..0000000000000000000000000000000000000000
--- a/docs/codebase/conf.py
+++ /dev/null
@@ -1,302 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# SciPost documentation build configuration file, created by
-# sphinx-quickstart on Fri Nov 25 11:01:13 2016.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys
-import os
-import shlex
-import django
-from django.conf import settings
-
-sys.path.insert(0, os.path.abspath('../..'))
-
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SciPost_v1.settings")
-
-#settings.configure()
-django.setup()
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
-    'sphinx.ext.autodoc',
-    'sphinx.ext.todo',
-    'sphinx.ext.coverage',
-    'sphinx.ext.mathjax',
-    'sphinx.ext.viewcode',
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = 'SciPost'
-copyright = '2016, Jean-Sébastien Caux'
-author = 'Jean-Sébastien Caux'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '1.0'
-# The full version, including alpha/beta/rc tags.
-release = '1.0'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-#keep_warnings = False
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = True
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-# html_theme = 'alabaster'
-html_theme = 'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['../_static']
-
-# Add any extra paths that contain custom files (such as robots.txt or
-# .htaccess) here, relative to this directory. These files are copied
-# directly to the root of the documentation.
-#html_extra_path = []
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Language to be used for generating the HTML full-text search index.
-# Sphinx supports the following languages:
-#   'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
-#   'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'
-#html_search_language = 'en'
-
-# A dictionary with options for the search language support, empty by default.
-# Now only 'ja' uses this config value
-#html_search_options = {'type': 'default'}
-
-# The name of a javascript file (relative to the configuration directory) that
-# implements a search results scorer. If empty, the default will be used.
-#html_search_scorer = 'scorer.js'
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'SciPostCodebasedoc'
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-
-# Latex figure (float) alignment
-#'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-#  author, documentclass [howto, manual, or own class]).
-latex_documents = [
-  (master_doc, 'SciPost_Codebase.tex', 'SciPost Codebase Documentation',
-   'Jean-Sébastien Caux', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
-    (master_doc, 'scipost codebase', 'SciPost Codebase Documentation',
-     [author], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-#  dir menu entry, description, category)
-texinfo_documents = [
-  (master_doc, 'SciPost codebase', 'SciPost Codebase Documentation',
-   author, 'SciPost', 'One line description of project.',
-   'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-#texinfo_no_detailmenu = False
diff --git a/docs/codebase/index.rst b/docs/codebase/index.rst
deleted file mode 100644
index 1b16b88b3e58574aefa91938304c57c313104def..0000000000000000000000000000000000000000
--- a/docs/codebase/index.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-Welcome to SciPost's codebase documentation
-===========================================
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-
-   maintenance
-   apps
-
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
diff --git a/docs/deployment.rst b/docs/deployment.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7c3cda7eb4a8833c9e76a6e7a77a264ee0f46ba1
--- /dev/null
+++ b/docs/deployment.rst
@@ -0,0 +1,2 @@
+Deployment
+==========
diff --git a/docs/installation.rst b/docs/installation.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d60882595336369c791d7d79ca16ec073796bdc3
--- /dev/null
+++ b/docs/installation.rst
@@ -0,0 +1,398 @@
+Database
+~~~~~~~~
+
+Make sure that PostgreSQL is installed and running and that a database
+with user is set up. A good guide how to do this can be found
+`here <https://djangogirls.gitbooks.io/django-girls-tutorial-extensions/content/optional_postgresql_installation/>`__
+(NOTE: stop before the ‘Update settings’ part).
+
+Python version
+~~~~~~~~~~~~~~
+
+Make sure you’re using Python 3.5. You are strongly encouraged to use a
+`virtual environment <https://docs.python.org/3.5/library/venv.html>`__.
+
+.. code:: shell
+
+   $ pyvenv scipostenv
+   $ source scipostenv/bin/activate
+
+Now install dependencies:
+
+.. code:: shell
+
+   (scipostenv) $ pip install -r requirements.txt
+
+Frontend dependencies
+~~~~~~~~~~~~~~~~~~~~~
+
+`NPM <https://www.npmjs.com/>`__ (version 5.x; tested on v5.3.0) will
+take care of frontend dependencies. To install all packages now run:
+
+.. code:: shell
+
+   (scipostenv) $ npm install
+
+Settings
+~~~~~~~~
+
+In this project, many settings are not sensitive and are thus tracked
+using Git. Some settings are however secret. These settings may be saved
+into the ``secrets.json`` file in the root of the project. The minimum
+required structure is as follows (please mind the non-empty, but still
+invalid ``SECRET_KEY``):
+
+.. code:: json
+
+   {
+     "SECRET_KEY": "<key>",
+     "DB_NAME": "",
+     "DB_USER": "",
+     "DB_PWD": ""
+   }
+
+The settings file itself is saved into
+``SciPost_v1/settings/local_<name>.py``. Be sure to *wildcard import*
+the ``base.py`` file in the top of your settings file. To run the
+server, use one of two ways. Either:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py runserver --settings=SciPost_v1.settings.local_<name>
+
+… or for convenience, export the same settingsfile path to the
+``DJANGO_SETTINGS_MODULE`` variable, so that one can run the django
+commands by default:
+
+.. code:: shell
+
+   (scipostenv) $ export DJANGO_SETTINGS_MODULE="SciPost_v1.settings.local_<name>"
+
+One can of course also add this variable to the ``~/.bash_profile`` for
+convenience.
+
+Mail
+~~~~
+
+In the ``mails`` application a special `Email
+Backend <https://docs.djangoproject.com/en/1.11/topics/email/#email-backends>`__
+is defined. This will write all emails to the database. To use this
+backend, in the settings set the the variable ``EMAIL_BACKEND`` as:
+
+.. code:: python
+
+   # settings.py
+   EMAIL_BACKEND = 'mails.backends.filebased.ModelEmailBackend'
+   EMAIL_BACKEND_ORIGINAL = 'mails.backends.filebased.EmailBackend'
+
+A management command is defined to send the unsent mails in the
+database. This management command uses the Email Backend defined in the
+settings under variable ``EMAIL_BACKEND_ORIGINAL``. If not defined, this
+defaults to the Django default:
+``django.core.mail.backends.smtp.EmailBackend``.
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py send_mails
+
+Check, double check
+~~~~~~~~~~~~~~~~~~~
+
+To make sure everything is set up and correctly configured, run:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py check
+
+Module bundler
+~~~~~~~~~~~~~~
+
+`Webpack <https://webpack.js.org/>`__ takes care of assets in the
+``scipost/static/scipost/assets`` folder. To (re)compile all assets into
+the ``static_bundles`` folder, simply run:
+
+.. code:: shell
+
+   (scipostenv) $ npm run webpack
+
+While editing assets, it may be helpful to put Webpack in *watch* mode.
+This will recompile your assets in real time. To do so, instead of the
+above command, run:
+
+.. code:: shell
+
+   (scipostenv) $ npm run webpack-live
+
+Sass and Bootstrap
+^^^^^^^^^^^^^^^^^^
+
+Styling will mainly be configured using `.scss
+files <http://www.sass-lang.com/>`__ in the
+``scipost/static/scipost/scss/preconfig.scss`` file, relying on
+`Bootstrap v4.0.0-beta <//www.getbootstrap.com/>`__. A full list of
+variables available by default can be found
+`here <https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss>`__.
+All modules are configured in the ``.bootstraprc`` file. All modules are
+disabled by default.
+
+Collectstatic
+~~~~~~~~~~~~~
+
+In order to collect static files from all ``INSTALLED_APPS`` (i.e. the
+assets managed by Webpack), run:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py collectstatic
+
+This will put all static files in the ``STATIC_ROOT`` folder defined in
+your settings file. If needed, you can remove stale static files
+through:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py collectstatic --clear
+
+Create and run migrations
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now that everything is set up, we can create the relevant tables in the
+database:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py migrate
+
+Create a superuser
+~~~~~~~~~~~~~~~~~~
+
+In order to use the admin site, you’ll need a superuser account, which
+can be created using:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py createsuperuser
+
+Create groups and permissions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Groups and their respective permissions are set using the management
+command:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py add_groups_and_permissions
+
+Run server
+~~~~~~~~~~
+
+You are now ready to run the server:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py runserver
+
+
+Contributors
+------------
+
+Users of the SciPost portal are known as Contributors and are created
+through the registration form accessible from the home page.
+
+You can create a number of users, and use the admin site to give them
+various permissions through memberships of certain groups. For example,
+you’ll want members of the SciPost Administrators and Editorial
+Administrators groups in order to access the internal management and
+editorial tools.
+
+Initial data
+------------
+
+If you’re working on an (almost) empty test database, you can easily
+fill it using one of the built-in commands. To create a few instances
+for each available object, simply run:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py populate_db --all
+
+Run the same command with the ``--help`` argument to find arguments to
+create instances for individual models:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py populate_db --help
+
+Maintaining database migrations
+-------------------------------
+
+Every time fields in any of the models change, a `database
+migration <https://docs.djangoproject.com/en/1.11/topics/migrations/>`__
+needs to be created and applied. The first documents a database change
+and its inverse, the second actually changes the database.
+
+Make sure to commit the migration to Git after applying it, so other
+developers can use them.
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py makemigrations
+   (scipostenv) $ ./manage.py migrate
+
+Search engine
+-------------
+
+`Django Haystack <>`__ is used to handle search queries. The search
+engine needs indexing before you can use it:
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py update_index -u default
+
+Models involved in searches are re-indexed using ``post_save`` signals.
+
+Documentation
+-------------
+
+All project documentation is gathered from ``.rst`` files and
+code-embedded docstrings. The documentation for the codebase can be
+found in ``docs/codebase``.
+
+Sphinxdoc
+~~~~~~~~~
+
+The documentation is saved in the local database as a Project with name
+``SciPost Codebase``, with slug ``codebase`` and path ``/docs/codebase``
+(this project should be manually created in the admin under the
+``Sphinxdoc`` app).
+
+To update the docs, simply run
+
+.. code:: shell
+
+   (scipostenv) $ ./manage.py updatedoc -b codebase
+
+The documentation is then viewable by navigating to ``docs/codebase``.
+
+There are also other Projects containing information about SciPost, user
+guides etc. The list can be found on by viewing ``docs`` in the browser.
+
+Locally-served documentation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The documentation can be rendered using
+`Sphinx <http://www.sphinx-doc.org/>`__. Note that rendering
+documentation is only available from the virtual environment - and only
+when the host settings have been configured.
+
+To build the documentation, run:
+
+.. code:: shell
+
+   (scipostenv) $ cd docs/[project slug]
+   (scipostenv) $ make html
+
+for each of the documentation projects. After this, generated
+documentation are available in ``docs/[project slug]/_build/html``.
+
+Mails
+-----
+
+The ``mails`` app is used as the mailing processor of SciPost. It may be
+used in one of two possible ways: with or without editor.
+
+The actual mails only have to be written in the html version (the text
+based alternative is automatically generated before sending). Creating a
+new ``mail_code`` is easily done by creating new files in the
+``templates/email/<subfolder>`` folder called ``<mail_code>.html`` and
+``<mail_code>.json`` acting respectively as a content and configuration
+file. Here, ``<subfolder>`` is named after the main recipient’s class
+(authors, referees, etc.).
+
+The config file is configured as follows
+''''''''''''''''''''''''''''''''''''''''
+
+``templates/email/<subfolder>/<mail_code>.json``
+
+-  ``context_object`` - (*required*) Instance of the main object. This
+   instance needs to be passed as ``instance`` or ``<context_object>``
+   in the views and as ``<context_object>`` in the template file (see
+   description below);
+-  ``subject`` - (*string, required*) Default subject value;
+-  ``to_address`` - (*string or path of properties, required*) Default
+   to address;
+-  ``bcc_to`` - (*string or path of properties, optional*) - A
+   comma-separated bcc list of mail addresses;
+-  ``from_address`` - (*string, optional*) - From address’ default
+   value: ``no-reply@scipost.org``;
+-  ``from_address_name`` - (*string, optional*) - From address name’s
+   default value: ``SciPost``.
+
+Mailing with editor
+~~~~~~~~~~~~~~~~~~~
+
+Any regular method or class-based view may be used together with the
+builtin wysiwyg editor. The class-based views inherited from Django’s
+UpdateView are easily extended for use with the editor.
+
+.. code:: python
+
+   from django.views.generic.edit import UpdateView
+   from mails.views import MailEditorMixin
+
+   class AnyUpdateView(MailEditorMixin, UpdateView):
+       mail_code = '<any_valid_mail_code>'
+
+For method-based views, one implements the mails construction as:
+
+.. code:: python
+
+   from mails.views import MailEditingSubView
+
+   def any_method_based_view(request):
+       # Initialize mail view
+       mail_request = MailEditingSubView(request, mail_code='<any_valid_mail_code>', instance=django_model_instance)
+       if mail_request.is_valid():
+           # Send mail
+           mail_request.send()
+           return redirect('reverse:url')
+       else:
+           # Render the wsyiwyg editor
+           return mail_request.return_render()
+
+Direct mailing
+~~~~~~~~~~~~~~
+
+Mailing is also possible without intercepting the request for completing
+or editing the mail’s content. For this, use the ``DirectMailUtil``
+instead.
+
+.. code:: python
+
+   from mails.utils import DirectMailUtil
+
+   def any_python_method_within_django():
+       # Init mailer
+       mail_sender = DirectMailUtil(mail_code='<any_valid_mail_code>', instance=django_model_instance)
+
+       # Optionally(!) alter from_address from config file
+       mail_sender.set_alternative_sender('SciPost Refereeing', 'refereeing@scipost.org')
+
+       # Send the actual mail
+       mail_sender.send()
+       return
+
+Django-extensions
+-----------------
+
+`django-extensions <https://github.com/django-extensions/django-extensions>`__
+provide added commands like ``./manage.py shell_plus``, which preloads
+all models in a shell session. Additional imports may be specified in
+``settings.py`` as follows:
+
+.. code:: python
+
+   SHELL_PLUS_POST_IMPORTS = (
+       ('theses.factories', ('ThesisLinkFactory')),
+       ('comments.factories', ('CommentFactory')),
+   )
diff --git a/docs/codebase/apps.rst b/docs/source/apps.rst
similarity index 100%
rename from docs/codebase/apps.rst
rename to docs/source/apps.rst
diff --git a/docs/codebase/apps/commentaries.rst b/docs/source/apps/commentaries.rst
similarity index 100%
rename from docs/codebase/apps/commentaries.rst
rename to docs/source/apps/commentaries.rst
diff --git a/docs/codebase/apps/comments.rst b/docs/source/apps/comments.rst
similarity index 100%
rename from docs/codebase/apps/comments.rst
rename to docs/source/apps/comments.rst
diff --git a/docs/codebase/apps/journals.rst b/docs/source/apps/journals.rst
similarity index 100%
rename from docs/codebase/apps/journals.rst
rename to docs/source/apps/journals.rst
diff --git a/docs/codebase/apps/scipost.rst b/docs/source/apps/scipost.rst
similarity index 100%
rename from docs/codebase/apps/scipost.rst
rename to docs/source/apps/scipost.rst
diff --git a/docs/codebase/apps/submissions.rst b/docs/source/apps/submissions.rst
similarity index 100%
rename from docs/codebase/apps/submissions.rst
rename to docs/source/apps/submissions.rst
diff --git a/docs/codebase/apps/theses.rst b/docs/source/apps/theses.rst
similarity index 100%
rename from docs/codebase/apps/theses.rst
rename to docs/source/apps/theses.rst
diff --git a/docs/source/conf.py b/docs/source/conf.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c7590eae9c71c65a8fa79c83b66acd6a8860f69
--- /dev/null
+++ b/docs/source/conf.py
@@ -0,0 +1,173 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+import os
+import sys
+import django
+
+sys.path.insert(0, os.path.abspath('../..'))
+
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SciPost_v1.settings")
+
+django.setup()
+
+# -- Project information -----------------------------------------------------
+
+project = 'SciPost'
+copyright = '2018, Jean-Sébastien Caux'
+author = 'Jean-Sébastien Caux'
+
+# The short X.Y version
+version = ''
+# The full version, including alpha/beta/rc tags
+release = 'v1'
+
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.autodoc',
+    'sphinx.ext.todo',
+    'sphinx.ext.coverage',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.viewcode',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path .
+exclude_patterns = []
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself.  Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'SciPostdoc'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # Latex figure (float) alignment
+    #
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'SciPost.tex', 'SciPost Documentation',
+     'Jean-Sébastien Caux', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'scipost', 'SciPost Documentation',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'SciPost', 'SciPost Documentation',
+     author, 'SciPost', 'SciPost publication portal codebase documentation.',
+     'Miscellaneous'),
+]
+
+
+# -- Extension configuration -------------------------------------------------
+
+# -- Options for todo extension ----------------------------------------------
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = True
diff --git a/docs/users/index.rst b/docs/source/index.rst
similarity index 60%
rename from docs/users/index.rst
rename to docs/source/index.rst
index 3053a37cb65c6e0ddb0bbc501def50f7f58a0f90..eb39ce81488b34d6a0aeb7287fe53facfde0b89e 100644
--- a/docs/users/index.rst
+++ b/docs/source/index.rst
@@ -1,18 +1,17 @@
 .. SciPost documentation master file, created by
-   sphinx-quickstart on Fri Nov 25 11:01:13 2016.
+   sphinx-quickstart on Fri Jul 20 11:40:31 2018.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-Welcome to SciPost's documentation
-==================================
-
-Contents:
+Welcome to the SciPost codebase documentation
+=============================================
 
 .. toctree::
    :maxdepth: 2
+   :caption: Contents:
 
-   roles
-   guides
+   maintenance
+   apps
 
 
 Indices and tables
diff --git a/docs/codebase/maintenance.rst b/docs/source/maintenance.rst
similarity index 100%
rename from docs/codebase/maintenance.rst
rename to docs/source/maintenance.rst
diff --git a/docs/codebase/maintenance/docs.rst b/docs/source/maintenance/docs.rst
similarity index 55%
rename from docs/codebase/maintenance/docs.rst
rename to docs/source/maintenance/docs.rst
index 3235a64ff568d3c4d8345cdfa85711d954828af2..2f98afa21cd4d521543b92995bf8292e560c38fb 100644
--- a/docs/codebase/maintenance/docs.rst
+++ b/docs/source/maintenance/docs.rst
@@ -10,7 +10,7 @@ Sphinx-generated docs
 Generating the static html files
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-In the `docs` subfolders `codebase`, `admin` and `users`, invoke ``make html``. The html files will be automatically generated and put in `_build/html` subfolders.
+In the `docs` subfolder, invoke ``make html``. The html files will be automatically generated and put in `build/html` subfolders.
 
 
 
@@ -21,14 +21,12 @@ Sphinxdoc-generated docs (viewable online)
 Setting things up
 ~~~~~~~~~~~~~~~~~
 
-The `django-sphinxdoc` app creates `Project` and `Document` classes. In the admin, one should create the following projects (slug in parentheses):
+The `django-sphinxdoc` app creates `Project` and `Document` classes. In the admin, one should create the following project (slug in parentheses):
 
-   * SciPost Admin (admin)
-   * SciPost Codebase (codebase)
-   * SciPost Users (users)
+   * SciPost developers (developers)
 
 
 Updating the docs:
 ~~~~~~~~~~~~~~~~~~
 
-Use the management command ``python manage.py updatedoc -b <project-slug>`` with slugs `codebase`, `admin` and `users`.
+Use the management command ``python manage.py updatedoc -b <project-slug>`` with slug `developers`.
diff --git a/docs/users/Makefile b/docs/users/Makefile
deleted file mode 100644
index 766d9a8bc3fc53a651b7c9618affa897bd2475c3..0000000000000000000000000000000000000000
--- a/docs/users/Makefile
+++ /dev/null
@@ -1,192 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-PAPER         =
-BUILDDIR      = _build
-
-# User-friendly check for sphinx-build
-ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
-$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
-endif
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
-
-help:
-	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html       to make standalone HTML files"
-	@echo "  dirhtml    to make HTML files named index.html in directories"
-	@echo "  singlehtml to make a single large HTML file"
-	@echo "  pickle     to make pickle files"
-	@echo "  json       to make JSON files"
-	@echo "  htmlhelp   to make HTML files and a HTML help project"
-	@echo "  qthelp     to make HTML files and a qthelp project"
-	@echo "  applehelp  to make an Apple Help Book"
-	@echo "  devhelp    to make HTML files and a Devhelp project"
-	@echo "  epub       to make an epub"
-	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
-	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
-	@echo "  text       to make text files"
-	@echo "  man        to make manual pages"
-	@echo "  texinfo    to make Texinfo files"
-	@echo "  info       to make Texinfo files and run them through makeinfo"
-	@echo "  gettext    to make PO message catalogs"
-	@echo "  changes    to make an overview of all changed/added/deprecated items"
-	@echo "  xml        to make Docutils-native XML files"
-	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
-	@echo "  linkcheck  to check all external links for integrity"
-	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
-	@echo "  coverage   to run coverage check of the documentation (if enabled)"
-
-clean:
-	rm -rf $(BUILDDIR)/*
-
-html:
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
-	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
-	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
-	@echo
-	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
-	@echo
-	@echo "Build finished; now you can process the pickle files."
-
-json:
-	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
-	@echo
-	@echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
-	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
-	@echo
-	@echo "Build finished; now you can run HTML Help Workshop with the" \
-	      ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-qthelp:
-	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
-	@echo
-	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
-	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
-	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SciPost.qhcp"
-	@echo "To view the help file:"
-	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SciPost.qhc"
-
-applehelp:
-	$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
-	@echo
-	@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
-	@echo "N.B. You won't be able to view it unless you put it in" \
-	      "~/Library/Documentation/Help or install it in your application" \
-	      "bundle."
-
-devhelp:
-	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
-	@echo
-	@echo "Build finished."
-	@echo "To view the help file:"
-	@echo "# mkdir -p $$HOME/.local/share/devhelp/SciPost"
-	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SciPost"
-	@echo "# devhelp"
-
-epub:
-	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
-	@echo
-	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-latex:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo
-	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
-	@echo "Run \`make' in that directory to run these through (pdf)latex" \
-	      "(use \`make latexpdf' here to do that automatically)."
-
-latexpdf:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through pdflatex..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-latexpdfja:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through platex and dvipdfmx..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
-	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
-	@echo
-	@echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
-	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
-	@echo
-	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-texinfo:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo
-	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
-	@echo "Run \`make' in that directory to run these through makeinfo" \
-	      "(use \`make info' here to do that automatically)."
-
-info:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo "Running Texinfo files through makeinfo..."
-	make -C $(BUILDDIR)/texinfo info
-	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-gettext:
-	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
-	@echo
-	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-changes:
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
-	@echo
-	@echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
-	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
-	@echo
-	@echo "Link check complete; look for any errors in the above output " \
-	      "or in $(BUILDDIR)/linkcheck/output.txt."
-
-doctest:
-	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
-	@echo "Testing of doctests in the sources finished, look at the " \
-	      "results in $(BUILDDIR)/doctest/output.txt."
-
-coverage:
-	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
-	@echo "Testing of coverage in the sources finished, look at the " \
-	      "results in $(BUILDDIR)/coverage/python.txt."
-
-xml:
-	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
-	@echo
-	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
-
-pseudoxml:
-	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
-	@echo
-	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/users/conf.py b/docs/users/conf.py
deleted file mode 100644
index fae7b4af58bf57362a6b30fee930640d3448a086..0000000000000000000000000000000000000000
--- a/docs/users/conf.py
+++ /dev/null
@@ -1,302 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# SciPost documentation build configuration file, created by
-# sphinx-quickstart on Fri Nov 25 11:01:13 2016.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys
-import os
-import shlex
-import django
-from django.conf import settings
-
-sys.path.insert(0, os.path.abspath('../..'))
-
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SciPost_v1.settings")
-
-#settings.configure()
-django.setup()
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
-    'sphinx.ext.autodoc',
-    'sphinx.ext.todo',
-    'sphinx.ext.coverage',
-    'sphinx.ext.mathjax',
-    'sphinx.ext.viewcode',
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = 'SciPost'
-copyright = '2016, Jean-Sébastien Caux'
-author = 'Jean-Sébastien Caux'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '1.0'
-# The full version, including alpha/beta/rc tags.
-release = '1.0'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-#keep_warnings = False
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = True
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-# html_theme = 'alabaster'
-html_theme = 'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents.  If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['../_static']
-
-# Add any extra paths that contain custom files (such as robots.txt or
-# .htaccess) here, relative to this directory. These files are copied
-# directly to the root of the documentation.
-#html_extra_path = []
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it.  The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Language to be used for generating the HTML full-text search index.
-# Sphinx supports the following languages:
-#   'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
-#   'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'
-#html_search_language = 'en'
-
-# A dictionary with options for the search language support, empty by default.
-# Now only 'ja' uses this config value
-#html_search_options = {'type': 'default'}
-
-# The name of a javascript file (relative to the configuration directory) that
-# implements a search results scorer. If empty, the default will be used.
-#html_search_scorer = 'scorer.js'
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'SciPostUsersdoc'
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-
-# Latex figure (float) alignment
-#'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-#  author, documentclass [howto, manual, or own class]).
-latex_documents = [
-  (master_doc, 'SciPost_Users.tex', 'SciPost Users Documentation',
-   'Jean-Sébastien Caux', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
-    (master_doc, 'scipost users', 'SciPost Users Documentation',
-     [author], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-#  dir menu entry, description, category)
-texinfo_documents = [
-  (master_doc, 'SciPost users', 'SciPost Users Documentation',
-   author, 'SciPost', 'One line description of project.',
-   'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-#texinfo_no_detailmenu = False
diff --git a/docs/users/guides.rst b/docs/users/guides.rst
deleted file mode 100644
index 0d82f081b2cff1acacfb9cdea8584bf963b5e322..0000000000000000000000000000000000000000
--- a/docs/users/guides.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Guides
-======
-
-
-.. toctree::
-   :maxdepth: 2
-
-   guides/authors
-   guides/referees
-   guides/editorial
diff --git a/docs/users/guides/authors.rst b/docs/users/guides/authors.rst
deleted file mode 100644
index ee3d6110c650ec8107b14eaf630807ad85830802..0000000000000000000000000000000000000000
--- a/docs/users/guides/authors.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Authoring
-=========
-
-This guide is meant for **authors** of submissions and publications.
-
-
-Preparing your manuscript
--------------------------
diff --git a/docs/users/guides/editorial.rst b/docs/users/guides/editorial.rst
deleted file mode 100644
index da3ee23fff6e4adbbfedf1915a0e21c71e49b05f..0000000000000000000000000000000000000000
--- a/docs/users/guides/editorial.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Editorial
-=========
-
-
-.. toctree::
-   :maxdepth: 2
-
-   editorial/submissions_processing
-   editorial/production
-   editorial/maintenance
diff --git a/docs/users/guides/editorial/maintenance.rst b/docs/users/guides/editorial/maintenance.rst
deleted file mode 100644
index 02a6140f0dc143bba0638cacbad7c719a592c86a..0000000000000000000000000000000000000000
--- a/docs/users/guides/editorial/maintenance.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Maintenance of SciPost Publications
-===================================
-
-This guide is meant for **Editorial Administrators**.
-It describes the post-publication maintenance of the published material.
-
-
-Maintenance
------------
-
-
-Cited-by updates
-~~~~~~~~~~~~~~~~
diff --git a/docs/users/guides/editorial/production.rst b/docs/users/guides/editorial/production.rst
deleted file mode 100644
index 752ff9c0e75ae59ff83e1abc94a584bb8069ac72..0000000000000000000000000000000000000000
--- a/docs/users/guides/editorial/production.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Production
-==========
-
-
-.. toctree::
-   :maxdepth: 2
-
-   production/initial_production
-   production/proofs
-   production/online_publication
diff --git a/docs/users/guides/editorial/production/initial_production.rst b/docs/users/guides/editorial/production/initial_production.rst
deleted file mode 100644
index db4e7ddaee2de96a0b748d88ca6069ac5750c8f7..0000000000000000000000000000000000000000
--- a/docs/users/guides/editorial/production/initial_production.rst
+++ /dev/null
@@ -1,429 +0,0 @@
-.. Howto for publication production
-
-.. _initial_production:
-
-Initial Production of SciPost Publications
-==========================================
-
-This guide is meant for **Editorial Administrators**, **Production Supervisors** and **Production Officers**. It describes the post-acceptance workflow from paper acceptance to publication.
-
-Version: 2017-05-11.
-
-
-Formatting check
-----------------
-
-   If the Submission's references are not properly formatted,
-   and/or if these do not include the required DOIs,
-   the authors should be emailed and asked to provide them,
-   by sending in either an updated ``.bbl`` file or ``.bib`` source.
-
-   Any extra material provided by the authors which supplements
-   the arXiv source should be put in a folder ``EXTRA_FROM_AUTH``.
-
-
-Source retrieval and folder preparation
----------------------------------------
-
-   #. On the SciPost server, navigate to folder
-      ``[Journal full name]/IN_PRODUCTION``.
-   #. Create a folder
-      ``[journal abbrev. name]_[arxiv identifier]_[first author last name]``,
-      e.g. ``SciPost_Phys_1604.98141v3_Smart``.
-   #. Save the source from arXiv into this folder.
-   #. NOTE: the file will be named ``####.#####v#``, which is not recognized
-      as a ``.tar.gz`` file on a UNIX system. Rename the file
-      ``####.####v#.tar.gz``. Unzip it to produce the folder ``####.#####v#``.
-      If this produces another tar file, it is because the submission consists of
-      a single ``.tex`` file; you should then rename this to ``####.#####v#.tex``.
-   #. Copy the paper’s sources one level down (so from ``####.#####v#`` to
-      the current directory). BE CAREFUL: if the authors have included any of
-      the SciPost style files (``SciPost.cls``, ``SciPost_bibstyle.bst``), DO NOT
-      copy those down. You can skip this step if the previous step immediately led
-      to a ``.tex`` file.
-   #. Copy the files in
-      ``[Journal full name]/v##_production/FILES_TO_COPY_IN_PAPER_DIR``
-      to the current directory. There are 5 files:
-
-         * ``by.eps``
-	 * ``logo_scipost_with_bgd.pdf``
-	 * ``SciPost_bibstyle.bst``
-	 * ``SciPost.cls``
-	 * ``SciPost_[Phys, or other as appropriate]_Skeleton.tex``
-
-   #. Copy the skeleton ``.tex`` source to a new file using the name convention
-      ``[Journal abbrev. name]_####_#####v#_[first author last name].tex``
-      (careful: use underscore instead of . between numbers).
-
-
-LaTeX file preparation
-----------------------
-
-   The next step is to transfer the submission's LaTeX contents into the final file.
-
-   All steps involed appear in the skeleton ``.tex`` source in the form ``%%%%%%%%%% TODO: [TOKEN]`` opening marked, followed by a corresponding ``%%%%%%%%%% END TODO: [TOKEN]`` marker.
-
-   The easiest way to proceed is to copy and paste material from the authors' ``.tex``
-   source directly into the (appropriately renamed as per the instructions above)
-   skeleton file.
-
-   During the file preparation, if there is anything worth noting about the
-   production process, please include this in the::
-
-     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-     % Production Notes
-     % [your name here]
-     %
-     % [your notes here]
-     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-   block at the beginning of the document, just before the ``\documentclass`` declaration.
-
-   As the person running the production, please identify yourself by writing
-   your initials and surname in this block.
-
-
-General LaTeX tips
-~~~~~~~~~~~~~~~~~~
-
-   * Prefer the ``align`` (from package ``amsmath``) environment to ``eqnarray``.
-     For a technical discussion, see *e.g.* `this link <http://tug.org/TUGboat/tb33-1/tb103madsen.pdf>`_.
-
-     You do **not** have to systematically replace all ``eqnarray`` with ``align``.
-     However, if you do reformat some equations, do shift to ``align``.
-
-
-Step-by-step procedure
-~~~~~~~~~~~~~~~~~~~~~~
-
-   #. TODO: PAPER CITATION
-
-      In this place, fill the missing numbers in the citation header::
-
-      \rhead{\small \href{https://scipost.org/SciPostPhys.?.?.???}{SciPost Phys. ?, ??? (20??)}}
-
-
-      The first argument of the ``href`` is the simple permanent URL for the publication. This includes 3 numbers: the volume number, issue, and three-digit paper number, for example ``SciPostPhys.1.2.011``. Verify the appropriate issue number (this will be verified later by an EdAdmin). At this stage, leave the paper number to ``???``: this number will be assigned and filled in in the last stage of production.
-
-      The second argument to the ``href`` uses the simple citation, dropping the issue number, for example ``SciPostPhys. 1, 011 (2016)``.
-
-
-   #. TODO: PACKAGES
-
-      The ``SciPost.cls`` (v1b) class definition requires the following packages:
-
-      * amsmath [NOTE: amssymb is redundant and clashes with mathdesign]
-      * cite
-      * doi
-      * fancyhdr
-      * geometry
-      * graphicx
-      * hyperref
-      * inputenc
-      * lineno [for proofs only]
-      * titlesec
-      * tocloft, nottoc,notlot,notlof
-      * xcolor
-
-      If the authors are using extra packages not already in the list above,
-      you should paste their list within this TODO block.
-
-      Any package originally included by the authors which you do **not**
-      include should be commented out with a  ``% REMOVED IN PROD``
-      comments prepended.
-
-      Any package which is added during production should be listed after
-      the ``% ADDED IN PRODUCTION`` marker.
-
-
-   #. TODO: COMMANDS
-
-      If the authors have redefined commands, paste the redefinitions in this block.
-
-      Discard (namely: do not copy and paste) any length (and similar) redefinitions.
-
-
-   #. TODO: TITLE
-
-      The title is enclosed in::
-
-	\begin{center}{\Large \textbf{\color{scipostdeepblue}{
-	[title]
-	}}}\end{center}
-
-      Paste the title in this block. End the title with ``\\``
-      in order to ensure proper uniform spacing between the lines.
-
-
-   #. TODO: AUTHORS
-
-      Author names should be in format ``firstname lastname``, e.g. ``John Smith``,
-      and should be in textbf. No ``comma`` but rather an ``and`` before
-      the last author. If multiple authors and affiliations, use ``\textsuperscript``
-      and positive integer labels, with a ``$\star$`` for the corresponding author.
-      If all authors are from the same institution, there is no need for superscripts
-      (except to mark the corresponding author if desired).
-      If multiple email addresses are given, reference them with ``$\dagger$, ...``.
-
-
-   #. TODO: AFFILIATIONS
-
-      If there are many affiliations, each is prepended by the appropriate
-      ``{\bf [nr]}``. Separate affiliations with double-backslash.
-
-      Put a ``\\[\baselineskip]`` after the affiliations.
-
-
-   #. TODO: EMAIL (OPTION)
-
-      Optionally, provide the email of the corresponding author using::
-
-	``\href{mailto:[email]}{\small \sf [email]}``
-
-      prepended with ``$\star$`` if corresponding author. If no email is to be given,
-      comment out the ``$\star$ \href{mailto:[email]}{\small \sf [email]}`` line.
-
-      If a web link is offered, use the format ``{\small \url{[url]}}``.
-
-
-   #. TODO: ABSTRACT
-
-      Paste the abstract in the provided block::
-
-	\section*{\color{scipostdeepblue}{Abstract}}
-	{\bf
-	[abstract]
-	}
-
-
-   #. TODO: TOC
-
-      As a general guideline, the paper should contain a table of contents
-      if it has more than 6 pages.
-
-      If a TOC should be included, leave the skeleton as it is. If no TOC
-      should be there, simply comment out the 2nd and 3rd lines of::
-
-	\vspace{10pt}
-	\noindent\rule{\textwidth}{1pt}
-	\tableofcontents
-	\noindent\rule{\textwidth}{1pt}
-	\vspace{10pt}
-
-      explicitly leaving::
-
-	\vspace{10pt}
-	%\noindent\rule{\textwidth}{1pt}
-	%\tableofcontents
-	\noindent\rule{\textwidth}{1pt}
-	\vspace{10pt}
-
-      If a single horizontal line is pushed to the next page, correct by
-      playing with negatime ``\vspace``.
-
-
-   #. TODO: COPYRIGHT
-
-      Include the first author's initials and family name in the copyright
-      statement. If there are just two authors: give both authors' initials
-      and last names. If there are more than two authors, use the format
-      ``A. Bee {\it et al.}``. Be respectful of any special (non-latin)
-      characters in authors' names.
-
-
-   #. TODO: DATES
-
-      Fill in the appropriate received and accepted dates in
-      format ``DD-MM-YYYY``. Be careful to use the correct submission data,
-      namely that of the original submission.
-
-      The accepted and published dates will be filled in later on.
-
-
-   #. TODO: DOI
-
-      Provide the volume and issue numbers (two places) in the DOI specifier.
-      The paper number will be assigned in the final stage of production.
-
-
-   #. TODO: LINENO
-
-      During proofs stage, make sure line numbers are activated (they should
-      be by default).
-
-
-   #. TODO: CONTENTS
-
-      Paste the entire bulk of the paper in this block,
-      including all sections and eventual appendices.
-      Check that there are no appendices after the references in the
-      original tex file.
-
-
-   #. TODO: BIBNR
-
-      If the bibliography contains more than 100 entries, use
-      ``999`` instead of ``99`` in the ``\begin{thebibliotraphy}{[nr]}``
-      statement.
-
-
-   #. TODO: BBL
-
-      The references are explicitly pasted into this block.
-
-      If using BiBTeX, use a ``\bibliography{[bibfilename]}`` command,
-      and comment out the ``\begin{thebibliography}`` and ``\end{thebibliography}``
-      commands. After running BiBTeX, the contents of the generated
-      ``.bib`` file should be pasted in the uncommented ``\begin,\end{thebibliography}``
-      block, and the ``\bibliography{[bibfilename]}`` should be commented out.
-
-      *Note: the reason to not use BiBTeX from now on is to easy in-file
-      correction of improperly formatted references (instead of having to correct
-      the ``.bib`` file)*.
-
-
-   **You are now ready to typeset the ``.tex`` file**. Simple issues are listed
-   below. If you encounter further problems, see the **Problems** list below.
-
-   If you need to run BiBTeX for the references, do so (remembering to do it
-   at least twice so the references appear), and then paste the contents of the
-   ``.bbl`` file in the ``% TODO: REFERENCES`` block. **Make sure you use the
-   correct** ``.bib`` **file**.
-
-
-
-
-Simple issues
-~~~~~~~~~~~~~
-
-   * *LaTeX Error: environment acknowledgements undefined* or
-     *Undefined control sequence \acknowledgements*
-
-     The users have used ReVTeX; simply change the ``\begin{acknowledgements}``
-     or ``\acknowledgements``
-     to ``\section*{Acknowledgements}`` (of course also removing any eventual
-     ``\end{acknowledgements}``).
-
-
-   * *LaTeX Error: Environment widetext undefined.*
-
-     The authors have used ReVTeX; simply comment out all ``\begin{widetext}``
-     and ``\end{widetext}`` markers.
-
-
-Problems
-~~~~~~~~
-
-   * package ``lineno`` and ``amsmath`` are incompatible
-
-     Problem: line numbers don't appear when paragraph is followed by align etc.
-
-     Solution: [from `this link <http://phaseportrait.blogspot.nl/2007/08/lineno-and-amsmath-compatibility.html>`_]: paste this in the preamble::
-
-       %% Patch lineno when used with amsmath
-       \newcommand*\patchAmsMathEnvironmentForLineno[1]{%
-       \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname
-       \expandafter\let\csname oldend#1\expandafter\endcsname\csname end#1\endcsname
-       \renewenvironment{#1}%
-       {\linenomath\csname old#1\endcsname}%
-       {\csname oldend#1\endcsname\endlinenomath}}%
-       \newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{%
-       \patchAmsMathEnvironmentForLineno{#1}%
-       \patchAmsMathEnvironmentForLineno{#1*}}%
-       \AtBeginDocument{%
-       \patchBothAmsMathEnvironmentsForLineno{equation}%
-       \patchBothAmsMathEnvironmentsForLineno{align}%
-       \patchBothAmsMathEnvironmentsForLineno{flalign}%
-       \patchBothAmsMathEnvironmentsForLineno{alignat}%
-       \patchBothAmsMathEnvironmentsForLineno{gather}%
-       \patchBothAmsMathEnvironmentsForLineno{multline}%
-       }
-       %% End patch lineno
-
-
-   * Breaking of in-line math equations
-
-     Simply prevent by forcing equations into a math atom by surrouding them with braces,::
-
-       Here is an equation that should not be broken: ${E=mc^2}$.
-
-
-   * Equation/table or other text/maths element is just too wide.
-     Option: locally change the fontsize by embedding the object in a ``\fontsize`` block,::
-
-       \begingroup
-       \fontsize{new font size, e.g. 10pt}{skip, 120% of previous}\selectfont
-       [ element]
-       \endgroup
-
-
-   * package ``MnSymbol`` is problematic and clashes with amsmath.
-
-     One solution is to import individual symbols according to these
-     `instructions <http://tex.stackexchange.com/questions/36006/importing-single-symbol-from-mnsymbol>`_.
-
-
-   * Equations spacing in ``align`` environment is too tight.
-
-     The simple solution is to include a spacing specifier of the form ``\nonumber \\[5pt]``,
-     where ``5pt`` is a good compromise.
-
-     This spacing can also be set globally by including ``\setlength{\jot}{5pt}`` before the
-     ``\begin{document}``.
-
-
-References formatting
-~~~~~~~~~~~~~~~~~~~~~
-
-   References should be in the following format:
-
-      * Author names are in comma-separated list (except for the last author,
-	with no comma and an *and*) with format [initials] [last name].
-
-      * Titles are in italics, and capitalization is displayed (using *e.g.* \{\{ [title] \}\} in BiBTeX). For PRL: nouns capitalized.
-
-      * Journal names are abbreviated. A useful resource is this `list of journal abbreviations <http://www.efm.leeds.ac.uk/~mark/ISIabbr/A_abrvjt.html>`_.
-
-      * Volume number is in bold.
-
-      * Issue number can be left out; if included, in parentheses after volume nr.
-
-      * Year is in parentheses.
-
-      * Commas separate all elements.
-
-      * All doi are present and displayed in format doi:[doi]. Note that the doi does
-	*not* include any ``http://doi.org`` or similar URL prefix. Instead, it should
-	be of the form ``10.###[...]/[...]``.
-
-      * The reference is closed by a ``.``
-
-
-      For arXiv entries, verify if the paper has been published in the meantime.
-      If so, replace this reference with its proper citation.
-      If not, use the format ``\href{https://arxiv.org/abs/####.#####}{arXiv:####.#####}``,
-      and remove any ``(YEAR)``.
-
-      \J. Stat. Mech. and JHEP are annoying (because the volume number is the year).
-      Manually remove volume nr for these, so the format becomes ``A. Bee, \emp{Bee's nice paper}, J. Stat. Mech.: Th. Exp. [P,L]##### (20##), \doi{10...}.``
-
-      \J. Phys. A is also annoying. Up to and including volume 39 (2006), it's
-      \J. Phys. A: Math. Gen. Afterwards, volume 40 (2007) onwards, it's
-      \J. Phys. A: Math. Theor.
-
-      Entries in the bibliography which are not references but footnotes,
-      should be formatted as such in the main text (using ``\footnote{}``).
-
-
-      Check that all DOIs work. Remove the ``\meta`` at the end of the bibitem
-      if it is present.
-
-
-Layout verification
-~~~~~~~~~~~~~~~~~~~
-
-   The whole paper should be scanned through, and the layout of equations
-   and figures should be checked and corrected if necessary.
-
-   In particular, the punctuation of equations should be checked and corrected
-   if necessary.
diff --git a/docs/users/guides/editorial/production/online_publication.rst b/docs/users/guides/editorial/production/online_publication.rst
deleted file mode 100644
index 8d368818dc413b1e03a8b42389e69f8614abf29b..0000000000000000000000000000000000000000
--- a/docs/users/guides/editorial/production/online_publication.rst
+++ /dev/null
@@ -1,190 +0,0 @@
-.. Howto for publication production
-
-Online Publication
-==================
-
-This guide is meant for **Editorial Administrators**. It describes the final publication of manuscripts, after final author proofs approval.
-
-Version: 2017-05-11.
-
-
-Finalization of manuscript production
--------------------------------------
-
-The steps described here follow up on the :doc:`../production/initial_production` instructions used by production officers.
-
-
-Preparation of final version of record
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-   #. Copy the whole paper folder from folder [journal name]/IN\_PRODUCTION \\to [journal name]/Volume\_[volume nr].
-
-   #. Check online to see which paper number is next available.
-
-   #. Rename this folder using the convention [journal name]\_[volume number]([issue number])\_[paper nr].
-
-   #. Within this folder, take the author-accepted version tex file and rename it using the convention [journal name abbrev]\_[volume nr]\_[issue nr]\_[paper nr].tex.
-
-   #. In this tex source, replace the ??? with the 3-digit paper number (3 places: 2 in preamble, 1 in copyright statement).
-
-   #. Ensure that the author names are in format Abe Bee, Cee Dee and Elle Fine.
-
-   #. Insert the correct Received, Accepted and Published dates in copyright statement.
-
-   #. Between the ``\begin{minipage}{0.4\textwidth}`` and ``%%%%%%%%%% TODO: DATES`` lines, paste::
-
-	\noindent\begin{minipage}{0.68\textwidth}
-
-   #. Update the DOI block to::
-
-	%%%%%%%%%% TODO: DOI
-	}
-	\end{minipage}
-	\begin{minipage}{0.25\textwidth}
-	\begin{center}
-	\href{https://crossmark.crossref.org/dialog/?doi=10.21468/SciPostPhys.?.?.???&amp;domain=pdf&amp;date_stamp=20??-??-??}{\includegraphics[width=7mm]{CROSSMARK_BW_square_no_text.png}}\\
-	\tiny{Check for}\\
-	\tiny{updates}
-	\end{center}
-	\end{minipage}
-	\\\\
-	\small{\doi{10.21468/SciPostPhys.?.?.???}
-	%%%%%%%%%% END TODO: DOI
-
-   #. In the DOI block you just pasted, make sure the ``?`` are replaced by the
-      correct info (DOI (2 places), publication date in format ``YYYY-MM-DD``).
-
-   #. Make sure linenumbers are deactivated, by commenting out the line ``\linenumbers``.
-
-   #. Does the table of contents (if present) look OK? (Beware of hanging closing
-      line pushed to top of second page). If needed, adjust the ``\vspace`` spacings
-      defined around the table of contents, and/or insert an additional ``vspace``
-      with negative spacing before the abstract.
-
-   #. If the author-accepted proofs version used BiBTeX, copy the contents of the bbl
-      file into the .tex file, so that BiBTeX is not needed anymore.
-
-   #. Verify each reference: authors, title, journal reference, doi link.
-      Manually correct any incorrect references.
-
-   #. Recompile the LaTeX, and CAREFULLY CHECK EVERYTHING.
-
-
-Uploading to ``scipost.org``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-   #. From the Submissions Pool, click on the link to initiate the publication process.
-
-   #. Fill in the initiate publication form (using the dates in format YYYY-MM-DD). Submit. You are now on the validate publication page.
-
-   #. Check that the paper number is correct. If not, modify the final tex source to account for this (see previous subsection).
-
-   #. Select who the first author is (if registered as a Contributor; if not, inform the EdAdmin, and choose another author who is registered).
-
-   #. Select the final version's pdf file.
-
-   #. Submit. The paper is now published online.
-
-
-Metadata preparation and DOI registration with Crossref
--------------------------------------------------------
-
-   These tasks must be performed by **Editorial Administrators**,
-   who have access to the Publication's editorial tools
-   by navigating to the Publication's page.
-
-
-Author listing
-~~~~~~~~~~~~~~
-
-   If not all authors appear in the list presented at the top of the EdAdmin tools,
-   these should be added by following the ``Add a missing author`` link.
-
-   The search form can be used to find missing authors who might be
-   Registered Contributors. If found, a one-click process adds them.
-
-   You can otherwise create an UnregisteredAuthor object instance and link
-   it to the publication, by simply filling in the first and last name fields
-   and clicking on ``Add``.
-
-
-Preparation of the JATS version of the abstract
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-   Crossref allows deposit of abstracts using JATS-formatted XML. The ``jats:`` prefix must
-   be used by all child elements. Proceed as follows:
-
-   #. Produce the JATS version by converting the LeTeX abstract to JATS using
-      ``pandoc`` (see `<https://pandoc.org/index.html>`_), by invoking the command
-      ``pandoc -f latex -t jats``, pasting the LaTeX and running pandoc with `Ctrl-D`.
-
-   #. Follow the ``Create/update abstract (JATS version)`` link.
-
-   #. Paste the pandoc output in the Textarea. In the input, add the ``jats:`` prefix
-      to all non-MathML elements. For example, the leading ``<p>`` should read
-      ``<jats:p>``. Make sure you treat all opening and closing elements.
-
-   #. Submit the form.
-
-
-Preparation of the citations list
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-   Follow the ``Create/update citation list metadata`` link.
-
-   In the text area, paste the entire list of bibitems from the paper's
-   final ``.tex`` file. Upon clicking on ``Submit``, all DOI entires
-   are extracted and formatted into XML metadata which is saved in the
-   database.
-
-   Citations with no valid DOI (*e.g.* arXiv preprints, books, etc)
-   do not appear in the metadata.
-
-
-Funding info
-~~~~~~~~~~~~
-
-   Following the ``Create/update funding info metadata`` link leads to a
-   page where the funding statement of the Publication's ``.tex`` file
-   (found either as a separate subsection or in the Acknowledgements)
-   can be pasted.
-
-
-Preparation of the metadata XML
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-   Following the ``Create/update metadata XML`` link auto-generates a
-   full XML text field containing all the provided information,
-   properly formatted for the upcoming submission to Crossref.
-
-   Verify that the first author is indeed enclosed in a
-   ``<person_name sequence='first' contributor_role='author'>`` tag,
-   and that subsequent authors (enclosed in
-   ``<person_name sequence='additional' contributor_role='author'>`` tags)
-   appear in the order of the Publication's author list.
-
-   Once the metadata is set, clicking on ``Accept the metadata``
-   saves the metadata to the database and returns one to the Publication's
-   page.
-
-
-Metadata testing and deposit
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-   At this stage, the metadata is ready for uploading to Crossref.
-   This occurs via a POST query to either the test or live Crossref server.
-
-   Clicking on ``Test metadata deposit`` immediately posts the metadata
-   to the test server, and takes you to a page where the server's
-   response headers are displayed. The server also sends a more detailed
-   response via email
-   (to ``admin@scipost.org``; if you do not have access to this mailbox,
-   ask SciPost Administration) with the success status.
-
-   Similarly, the actual deposit is immediately performed upon clicking on the
-   ``Deposit the metadata to Crossref``. The response headers are displayed,
-   and a detailed email response is sent by Crossref to ``admin@scipost.org``.
-
-
-   **This completes the publication process.**
diff --git a/docs/users/guides/editorial/production/proofs.rst b/docs/users/guides/editorial/production/proofs.rst
deleted file mode 100644
index eb50aee6c46c9efee9501d5b8d840453564dabc4..0000000000000000000000000000000000000000
--- a/docs/users/guides/editorial/production/proofs.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-.. Howto for proofs
-
-Proofs
-======
-
-This guide is meant for **Production supervisors**. It describes the proofs cycle between production team and manuscript authors.
-
-
-Proofs version production
--------------------------
-
-   * Once the paper has been properly formatted, the ``.tex`` and ``.pdf`` files
-     should be copied into new files carrying the ``_proofs_v[nr]`` suffix,
-     for example ``SciPost_Phys_1699_9999v9_Bee_proofs_v1.tex``.
-
-   * The ``.pdf`` proofs should be emailed to the authors for verification.
-     Authors should return either an annotated pdf or a list of corrections
-     by plain text email.
-
-   * Any modifications should be implemented directly in the main ``.tex`` file.
-
-   * If any further check by the authors are required, start this proofs
-     todo-list again, increasing the proofs version number.
-
-   * Once the authors have approved the proofs, the paper can be put forward
-     to online publication.
diff --git a/docs/users/guides/editorial/submissions_processing.rst b/docs/users/guides/editorial/submissions_processing.rst
deleted file mode 100644
index e8a3dd7ab7d30d6c93dbb6b4766fe72d42059d70..0000000000000000000000000000000000000000
--- a/docs/users/guides/editorial/submissions_processing.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-Submission processing
-=====================
-
-This document describes the workflow starting at the moment of submission, and leading up to the final decision by the Editorial College. Editorial Administrators should use these instructions to correctly shepherd submissions through the whole refereeing process.
-
-
-Reception phase
----------------
-
-Plagiarism check
-~~~~~~~~~~~~~~~~
-
-Upon reception of a submission, the first action is to perform the plagiarism check. This is performed using Crossref Similarity Check (hereunder CSC), which makes use of the iThenticate application. EdAdmin should navigate to the `crosscheck page <https://crosscheck.ithenticate.com/en_us/login>`_ and login using the credentials (ask SciPost Admin if you don't have any).
-
-The .pdf of the submission should be obtained from arXiv, renamed ``####_#####v#_[lastname].pdf``, and saved in the shared folder ``SURFDRIVE/SCIPOST_SUBMISSIONS/[journal_name]/YYYY_MM``. This file should then be uploaded to CSC, in a folder ``[Journal name]_submissions/YYYY-MM`` (this folder should be created if this is that month's first submission; if creating the folder, select the option ``Exclude bibliography``). To upload, click on ``Submit a document``. You will be prompted for the (first) author first and last names, together with the document title (namely: the title of the paper). Clicking ``upload`` starts the plagiarism check (status becomes: processing).
-
-After a few minutes, the plagiarism check document becomes available (under Report). This should be examined thoroughly, downloaded and saved to the SURFDRIVE folder above. A percentage above about 15% is cause for concern.
-
-
-
-Pre-screening
--------------
-
-
-Assignments
-~~~~~~~~~~~
-
-
-During refereeing
------------------
-
-
-Compliance with Crossref DOI requirements
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If the Submission's references are not properly formatted,
-and/or if these do not include the required DOIs,
-the authors should be asked to do so in their eventual
-resubmission.
diff --git a/docs/users/guides/referees.rst b/docs/users/guides/referees.rst
deleted file mode 100644
index 3c2f4012678982d4b07ac555e51e6364b9363f50..0000000000000000000000000000000000000000
--- a/docs/users/guides/referees.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-Refereeing
-==========
-
-This guide is meant for **referees**. It describes how to do an optimal job when writing reports on SciPost submissions.
-
-
-Good citizenship as a referee
------------------------------
-
-   * Promptly responding to a refereeing invitation.
-
-   * Submitting your report by the deadline.
-
-   * Writing a high-quality report
-
-
-
-The characteristics of a high-quality report
---------------------------------------------
diff --git a/docs/users/roles.rst b/docs/users/roles.rst
deleted file mode 100644
index 9ee3d9b776d5a3c6962ce9b45958f8c90459ac60..0000000000000000000000000000000000000000
--- a/docs/users/roles.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Roles: responsibilities and task lists
-======================================
-
-
-.. toctree::
-   :maxdepth: 3
-
-   roles/editorial
-   roles/production
diff --git a/docs/users/roles/editorial.rst b/docs/users/roles/editorial.rst
deleted file mode 100644
index cfa655219fd7ad2e6fbb5c071998ccf46e409de5..0000000000000000000000000000000000000000
--- a/docs/users/roles/editorial.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Editorial roles
-===============
-
-
-.. toctree::
-   :maxdepth: 3
-
-   editorial/editorial_administrators
-   editorial/editorial_fellows
diff --git a/docs/users/roles/editorial/editorial_administrators.rst b/docs/users/roles/editorial/editorial_administrators.rst
deleted file mode 100644
index d6747f7d357c5799fb77d8450dac71a258523b3d..0000000000000000000000000000000000000000
--- a/docs/users/roles/editorial/editorial_administrators.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Editorial Administrators
-========================
-
-
-.. toctree::
-   :maxdepth: 2
diff --git a/docs/users/roles/editorial/editorial_fellows.rst b/docs/users/roles/editorial/editorial_fellows.rst
deleted file mode 100644
index 00973f28a2fff53aa8726ed59a63da0bc3fd0122..0000000000000000000000000000000000000000
--- a/docs/users/roles/editorial/editorial_fellows.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Editorial Fellows
-=================
-
-
-.. toctree::
-   :maxdepth: 2
diff --git a/docs/users/roles/production.rst b/docs/users/roles/production.rst
deleted file mode 100644
index e935976df5a41428183f2d63a8f12fe11817db4c..0000000000000000000000000000000000000000
--- a/docs/users/roles/production.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Production roles
-================
-
-
-.. toctree::
-   :maxdepth: 1
-
-   production/production_supervisors
-   production/production_officers
diff --git a/docs/users/roles/production/production_officers.rst b/docs/users/roles/production/production_officers.rst
deleted file mode 100644
index 95a69c37640d688cbbd36c6bc6a840878677eb31..0000000000000000000000000000000000000000
--- a/docs/users/roles/production/production_officers.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-Production Officers
-===================
-
-
-This document describes the roles of **Production Officers**.
-
-
-
-Tasks
------
-
-   * Upon being assigned a production stream, produce the first version of the proofs following the :ref:`initial production instructions <initial_production>`.
diff --git a/docs/users/roles/production/production_supervisors.rst b/docs/users/roles/production/production_supervisors.rst
deleted file mode 100644
index 8fb467e09935d058a266f1ea03efba6c763ce25e..0000000000000000000000000000000000000000
--- a/docs/users/roles/production/production_supervisors.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-Production Supervisors
-======================
-
-
-This document describes the roles of **Production Supervisors**.
-
-
-Responsibilities
-----------------
-
-   * Ensuring the efficiency of the production workflow
-   * Supervising the work of the production team
-   * Training new Production Officers
-
-
-Tasks
------
-
-   * Assign new production streams to Production Officers
-   * Check proofs produced by Production Officers
-   * Monitor the workflow of Production Officers
-   * Report back to EdAdmin on any problems with the workflow
diff --git a/funders/forms.py b/funders/forms.py
index 15af6c74b76c980844435997ffb10c12441d6d7c..bd602d7d776a3280f542f314b37abe512ae3397d 100644
--- a/funders/forms.py
+++ b/funders/forms.py
@@ -23,7 +23,7 @@ class FunderForm(forms.ModelForm):
 
 
 class FunderSelectForm(forms.Form):
-    funder = forms.ModelChoiceField(queryset=Funder.objects.all())
+    funder = AutoCompleteSelectField('funder_lookup')
 
 
 class FunderOrganizationSelectForm(forms.ModelForm):
@@ -47,4 +47,4 @@ class GrantForm(HttpRefererFormMixin, forms.ModelForm):
 
 
 class GrantSelectForm(forms.Form):
-    grant = forms.ModelChoiceField(queryset=Grant.objects.all().select_related('funder'))
+    grant = AutoCompleteSelectField('grant_lookup')
diff --git a/guides/__init__.py b/guides/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/guides/admin.py b/guides/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e
--- /dev/null
+++ b/guides/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/guides/apps.py b/guides/apps.py
new file mode 100644
index 0000000000000000000000000000000000000000..520c221772cf6b5ce18da8fdfd68968d0d953293
--- /dev/null
+++ b/guides/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class GuidesConfig(AppConfig):
+    name = 'guides'
diff --git a/guides/migrations/__init__.py b/guides/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/guides/models.py b/guides/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..71a836239075aa6e6e4ecb700e9c42c95c022d91
--- /dev/null
+++ b/guides/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/guides/templates/guides/_guides_base.html b/guides/templates/guides/_guides_base.html
new file mode 100644
index 0000000000000000000000000000000000000000..900eaa01c894b50d84d94b42ea9cd2892876e3be
--- /dev/null
+++ b/guides/templates/guides/_guides_base.html
@@ -0,0 +1,15 @@
+{% extends 'scipost/base.html' %}
+
+{% block breadcrumb %}
+    <div class="container-outside header">
+        <div class="container">
+            <nav class="breadcrumb hidden-sm-down">
+                {% block breadcrumb_items %}
+                    <a href="{% url 'scipost:index' %}" class="breadcrumb-item">SciPost</a>
+                {% endblock %}
+            </nav>
+        </div>
+    </div>
+{% endblock %}
+
+{% block container_class %}{{block.super}} pb-5{% endblock container_class %}
diff --git a/guides/templates/guides/editorial/production/initial_production.html b/guides/templates/guides/editorial/production/initial_production.html
new file mode 100644
index 0000000000000000000000000000000000000000..ee0db2a0da44ce6e91158815ebe9b620118435fe
--- /dev/null
+++ b/guides/templates/guides/editorial/production/initial_production.html
@@ -0,0 +1,532 @@
+{% extends 'guides/_guides_base.html' %}
+
+{% block pagetitle %}: guides: initial production{% endblock pagetitle %}
+
+{% block breadcrumb_items %}
+{{block.super}}
+<a href="{% url 'guides:guides_index' %}" class="breadcrumb-item">Guides</a>
+<span class="breadcrumb-item">Editorial</span>
+<span class="breadcrumb-item">Production</span>
+<span class="breadcrumb-item active">Initial production</span>
+{% endblock %}
+
+{% block content %}
+
+<h1>Initial Production of SciPost Publications</h1>
+<p>
+  This guide is meant for <strong>Editorial Administrators</strong>, <strong>Production Supervisors</strong> and <strong>Production Officers</strong>. It describes the post-acceptance workflow from paper acceptance to publication.
+</p>
+
+<h3>Formatting check</h3>
+<p>
+  If the Submission's references are not properly formatted,
+  and/or if these do not include the required DOIs,
+  the authors should be emailed and asked to provide them,
+  by sending in either an updated <code>.bbl</code> file or <code>.bib</code> source.
+</p>
+<p>
+   Any extra material provided by the authors which supplements
+   the arXiv source should be put in a folder <code>EXTRA_FROM_AUTH</code>.
+</p>
+
+<h3>Source retrieval and folder preparation</h3>
+<ol>
+  <li>
+    On the SciPost server, navigate to folder
+    <code>[Journal full name]/IN_PRODUCTION</code>.
+  </li>
+  <li>
+    Create a folder
+    <code>[journal abbrev. name]_[arxiv identifier]_[first author last name]</code>,
+    e.g. <code>SciPost_Phys_1604.98141v3_Smart</code>.
+  </li>
+  <li>
+    Save the source from arXiv into this folder.
+  </li>
+  <li>
+    NOTE: the file will be named <code>####.#####v#</code>, which is not recognized
+    as a <code>.tar.gz</code> file on a UNIX system. Rename the file
+    <code>####.####v#.tar.gz</code>. Unzip it to produce the folder <code>####.#####v#</code>.
+    If this produces another tar file, it is because the submission consists of
+    a single <code>.tex</code> file; you should then rename this to <code>####.#####v#.tex</code>.
+  </li>
+  <li>
+    Copy the paper’s sources one level down (so from <code>####.#####v#</code> to
+    the current directory). BE CAREFUL: if the authors have included any of
+    the SciPost style files (<code>SciPost.cls</code>, <code>SciPost_bibstyle.bst</code>), DO NOT
+    copy those down. You can skip this step if the previous step immediately led
+    to a <code>.tex</code> file.
+  </li>
+  <li>
+    Copy the files in
+    <code>[Journal full name]/v##_production/FILES_TO_COPY_IN_PAPER_DIR</code>
+    to the current directory. There are 5 files:
+    <ul>
+      <li><code>by.eps</code></li>
+      <li><code>logo_scipost_with_bgd.pdf</code></li>
+      <li><code>SciPost_bibstyle.bst</code></li>
+      <li><code>SciPost.cls</code></li>
+      <li><code>SciPost_[Phys, or other as appropriate]_Skeleton.tex</code></li>
+    </ul>
+  </li>
+  <li>
+    Copy the skeleton <code>.tex</code> source to a new file using the name convention
+    <code>[Journal abbrev. name]_####_#####v#_[first author last name].tex</code>
+    (careful: use underscore instead of . between numbers).
+  </li>
+</ol>
+
+<h3>LaTeX file preparation</h3>
+<p>
+ The next step is to transfer the submission's LaTeX contents into the final file.
+</p>
+<p>
+ All steps involed appear in the skeleton <code>.tex</code> source in the form <code>%%%%%%%%%% TODO: [TOKEN]</code> opening marked, followed by a corresponding <code>%%%%%%%%%% END TODO: [TOKEN]</code> marker.
+</p>
+<p>
+ The easiest way to proceed is to copy and paste material from the authors' <code>.tex</code>
+ source directly into the (appropriately renamed as per the instructions above)
+ skeleton file.
+</p>
+<p>
+  During the file preparation, if there is anything worth noting about the
+  production process, please include this in the
+ </p>
+ <pre><code>
+     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+     % Production Notes
+     % [your name here]
+     %
+     % [your notes here]
+     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ </code></pre>
+ <p>
+  block at the beginning of the document, just before the <code>\documentclass</code> declaration.
+ </p>
+ <p>
+   As the person running the production, please identify yourself by writing
+   your initials and surname in this block.
+ </p>
+
+ <h3>General LaTeX tips</h3>
+ <ul>
+   <li>
+     Prefer the <code>align</code> (from package <code>amsmath</code>) environment
+     to <code>eqnarray</code>.
+     For a technical discussion, see for example <a href="https://tug.org/TUGboat/tb33-1/tb103madsen.pdf">this link</a>.
+   </li>
+   <li>
+     You do <strong>not</strong> have to systematically replace all
+     <code>eqnarray</code> with <code>align</code>.
+     However, if you do reformat some equations, do shift to <code>align</code>.
+   </li>
+ </ul>
+
+ <h3>Step-by-step procedure</h3>
+
+ <ol>
+   <li>TODO: PAPER CITATION
+     <p>
+       In this place, fill the missing numbers in the citation header:
+     </p>
+     <pre><code>\rhead{\small \href{https://scipost.org/SciPostPhys.?.?.???}{SciPost Phys. ?, ??? (20??)}}</pre></code>
+     <p>
+       The first argument of the <code>href</code> is the simple permanent URL for the publication. This includes 3 numbers: the volume number, issue, and three-digit paper number, for example <code>SciPostPhys.1.2.011</code>. Verify the appropriate issue number (this will be verified later by an EdAdmin). At this stage, leave the paper number to <code>???</code>: this number will be assigned and filled in in the last stage of production.
+     </p>
+     <p>
+       The second argument to the <code>href</code> uses the simple citation, dropping the issue number, for example <code>SciPostPhys. 1, 011 (2016)</code>.
+     </p>
+   </li>
+   <li>
+     TODO: PACKAGES
+     <p>
+       The <code>SciPost.cls</code> (v1b) class definition requires the following packages:
+     </p>
+     <ul>
+       <li>amsmath [NOTE: amssymb is redundant and clashes with mathdesign]</li>
+       <li>cite</li>
+       <li>doi</li>
+       <li>fancyhdr</li>
+       <li>geometry</li>
+       <li>graphicx</li>
+       <li>hyperref</li>
+       <li>inputenc</li>
+       <li>lineno [for proofs only]</li>
+       <li>titlesec</li>
+       <li>tocloft, nottoc,notlot,notlof</li>
+       <li>xcolor</li>
+     </ul>
+     <p>
+       If the authors are using extra packages not already in the list above,
+       you should paste their list within this TODO block.
+     </p>
+     <p>
+       Any package originally included by the authors which you do <strong>not</strong>
+       include should be commented out with a  <code>% REMOVED IN PROD</code>
+       comments prepended.
+     </p>
+     <p>
+       Any package which is added during production should be listed after
+       the <code>% ADDED IN PRODUCTION</code> marker.
+     </p>
+   </li>
+   <li>
+     TODO: COMMANDS
+     <p>
+       If the authors have redefined commands, paste the redefinitions in this block.
+     </p>
+     <p>
+       Discard (namely: do not copy and paste) any length (and similar) redefinitions.
+     </p>
+   </li>
+   <li>
+     TODO: TITLE
+     <p>
+       The title is enclosed in:
+     </p>
+     <pre><code>
+	 \begin{center}{\Large \textbf{\color{scipostdeepblue}{
+	 [title]
+	 }}}\end{center}
+     </pre></code>
+     <p>
+       Paste the title in this block. End the title with <code>\\</code>
+       in order to ensure proper uniform spacing between the lines.
+     </p>
+   </li>
+   <li>
+     TODO: AUTHORS
+     <p>
+       Author names should be in format <code>firstname lastname</code>, e.g. <code>John Smith</code>,
+       and should be in textbf. No <code>comma</code> but rather an <code>and</code> before
+       the last author. If multiple authors and affiliations, use <code>\textsuperscript</code>
+       and positive integer labels, with a <code>$\star$</code> for the corresponding author.
+       If all authors are from the same institution, there is no need for superscripts
+       (except to mark the corresponding author if desired).
+       If multiple email addresses are given, reference them with <code>$\dagger$, ...</code>.
+     </p>
+   </li>
+   <li>
+     TODO: AFFILIATIONS
+     <p>
+       If there are many affiliations, each is prepended by the appropriate
+       <code>{\bf [nr]}</code>. Separate affiliations with double-backslash.
+     </p>
+     <p>
+       Put a <code>\\[\baselineskip]</code> after the affiliations.
+     </p>
+   </li>
+   <li>
+     TODO: EMAIL (OPTION)
+     <p>
+       Optionally, provide the email of the corresponding author using:
+     </p>
+     <pre><code>\href{mailto:[email]}{\small \sf [email]}</code></pre>
+     <p>
+       prepended with <code>$\star$</code> if corresponding author. If no email is to be given,
+       comment out the <code>$\star$ \href{mailto:[email]}{\small \sf [email]}</code> line.
+     </p>
+     <p>
+       If a web link is offered, use the format <code>{\small \url{[url]}}</code>.
+     </p>
+   </li>
+   <li>
+     TODO: ABSTRACT
+     <p>
+       Paste the abstract in the provided block:
+     </p>
+     <pre><code>
+	 \section*{\color{scipostdeepblue}{Abstract}}
+	 {\bf
+	 [abstract]
+	 }
+     </code></pre>
+   </li>
+   <li>
+     TODO: TOC
+     <p>
+       As a general guideline, the paper should contain a table of contents
+       if it has more than 6 pages.
+     </p>
+     <p>
+       If a TOC should be included, leave the skeleton as it is. If no TOC
+       should be there, simply comment out the 2nd and 3rd lines of:
+     </p>
+     <pre><code>
+	 \vspace{10pt}
+	 \noindent\rule{\textwidth}{1pt}
+	 \tableofcontents
+	 \noindent\rule{\textwidth}{1pt}
+	 \vspace{10pt}
+     </code></pre>
+     <p>
+       explicitly leaving:
+     </p>
+     <pre><code>
+	 \vspace{10pt}
+	 %\noindent\rule{\textwidth}{1pt}
+	 %\tableofcontents
+	 \noindent\rule{\textwidth}{1pt}
+	 \vspace{10pt}
+     </code></pre>
+     <p>
+       If a single horizontal line is pushed to the next page, correct by
+       playing with negatime <code>\vspace</code>.
+     </p>
+   </li>
+   <li>
+     TODO: COPYRIGHT
+     <p>
+       Include the first author's initials and family name in the copyright
+       statement. If there are just two authors: give both authors' initials
+       and last names. If there are more than two authors, use the format
+       <code>A. Bee {\it et al.}</code>. Be respectful of any special (non-latin)
+       characters in authors' names.
+     </p>
+   </li>
+   <li>
+     TODO: DATES
+     <p>
+       Fill in the appropriate received and accepted dates in
+       format <code>DD-MM-YYYY</code>. Be careful to use the correct submission data,
+       namely that of the original submission.
+     </p>
+     <p>
+       The accepted and published dates will be filled in later on.
+     </p>
+   </li>
+   <li>
+     TODO: DOI
+     <p>
+       Provide the volume and issue numbers (two places) in the DOI specifier.
+       The paper number will be assigned in the final stage of production.
+     </p>
+   </li>
+   <li>
+     TODO: LINENO
+     <p>
+       During proofs stage, make sure line numbers are activated (they should
+       be by default).
+     </p>
+   </li>
+   <li>
+     TODO: CONTENTS
+     <p>
+       Paste the entire bulk of the paper in this block,
+       including all sections and eventual appendices.
+       Check that there are no appendices after the references in the
+       original tex file.
+     </p>
+   </li>
+   <li>
+     TODO: BIBNR
+     <p>
+       If the bibliography contains more than 100 entries, use
+       <code>999</code> instead of <code>99</code> in the <code>\begin{thebibliotraphy}{[nr]}</code>
+       statement.
+     </p>
+   </li>
+   <li>
+     TODO: BBL
+     <p>
+       The references are explicitly pasted into this block.
+     </p>
+     <p>
+       If using BiBTeX, use a <code>\bibliography{[bibfilename]}</code> command,
+       and comment out the <code>\begin{thebibliography}</code> and <code>\end{thebibliography}</code>
+       commands. After running BiBTeX, the contents of the generated
+       <code>.bib</code> file should be pasted in the uncommented
+       <code>\begin,\end{thebibliography}</code>
+       block, and the <code>\bibliography{[bibfilename]}</code> should be commented out.
+     </p>
+     <p>
+       Note: the reason to not use BiBTeX from now on is to easy in-file
+       correction of improperly formatted references (instead of having to correct
+       the <code>.bib</code> file).
+     </p>
+   </li>
+ </ol>
+
+ <p>
+   <strong>You are now ready to typeset the <code>.tex</code> file</strong>. Simple issues are listed
+   below. If you encounter further problems, see the <strong>Problems</strong> list below.
+ </p>
+ <p>
+   If you need to run BiBTeX for the references, do so (remembering to do it
+   at least twice so the references appear), and then paste the contents of the
+   <code>.bbl</code> file in the <code>% TODO: REFERENCES</code> block.
+   <strong>Make sure you use the correct</strong> <code>.bib</code> <strong>file</strong>.
+ </p>
+</ol>
+
+<h3>Gotchas</h3>
+<ul>
+  <li>
+    Authors have included the <code>\usepackage{lmodern}</code> in their LaTeX packages,
+    overriding the normal fonts we use. <strong>Check whether the right font is being used!</strong>
+  </li>
+</ul>
+
+<h3>Simple issues</h3>
+<ul>
+  <li>
+    <code>LaTeX Error: environment acknowledgements undefined</code> or
+    <code>Undefined control sequence \acknowledgements</code>
+    <p>
+      The users have used ReVTeX; simply change the <code>\begin{acknowledgements}</code>
+      or <code>\acknowledgements</code>
+      to <code>\section*{Acknowledgements}</code> (of course also removing any eventual
+      <code>\end{acknowledgements}</code>).
+    </p>
+  </li>
+  <li>
+    <code>LaTeX Error: Environment widetext undefined.</code>
+    <p>
+      The authors have used ReVTeX; simply comment out all <code>\begin{widetext}</code>
+      and <code>\end{widetext}</code> markers.
+    </p>
+  </li>
+</ul>
+
+<h3>Problems</h3>
+<ul>
+  <li>
+    package <code>lineno</code> and <code>amsmath</code> are incompatible
+    <p>
+      Problem: line numbers don't appear when paragraph is followed by align etc.
+    </p>
+    <p>
+      Solution (from <a href="https://phaseportrait.blogspot.nl/2007/08/lineno-and-amsmath-compatibility.html">this link</a>): paste this in the preamble:
+    </p>
+    <pre><code>
+       %% Patch lineno when used with amsmath
+       \newcommand*\patchAmsMathEnvironmentForLineno[1]{%
+       \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname
+       \expandafter\let\csname oldend#1\expandafter\endcsname\csname end#1\endcsname
+       \renewenvironment{#1}%
+       {\linenomath\csname old#1\endcsname}%
+       {\csname oldend#1\endcsname\endlinenomath}}%
+       \newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{%
+       \patchAmsMathEnvironmentForLineno{#1}%
+       \patchAmsMathEnvironmentForLineno{#1*}}%
+       \AtBeginDocument{%
+       \patchBothAmsMathEnvironmentsForLineno{equation}%
+       \patchBothAmsMathEnvironmentsForLineno{align}%
+       \patchBothAmsMathEnvironmentsForLineno{flalign}%
+       \patchBothAmsMathEnvironmentsForLineno{alignat}%
+       \patchBothAmsMathEnvironmentsForLineno{gather}%
+       \patchBothAmsMathEnvironmentsForLineno{multline}%
+       }
+       %% End patch lineno
+    </code></pre>
+  </li>
+  <li>
+    Breaking of in-line math equations
+    <p>
+      Simply prevent by forcing equations into a math atom by surrouding them with braces,:
+    </p>
+    <pre><code>Here is an equation that should not be broken: ${E=mc^2}$.</code></pre>
+  </li>
+  <li>
+    Equation/table or other text/maths element is just too wide.
+    <p>
+      Option: locally change the fontsize by embedding the object in a <code>\fontsize</code> block:
+    </p>
+    <pre><code>
+	\begingroup
+	\fontsize{new font size, e.g. 10pt}{skip, 120% of previous}\selectfont
+	[ element]
+	\endgroup
+    </code></pre>
+  </li>
+  <li>
+    package <code>MnSymbol</code> is problematic and clashes with amsmath.
+    <p>
+      One solution is to import individual symbols according to these
+      <a href="https://tex.stackexchange.com/questions/36006/importing-single-symbol-from-mnsymbol">instructions</a>.
+    </p>
+  </li>
+  <li>
+    Equations spacing in <code>align</code> environment is too tight.
+    <p>
+      The simple solution is to include a spacing specifier of the form <code>\nonumber \\[5pt]</code>,
+      where <code>5pt</code> is a good compromise.
+    </p>
+    <p>
+      This spacing can also be set globally by including <code>\setlength{\jot}{5pt}</code> before the
+      <code>\begin{document}</code>.
+    </p>
+  </li>
+</ul>
+
+<h3>References formatting</h3>
+<p>
+  References should be in the following format:
+</p>
+<ul>
+  <li>
+    Author names are in comma-separated list (except for the last author,
+    with no comma and an *and*) with format [initials] [last name].
+  </li>
+  <li>
+    Titles are in italics, and capitalization is displayed (using *e.g.* \{\{ [title] \}\} in BiBTeX). For PRL: nouns capitalized.
+  </li>
+  <li>
+    Journal names are abbreviated. A useful resource is this <a href="https://www.efm.leeds.ac.uk/~mark/ISIabbr/A_abrvjt.html">list of journal abbreviations</a>.
+  </li>
+  <li>
+    Volume number is in bold.
+  </li>
+  <li>
+    Issue number can be left out; if included, in parentheses after volume nr.
+  </li>
+  <li>
+    Year is in parentheses.
+  </li>
+  <li>
+    Commas separate all elements.
+  </li>
+  <li>
+    All doi are present and displayed in format doi:[doi]. Note that the doi does
+    <strong>not</strong> include any <code>http://doi.org</code> or similar URL prefix. Instead, it should
+    be of the form <code>10.###[...]/[...]</code>.
+  </li>
+  <li>
+    The reference is closed by a <code>.</code>
+  </li>
+</ul>
+<p>
+  For arXiv entries, verify if the paper has been published in the meantime.
+  If so, replace this reference with its proper citation.
+  If not, use the format <code>\href{https://arxiv.org/abs/####.#####}{arXiv:####.#####}</code>,
+  and remove any <code>(YEAR)</code>.
+</p>
+<p>
+  J. Stat. Mech. and JHEP are annoying (because the volume number is the year).
+  Manually remove volume nr for these, so the format becomes <code>A. Bee, \emp{Bee's nice paper}, J. Stat. Mech.: Th. Exp. [P,L]##### (20##), \doi{10...}.</code>
+</p>
+<p>
+  J. Phys. A is also annoying. Up to and including volume 39 (2006), it's
+  J. Phys. A: Math. Gen. Afterwards, volume 40 (2007) onwards, it's
+  J. Phys. A: Math. Theor.
+</p>
+<p>
+  Entries in the bibliography which are not references but footnotes,
+  should be formatted as such in the main text (using <code>\footnote{}</code>).
+</p>
+<p>
+  Check that all DOIs work. Remove the <code>\meta</code> at the end of the bibitem
+  if it is present.
+</p>
+
+<h3>Layout verification</h3>
+<p>
+  The whole paper should be scanned through, and the layout of equations
+  and figures should be checked and corrected if necessary.
+</p>
+<p>
+  In particular, the punctuation of equations should be checked and corrected
+  if necessary.
+</p>
+
+{% endblock content %}
diff --git a/guides/templates/guides/editorial/production/online_publication.html b/guides/templates/guides/editorial/production/online_publication.html
new file mode 100644
index 0000000000000000000000000000000000000000..6838a55b3b0b1e7af25bcc89ed3bd165e96ea72e
--- /dev/null
+++ b/guides/templates/guides/editorial/production/online_publication.html
@@ -0,0 +1,112 @@
+{% extends 'guides/_guides_base.html' %}
+
+{% load bootstrap %}
+
+{% block pagetitle %}: guides: online publication{% endblock pagetitle %}
+
+{% block breadcrumb_items %}
+{{block.super}}
+<a href="{% url 'guides:guides_index' %}" class="breadcrumb-item">Guides</a>
+<span class="breadcrumb-item">Editorial</span>
+<span class="breadcrumb-item">Production</span>
+<span class="breadcrumb-item active">Online publication</span>
+{% endblock %}
+
+{% block content %}
+
+<h1 id="online-publication">Online Publication</h1>
+<p>This guide is meant for <strong>Editorial Administrators</strong>. It describes the final publication of manuscripts, after final author proofs approval.</p>
+
+<h2 id="finalization-of-manuscript-production">Finalization of manuscript production</h2>
+<p>The steps described here follow up on the <a href="{% url 'guides:initial_production' %}">initial production</a> instructions used by production officers.</p>
+<h3 id="preparation-of-final-version-of-record">Preparation of final version of record</h3>
+<blockquote>
+<ol>
+<li>Copy the whole paper folder from folder <code>[journal name]/IN_PRODUCTION</code> to <code>[journal name]/Volume_[volume nr]</code>.</li>
+<li>Check online to see which paper number is next available.</li>
+<li>Rename this folder using the convention <code>[journal name]_[volume number]_[issue number]_[paper nr]_[first author last name]</code>.</li>
+<li>Within this folder, take the author-accepted version tex file and rename it using the convention <code>[journal name abbrev]_[volume nr]_[issue nr]_[paper nr].tex</code>.</li>
+<li>In this tex source, replace the <code>???</code> with the 3-digit paper number (3 places: 2 in preamble, 1 in copyright statement).</li>
+<li>Ensure that the author names are in format <code>[First name] [Last name]</code> namely: not just initials, full first name, so for example <code>Abe Bee, Cee Dee and Elle Fine</code> (unless the authors specifically request initials-only, as can be preferred in some cultures).</li>
+<li>Insert the correct Received, Accepted and Published dates in copyright statement.</li>
+<li>Between the <code>\begin{minipage}{0.4\textwidth}</code> and <code>%%%%%%%%%% TODO: DATES</code> lines, paste:</li>
+<pre><code>\noindent\begin{minipage}{0.68textwidth}</code></pre>
+<li>Update the DOI block to:</li>
+<pre><code>%%%%%%%%%% TODO: DOI
+    }
+    \end{minipage}
+    \begin{minipage}{0.25\textwidth}
+    \begin{center}
+    \href{<a href="https://crossmark.crossref.org/dialog/?doi=10.21468/SciPostPhys" class="uri">https://crossmark.crossref.org/dialog/?doi=10.21468/SciPostPhys</a>.?.?.???&amp;amp;domain=pdf&amp;amp;date_stamp=20??-??-??}{\includegraphics[width=7mm]{CROSSMARK_BW_square_no_text.png}}\\
+    \tiny{Check for}\\
+    \tiny{updates}
+    \end{center}
+    \end{minipage}
+    \\\\
+    \small{\doi{10.21468/SciPostPhys.?.?.???}
+    %%%%%%%%%% END TODO: DOI</code></pre>
+<ol>
+<li>In the DOI block you just pasted, make sure the <code>?</code> are replaced by the correct info (DOI (2 places), publication date in format <code>YYYY-MM-DD</code>).</li>
+<li>Make sure linenumbers are deactivated, by commenting out the line <code>\linenumbers</code>.</li>
+<li>Does the table of contents (if present) look OK? (Beware of hanging closing line pushed to top of second page). If needed, adjust the <code>\vspace</code> spacings defined around the table of contents, and/or insert an additional <code>vspace</code> with negative spacing before the abstract.</li>
+<li>If the author-accepted proofs version used BiBTeX, copy the contents of the bbl file into the .tex file, so that BiBTeX is not needed anymore.</li>
+<li>Verify each reference: authors, title, journal reference, doi link. Manually correct any incorrect references.</li>
+<li>Recompile the LaTeX, and CAREFULLY CHECK EVERYTHING.</li>
+</ol>
+</blockquote>
+<h3 id="uploading-to-scipost.org">Uploading to <code>scipost.org</code></h3>
+<blockquote>
+<ol>
+<li>From the Submissions Pool, click on the link to initiate the publication process.</li>
+<li>Fill in the initiate publication form (using the dates in format YYYY-MM-DD). Submit. You are now on the validate publication page.</li>
+<li>Check that the paper number is correct. If not, modify the final tex source to account for this (see previous subsection).</li>
+<li>Select who the first author is (if registered as a Contributor; if not, inform the EdAdmin, and choose another author who is registered).</li>
+<li>Select the final version's pdf file.</li>
+<li>Submit. The paper is now published online.</li>
+</ol>
+</blockquote>
+<h2 id="metadata-preparation-and-doi-registration-with-crossref">Metadata preparation and DOI registration with Crossref</h2>
+<blockquote>
+<p>These tasks must be performed by <strong>Editorial Administrators</strong>, who have access to the Publication's editorial tools by navigating to the Publication's page.</p>
+</blockquote>
+<h3 id="author-listing">Author listing</h3>
+<blockquote>
+<p>If not all authors appear in the list presented at the top of the EdAdmin tools, these should be added by following the <code>Add a missing author</code> link.</p>
+<p>The search form can be used to find missing authors who might be Registered Contributors. If found, a one-click process adds them.</p>
+<p>You can otherwise create an <code>UnregisteredAuthor</code> object instance and link it to the publication, by simply filling in the first and last name fields and clicking on <code>Add</code>.</p>
+</blockquote>
+<h3 id="preparation-of-the-jats-version-of-the-abstract">Preparation of the JATS version of the abstract</h3>
+<blockquote>
+<p>Crossref allows deposit of abstracts using JATS-formatted XML. The <code>jats:</code> prefix must be used by all child elements. Proceed as follows:</p>
+<ol>
+<li>Produce the JATS version by converting the LeTeX abstract to JATS using <code>pandoc</code> (see <a href="https://pandoc.org/index.html" class="uri">https://pandoc.org/index.html</a>), by invoking the command <code>pandoc -f latex -t jats</code>, pasting the LaTeX and running pandoc with <kbd>Ctrl-D</kbd>.</li>
+<li>Follow the <code>Create/update abstract (JATS version)</code> link.</li>
+<li>Paste the pandoc output in the Textarea. In the input, add the <code>jats:</code> prefix to all non-MathML elements. For example, the leading <code>&lt;p&gt;</code> should read <code>&lt;jats:p&gt;</code>. Make sure you treat all opening and closing elements.</li>
+<li>Submit the form.</li>
+</ol>
+</blockquote>
+<h3 id="preparation-of-the-citations-list">Preparation of the citations list</h3>
+<blockquote>
+<p>Follow the <code>Create/update citation list metadata</code> link.</p>
+<p>In the text area, paste the entire list of bibitems from the paper's final <code>.tex</code> file. Upon clicking on <code>Submit</code>, all DOI entires are extracted and formatted into XML metadata which is saved in the database.</p>
+<p>Citations with no valid DOI (<em>e.g.</em> arXiv preprints, books, etc) do not appear in the metadata.</p>
+</blockquote>
+<h3 id="funding-info">Funding info</h3>
+<blockquote>
+<p>Following the <code>Create/update funding info metadata</code> link leads to a page where the funding statement of the Publication's <code>.tex</code> file (found either as a separate subsection or in the Acknowledgements) can be pasted.</p>
+</blockquote>
+<h3 id="preparation-of-the-metadata-xml">Preparation of the metadata XML</h3>
+<blockquote>
+<p>Following the <code>Create/update metadata XML</code> link auto-generates a full XML text field containing all the provided information, properly formatted for the upcoming submission to Crossref.</p>
+<p>Verify that the first author is indeed enclosed in a <code>&lt;person_name sequence='first' contributor_role='author'&gt;</code> tag, and that subsequent authors (enclosed in <code>&lt;person_name sequence='additional' contributor_role='author'&gt;</code> tags) appear in the order of the Publication's author list.</p>
+<p>Once the metadata is set, clicking on <code>Accept the metadata</code> saves the metadata to the database and returns one to the Publication's page.</p>
+</blockquote>
+<h3 id="metadata-testing-and-deposit">Metadata testing and deposit</h3>
+<blockquote>
+<p>At this stage, the metadata is ready for uploading to Crossref. This occurs via a POST query to either the test or live Crossref server.</p>
+<p>Clicking on <code>Test metadata deposit</code> immediately posts the metadata to the test server, and takes you to a page where the server's response headers are displayed. The server also sends a more detailed response via email (to <code>admin@scipost.org</code>; if you do not have access to this mailbox, ask SciPost Administration) with the success status.</p>
+<p>Similarly, the actual deposit is immediately performed upon clicking on the <code>Deposit the metadata to Crossref</code>. The response headers are displayed, and a detailed email response is sent by Crossref to <code>admin@scipost.org</code>.</p>
+<p><strong>This completes the publication process.</strong></p>
+</blockquote>
+
+{% endblock content %}
diff --git a/guides/templates/guides/editorial/production/proofs.html b/guides/templates/guides/editorial/production/proofs.html
new file mode 100644
index 0000000000000000000000000000000000000000..97ab99705e4067564cf1ecf64b68a0c4efd911c3
--- /dev/null
+++ b/guides/templates/guides/editorial/production/proofs.html
@@ -0,0 +1,44 @@
+{% extends 'guides/_guides_base.html' %}
+
+{% load bootstrap %}
+
+{% block pagetitle %}: guides: proofs{% endblock pagetitle %}
+
+{% block breadcrumb_items %}
+{{block.super}}
+<a href="{% url 'guides:guides_index' %}" class="breadcrumb-item">Guides</a>
+<span class="breadcrumb-item">Editorial</span>
+<span class="breadcrumb-item">Production</span>
+<span class="breadcrumb-item active">Proofs</span>
+{% endblock %}
+
+{% block content %}
+
+<h1>Proofs</h1>
+<p>This guide is meant for <strong>Production supervisors</strong>. It describes the proofs cycle between production team and manuscript authors.</p>
+
+<h3>Proofs version production</h3>
+<ul>
+  <li>
+    Once the paper has been properly formatted, the <code>.tex</code> and <code>.pdf</code> files
+    should be copied into new files carrying the <code>_proofs_v[nr]</code> suffix,
+    for example <code>SciPost_Phys_1699_9999v9_Bee_proofs_v1.tex</code>.
+  </li>
+  <li>
+    The <code>.pdf</code> proofs should be emailed to the authors for verification.
+    Authors should return either an annotated pdf or a list of corrections
+    by plain text email.
+  </li>
+  <li>
+    Any modifications should be implemented directly in the main <code>.tex</code> file.
+  </li>
+  <li>
+    If any further check by the authors are required, start this proofs
+    todo-list again, increasing the proofs version number.
+  </li>
+  <li>
+    Once the authors have approved the proofs, the paper can be put forward
+    to online publication.
+  </li>
+
+  {% endblock content %}
diff --git a/guides/templates/guides/editorial/submissions/submission_prescreening.html b/guides/templates/guides/editorial/submissions/submission_prescreening.html
new file mode 100644
index 0000000000000000000000000000000000000000..9c610c08eb62d35ee01197cb0620db7b73f7045f
--- /dev/null
+++ b/guides/templates/guides/editorial/submissions/submission_prescreening.html
@@ -0,0 +1,42 @@
+{% extends 'guides/_guides_base.html' %}
+
+{% load bootstrap %}
+
+{% block pagetitle %}: guides: submission prescreening{% endblock pagetitle %}
+
+{% block breadcrumb_items %}
+{{block.super}}
+<a href="{% url 'guides:guides_index' %}" class="breadcrumb-item">Guides</a>
+<span class="breadcrumb-item">Editorial</span>
+<span class="breadcrumb-item">Submissions</span>
+<span class="breadcrumb-item active">Prescreening</span>
+{% endblock %}
+
+{% block content %}
+
+<h1>Submission prescreening</h1>
+<p>
+  This document describes the workflow starting at the moment of submission, and leading up to the start of the refereeing process by a Fellow of the Editorial College. Editorial Administrators should use these instructions to correctly shepherd submissions through the prescreening phase.
+</p>
+
+<h3>Reception phase</h3>
+
+<h4>Plagiarism check</h4>
+<p>
+  Upon reception of a submission, the first action is to perform the plagiarism check. This is performed using Crossref Similarity Check (hereunder CSC), which makes use of the iThenticate application. EdAdmin should run this plagiarism page using the tools on the Submission's page.
+</p>
+<p>
+  After a few minutes, the plagiarism check document becomes available (under Report). This should be examined thoroughly. A percentage above about 15% is cause for concern.
+</p>
+
+<h3>Assignments</h3>
+
+<h3>Compliance with Crossref DOI requirements</h3>
+<p>
+  If the Submission's references are not properly formatted,
+  and/or if these do not include the required DOIs,
+  the authors should be asked to do so in their eventual
+  resubmission.
+</p>
+
+{% endblock content %}
diff --git a/guides/templates/guides/guides_index.html b/guides/templates/guides/guides_index.html
new file mode 100644
index 0000000000000000000000000000000000000000..c5e7b42ca91a060b48c1c7bf0dfeae92ff53e47a
--- /dev/null
+++ b/guides/templates/guides/guides_index.html
@@ -0,0 +1,37 @@
+{% extends 'guides/_guides_base.html' %}
+
+{% block pagetitle %}: guides{% endblock pagetitle %}
+
+{% block breadcrumb_items %}
+{{block.super}}
+<span class="breadcrumb-item">Guides</span>
+{% endblock %}
+
+{% block content %}
+<div class="row">
+  <div class="col-12">
+    <h1 class="highlight">Guides</h1>
+    <ul>
+      <li>
+	Editorial
+	<ul>
+	  <li>
+	    Submissions
+	    <ul>
+	      <li><a href="{% url 'guides:submission_prescreening' %}">Submission prescreening</a></li>
+	    </ul>
+	  </li>
+	  <li>
+	    Production
+	    <ul>
+	      <li><a href="{% url 'guides:initial_production' %}">Initial production</a></li>
+	      <li><a href="{% url 'guides:proofs' %}">Proofs</a></li>
+	      <li><a href="{% url 'guides:online_publication' %}">Online publication</a></li>
+	    </ul>
+	  </li>
+	</ul>
+      </li>
+    </ul>
+  </div>
+</div>
+{% endblock content %}
diff --git a/guides/tests.py b/guides/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6
--- /dev/null
+++ b/guides/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/guides/urls.py b/guides/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a6513d0fa0849bb01525ac1bc7a853612ed9683
--- /dev/null
+++ b/guides/urls.py
@@ -0,0 +1,31 @@
+__copyright__ = "Copyright 2016-2018, Stichting SciPost (SciPost Foundation)"
+__license__ = "AGPL v3"
+
+
+from django.conf.urls import url
+from django.contrib.auth.decorators import permission_required
+from django.views.generic import TemplateView
+
+urlpatterns = [
+    url(r'^$',
+        permission_required('scipost.can_view_docs_scipost')(
+            TemplateView.as_view(template_name='guides/guides_index.html')),
+        name='guides_index'),
+    url(r'^editorial/submissions/submission_processing$',
+        permission_required('scipost.can_view_docs_scipost')(
+        TemplateView.as_view(
+            template_name='guides/editorial/submissions/submission_prescreening.html')),
+        name='submission_prescreening'),
+    url(r'^editorial/production/initial_production$',
+        permission_required('scipost.can_view_docs_scipost')(
+        TemplateView.as_view(template_name='guides/editorial/production/initial_production.html')),
+        name='initial_production'),
+    url(r'^editorial/production/proofs$',
+        permission_required('scipost.can_view_docs_scipost')(
+        TemplateView.as_view(template_name='guides/editorial/production/proofs.html')),
+        name='proofs'),
+    url(r'^editorial/production/online_publication$',
+        permission_required('scipost.can_view_docs_scipost')(
+        TemplateView.as_view(template_name='guides/editorial/production/online_publication.html')),
+        name='online_publication'),
+]
diff --git a/guides/views.py b/guides/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..91ea44a218fbd2f408430959283f0419c921093e
--- /dev/null
+++ b/guides/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/journals/templates/journals/manage_metadata.html b/journals/templates/journals/manage_metadata.html
index 0d240c96c2169ffb44cecf3df8ee4ade5f474373..188e0ecb4abcc0a888dbff6e784f6bdf2dbf2c41 100644
--- a/journals/templates/journals/manage_metadata.html
+++ b/journals/templates/journals/manage_metadata.html
@@ -129,7 +129,7 @@ event: "focusin"
 	    <h3>Associate a grant to this publication:</h3>
 	    <form action="{% url 'journals:add_associated_grant' publication.doi_label %}" method="post">
 	      {% csrf_token %}
-	      {{associate_grant_form|bootstrap}}
+	      {{ associate_grant_form|bootstrap }}
 	      <input class="btn btn-outline-secondary" type="submit" value="Add">
 	    </form>
 	    <br/>
@@ -144,7 +144,7 @@ event: "focusin"
 	    <h3>Associate a generic funder to this publication:</h3>
 	    <form action="{% url 'journals:add_generic_funder' publication.doi_label %}" method="post">
 	      {% csrf_token %}
-	      {{associate_generic_funder_form|bootstrap}}
+	      {{ associate_generic_funder_form|bootstrap }}
 	      <input class="btn btn-outline-secondary" type="submit" value="Add">
 	    </form>
 	    <br/>
@@ -228,3 +228,10 @@ event: "focusin"
 
 
 {% endblock content %}
+
+
+{% block footer_script %}
+    {{ block.super }}
+    {{ associate_grant_form.media }}
+    {{ associate_generic_funder_form.media }}
+{% endblock footer_script %}
diff --git a/journals/templatetags/lookup.py b/journals/templatetags/lookup.py
index 021a2bfc7588d942ab43492af53be26855c94180..d3f36fb2ceebf7df8ec3a6d3d9414c4e8b387d1d 100644
--- a/journals/templatetags/lookup.py
+++ b/journals/templatetags/lookup.py
@@ -9,6 +9,7 @@ from ajax_select import register, LookupChannel
 
 from ..models import Publication
 
+from funders.models import Funder, Grant
 from partners.models import Organization
 
 
@@ -38,7 +39,7 @@ class PublicationLookup(LookupChannel):
         Right now only used for draft registration invitations. May be extended in the
         future for other purposes as well.
         """
-        if not request.user.has_perm('can_create_registration_invitations'):
+        if not request.user.has_perm('scipost.can_create_registration_invitations'):
             raise PermissionDenied
 
 
@@ -64,3 +65,54 @@ class OrganizationLookup(LookupChannel):
         """Check if has organization administrative permissions."""
         if not request.user.has_perm('scipost.can_manage_organizations'):
             raise PermissionDenied
+
+
+@register('funder_lookup')
+class FunderLookup(LookupChannel):
+    model = Funder
+
+    def get_query(self, q, request):
+        return self.model.objects.filter(
+            Q(name__icontains=q) | Q(acronym__icontains=q) |
+            Q(identifier__icontains=q) | Q(organization__name__icontains=q) |
+            Q(organization__name_original__icontains=q) |
+            Q(organization__acronym__icontains=q)).order_by('name')[:10]
+
+    def format_item_display(self, item):
+        """(HTML) format item for displaying item in the selected deck area."""
+        return u"<span class='auto_lookup_display'>%s</span>" % str(item)
+
+    def format_match(self, item):
+        """(HTML) Format item for displaying in the dropdown."""
+        return str(item)
+
+    def check_auth(self, request):
+        """Check for required permissions."""
+        if not request.user.has_perm('scipost.can_draft_publication'):
+            raise PermissionDenied
+
+
+@register('grant_lookup')
+class GrantLookup(LookupChannel):
+    model = Grant
+
+    def get_query(self, q, request):
+        return (self.model.objects.filter(
+            Q(funder__name__icontains=q) | Q(funder__acronym__icontains=q) |
+            Q(number__icontains=q) | Q(recipient_name__icontains=q) |
+            Q(recipient__user__last_name__icontains=q) |
+            Q(recipient__user__first_name__icontains=q) |
+            Q(further_details__icontains=q)).order_by('funder__name', 'number')[:10])
+
+    def format_item_display(self, item):
+        """(HTML) format item for displaying item in the selected deck area."""
+        return u"<span class='auto_lookup_display'>%s</span>" % str(item)
+
+    def format_match(self, item):
+        """(HTML) Format item for displaying in the dropdown."""
+        return str(item)
+
+    def check_auth(self, request):
+        """Check for required permissions."""
+        if not request.user.has_perm('scipost.can_draft_publication'):
+            raise PermissionDenied
diff --git a/journals/views.py b/journals/views.py
index 16be9a8710caee85a6d4324a1fdf5be4e5bf9f09..2f62659cb622cf9904182574b46f8f33279014f7 100644
--- a/journals/views.py
+++ b/journals/views.py
@@ -337,7 +337,7 @@ def add_author(request, doi_label, contributor_id=None, unregistered_author_id=N
         messages.success(request, 'Added {} as an unregistered author.'.format(
             unregistered_author
         ))
-        return redirect(reverse('journals:manage_metadata',
+        return redirect(reverse('journals:add_author',
                                 kwargs={'doi_label': publication.doi_label}))
     elif form.is_valid():
         contributors_found = Contributor.objects.filter(
diff --git a/mails/forms.py b/mails/forms.py
index 81bd732bc4bcc62f8ff80d47ba1915adffcafd64..bd262c46b73bb78a93109d889038d3efd07062b4 100644
--- a/mails/forms.py
+++ b/mails/forms.py
@@ -27,6 +27,12 @@ class EmailTemplateForm(forms.Form, MailUtilsMixin):
                 '%s-text' % self.prefix: data.get('%s-text' % self.prefix),
                 '%s-extra_recipient' % self.prefix: data.get('%s-extra_recipient' % self.prefix),
             }
+        elif kwargs.get('data', False):
+            data = {
+                '%s-subject' % self.prefix: kwargs['data'].get('%s-subject' % self.prefix),
+                '%s-text' % self.prefix: kwargs['data'].get('%s-text' % self.prefix),
+                '%s-extra_recipient' % self.prefix: kwargs['data'].get('%s-extra_recipient' % self.prefix),
+            }
         else:
             data = None
         super().__init__(data or None)
@@ -62,6 +68,12 @@ class EmailTemplateForm(forms.Form, MailUtilsMixin):
         self.save_data()
         return data
 
+    def save(self):
+        """Because Django uses .save() by default..."""
+        self.send()
+        return self.instance
+
+
 
 class HiddenDataForm(forms.Form):
     def __init__(self, form, *args, **kwargs):
diff --git a/mails/mixins.py b/mails/mixins.py
index d712b58004a4951052bad0bffcbf7e5351ff5cef..1dbb645792a5083b3a085362e3fdc456fde8d2e3 100644
--- a/mails/mixins.py
+++ b/mails/mixins.py
@@ -24,6 +24,7 @@ class MailUtilsMixin:
     html_message = ''
     message = ''
     original_recipient = ''
+    mail_sent = False
 
     def __init__(self, *args, **kwargs):
         """Init an instance for a specific mail_code.
@@ -189,6 +190,10 @@ class MailUtilsMixin:
 
     def send(self):
         """Send the mail assuming `mail_data` is validated and complete."""
+        if self.mail_sent:
+            # Prevent double sending when using a Django form.
+            return
+
         email = EmailMultiAlternatives(
             self.mail_data['subject'],
             self.mail_data['message'],
@@ -202,5 +207,7 @@ class MailUtilsMixin:
             email.attach_alternative(self.mail_data['html_message'], 'text/html')
 
         email.send(fail_silently=False)
+        self.mail_sent = True
+
         if self.instance and hasattr(self.instance, 'mail_sent'):
             self.instance.mail_sent()
diff --git a/scipost/managers.py b/scipost/managers.py
index c97758480b8ad7788aeec08fb39efd19e2879986..bc77343becde4319c4f802da3d0bbe25bd5c06c2 100644
--- a/scipost/managers.py
+++ b/scipost/managers.py
@@ -8,11 +8,10 @@ from django.utils import timezone
 
 from .constants import NORMAL_CONTRIBUTOR, NEWLY_REGISTERED, AUTHORSHIP_CLAIM_PENDING
 
-today = timezone.now().date()
-
 
 class FellowManager(models.Manager):
     def active(self):
+        today = timezone.now().date()
         return self.filter(
             Q(start_date__lte=today, until_date__isnull=True) |
             Q(start_date__isnull=True, until_date__gte=today) |
@@ -30,6 +29,7 @@ class ContributorQuerySet(models.QuerySet):
 
     def available(self):
         """Filter out the Contributors that have active unavailability periods."""
+        today = timezone.now().date()
         return self.exclude(
             unavailability_periods__start__lte=today,
             unavailability_periods__end__gte=today)
@@ -49,9 +49,11 @@ class ContributorQuerySet(models.QuerySet):
 
 class UnavailabilityPeriodManager(models.Manager):
     def today(self):
+        today = timezone.now().date()
         return self.filter(start__lte=today, end__gte=today)
 
     def future(self):
+        today = timezone.now().date()
         return self.filter(end__gte=today)
 
 
diff --git a/scipost/tasks.py b/scipost/tasks.py
new file mode 100644
index 0000000000000000000000000000000000000000..5222fb243528d593d2cf7a1878b7f92c910fb3f4
--- /dev/null
+++ b/scipost/tasks.py
@@ -0,0 +1,20 @@
+__copyright__ = "Copyright 2016-2018, Stichting SciPost (SciPost Foundation)"
+__license__ = "AGPL v3"
+
+
+from django.core.mail import send_mail
+
+
+from SciPost_v1.celery import app
+
+
+@app.task(bind=True)
+def test_celery_using_mail(self):
+    """Just testing the production server here."""
+    send_mail(
+        'Test subject',
+        'Received this mail?',
+        'noreply@scipost.org',
+        ['jorrandewit@scipost.org'],
+        fail_silently=False,
+    )
diff --git a/scipost/templates/partials/scipost/personal_page/editorial_actions.html b/scipost/templates/partials/scipost/personal_page/editorial_actions.html
index e6d9cdfaff879c0a4fd190c1ebf4507b3349762b..a49ef6bdc482b8b40fadee682929cf587db8a17f 100644
--- a/scipost/templates/partials/scipost/personal_page/editorial_actions.html
+++ b/scipost/templates/partials/scipost/personal_page/editorial_actions.html
@@ -94,13 +94,20 @@
               <li><a href="{% url 'submissions:treated_submissions_list' %}">Fully treated Submissions</a>{% if nr_treated_submissions_without_pdf %} ({{nr_treated_submissions_without_pdf}} unfinished){% endif %}</li>
               <li><a href="{% url 'journals:harvest_citedby_list' %}">Harvest citedby data</a></li>
               <li><a href="{% url 'journals:manage_comment_metadata' %}">Manage Comment metadata</a></li>
-              <li><a href="{% url 'colleges:fellowships' %}">Manage Fellowships</a></li>
               <li><a href="{% url 'journals:manage_metadata' %}">Manage Publication metadata</a></li>
               <li><a href="{% url 'journals:manage_report_metadata' %}">Manage Report metadata</a></li>
               <li><a href="{% url 'proceedings:proceedings' %}">Manage Proceedings Issues</a></li>
             </ul>
         {% endif %}
 
+	    {% if perms.scipost.can_manage_college_composition %}
+	    <h3>Colleges and Fellowships</h3>
+	    <ul>
+	      <li><a href="{% url 'colleges:prospective_Fellows' %}">Manage Prospective Fellows</a></li>
+              <li><a href="{% url 'colleges:fellowships' %}">Manage Fellowships</a></li>
+	    </ul>
+	    {% endif %}
+
         {% if perms.scipost.can_attend_VGMs %}
             <h3>Virtual General Meetings</h3>
             <ul>
diff --git a/submissions/forms.py b/submissions/forms.py
index 6bbf8b98b5740921c7907a91ac65fcfc730c7978..d40c62256cab0a3909369109e5f5cc4cc5e57bb3 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -844,7 +844,7 @@ class VotingEligibilityForm(forms.ModelForm):
 
     eligible_fellows = forms.ModelMultipleChoiceField(
         queryset=Contributor.objects.none(),
-        widget=forms.CheckboxSelectMultiple({'checked': 'checked'}),
+        widget=forms.CheckboxSelectMultiple(),
         required=True, label='Eligible for voting')
 
     class Meta:
@@ -1188,11 +1188,11 @@ class RecommendationVoteForm(forms.Form):
 
     vote = forms.ChoiceField(
         widget=forms.RadioSelect, choices=[
-            ('agree', 'Agree'), ('disagree', 'Disagree'), ('abstain', 'Abstain')], label='')
+            ('agree', 'Agree'), ('disagree', 'Disagree'), ('abstain', 'Abstain')])
     remark = forms.CharField(widget=forms.Textarea(attrs={
         'rows': 3,
         'cols': 30,
-        'placeholder': 'Your remarks (optional)'
+        'placeholder': 'Your remark (optional)'
     }), label='', required=False)
 
 
diff --git a/submissions/managers.py b/submissions/managers.py
index dda9bfda3179c146331abef5c20798401ea8ab98..b2a861c06a2f782509c7eaddfede3acc824c7b0c 100644
--- a/submissions/managers.py
+++ b/submissions/managers.py
@@ -297,7 +297,22 @@ class EICRecommendationQuerySet(models.QuerySet):
                 models.Q(voted_abstain=user.contributor)).exclude(submission__status__in=[
                     constants.STATUS_REJECTED,
                     constants.STATUS_PUBLISHED,
-                    constants.STATUS_WITHDRAWN])
+                    constants.STATUS_WITHDRAWN]).distinct()
+
+    def user_current_voted(self, user):
+        """
+        Return the subset of EICRecommendations currently undergoing voting, for
+        which the User has already voted.
+        """
+        if not hasattr(user, 'contributor'):
+            return self.none()
+        return self.put_to_voting().filter(eligible_to_vote=user.contributor).exclude(
+            recommendation__in=[-1, -2]).filter(
+                models.Q(voted_for=user.contributor) | models.Q(voted_against=user.contributor) |
+                models.Q(voted_abstain=user.contributor)).exclude(submission__status__in=[
+                    constants.STATUS_REJECTED,
+                    constants.STATUS_PUBLISHED,
+                    constants.STATUS_WITHDRAWN]).distinct()
 
     def put_to_voting(self):
         """Return the subset of EICRecommendation currently undergoing voting."""
diff --git a/submissions/templates/submissions/pool/pool.html b/submissions/templates/submissions/pool/pool.html
index 10483776bcd4be99a87f671b357519da88b9f153..17da722c6b5b5657e495c54d070ff39c364fc1a6 100644
--- a/submissions/templates/submissions/pool/pool.html
+++ b/submissions/templates/submissions/pool/pool.html
@@ -77,7 +77,7 @@
                 {% endif %}
             {% endif %}
 
-            {% if assignments_to_consider or recs_to_vote_on %}
+            {% if assignments_to_consider or recs_to_vote_on or recs_current_voted %}
                 {% if assignments_to_consider %}
                     <h3>Your open Assignment Requests <i class="fa fa-exclamation-circle text-warning"></i></h3>
                     <ul>
@@ -99,7 +99,19 @@
                         {% endfor %}
                     </ul>
                 {% endif %}
-                <hr>
+
+                {% if recs_current_voted %}
+                    <h3>Current recommendations you have voted on:</h3>
+                    <ul>
+                        {% for recommendation in recs_current_voted %}
+                            <li>On Editorial Recommendation of: {{ recommendation.submission }}<br>
+                                <a href="{% url 'submissions:vote_on_rec' rec_id=recommendation.id %}">See the Editorial Recommendation, view votes and/or revise your vote</a>
+                            </li>
+                        {% endfor %}
+                    </ul>
+                {% endif %}
+
+                    <hr>
             {% endif %}
 
             {% if search_form %}
diff --git a/submissions/templates/submissions/pool/recommendation.html b/submissions/templates/submissions/pool/recommendation.html
index 806aeee57f864ae1fbf533144926c18d44ee66ea..ec75112d70a9cbd1efe91b069301f6581addb5ef 100644
--- a/submissions/templates/submissions/pool/recommendation.html
+++ b/submissions/templates/submissions/pool/recommendation.html
@@ -22,12 +22,53 @@
     <br>
 
     {% if recommendation.get_other_versions %}
-        <h3>Other versions of Editorial Recommendations for this Submission</h3>
-        {% for old_rec in recommendation.get_other_versions %}
-            {% include 'partials/submissions/recommendation_fellow_content.html' with recommendation=old_rec %}
-        {% endfor %}
-        <br>
-        <br>
+    <div class="card text-white bg-dark">
+      <div class="card-header">
+	<a class="btn btn-secondary text-white bg-dark" data-toggle="collapse" href="#previousEdRecs" role="button" aria-expanded="false" aria-controls="previousEdRecs">Deprecated versions of Editorial Recommendations for this Submission (click to expand/collapse)</a>
+      </div>
+      <div class="collapse" id="previousEdRecs">
+	<div class="card-body">
+	  {% for old_rec in recommendation.get_other_versions %}
+          {% include 'partials/submissions/recommendation_fellow_content.html' with recommendation=old_rec %}
+          <h3 class="card-title">Fellows eligible to vote:</h3>
+          <ul>
+            {% for eligible in old_rec.eligible_to_vote.all|sort_by:'user__last_name' %}
+            <li>{{ eligible.user.first_name }} {{ eligible.user.last_name }}</li>
+            {% endfor %}
+          </ul>
+          <h3 class="card-title">Voting results:</h3>
+          <ul>
+            <li>
+              Agreed ({{ old_rec.voted_for.all.count }}):
+              {% for agreed in old_rec.voted_for.all|sort_by:'user__last_name' %}
+              {{ agreed.user.last_name }}{% if not forloop.last %},{% endif %}
+              {% endfor %}
+            </li>
+            <li>
+              Disagreed ({{ old_rec.voted_against.all.count }}):
+              {% for disagreed in old_rec.voted_against.all|sort_by:'user__last_name' %}
+              {{ disagreed.user.last_name }}{% if not forloop.last %},{% endif %}
+              {% endfor %}
+            </li>
+            <li>
+              Abstained ({{ old_rec.voted_abstain.all.count }}):
+              {% for abstained in old_rec.voted_abstain.all|sort_by:'user__last_name' %}
+              {{ abstained.user.last_name }}{% if not forloop.last %},{% endif %}
+              {% endfor %}
+            </li>
+          </ul>
+          <h3 class="card-title">Remarks:</h3>
+          <ul>
+            {% for rem in old_rec.remarks.all %}
+            <li>{% include 'partials/submissions/remark_small.html' with remark=rem %}</li>
+            {% empty %}
+            <li><em>No remarks</em></li>
+            {% endfor %}
+          </ul>
+	  {% endfor %}
+	</div>
+      </div>
+    </div>
     {% endif %}
 
     <h2 class="highlight">Editorial Recommendation to vote on</h2>
@@ -97,6 +138,9 @@
 
     {% if voting_form %}
         <h3 class="mt-4">Your position on this recommendation</h3>
+	{% if previous_vote %}
+	<p>You had previously voted <span class="text-danger">{{ previous_vote }}</span>; you can use the form below to change your vote and/or add a remark:</p>
+	{% endif %}
         <form action="{% url 'submissions:vote_on_rec' rec_id=recommendation.id %}" method="post">
             {% csrf_token %}
             {{ voting_form|bootstrap:'0,12' }}
diff --git a/submissions/utils.py b/submissions/utils.py
index 5a9dd0c55143ef960bf42dab8090cb757fc2b055..b4e11ff7e57e53afd5b941af75e7d291ad603c38 100644
--- a/submissions/utils.py
+++ b/submissions/utils.py
@@ -1239,9 +1239,9 @@ class SubmissionUtils(BaseMailUtil):
         html_version = html_template.render(Context(email_context))
         emailmessage = EmailMultiAlternatives(
             'SciPost: voting duties', email_text,
-            'SciPost Editorial Admin <admin@scipost.org>',
-            to=['admin@scipost.org'],
+            'SciPost Editorial Admin <edadmin@scipost.org>',
+            to=['edadmin@scipost.org'],
             bcc=cls.Fellow_emails,
-            reply_to=['admin@scipost.org'])
+            reply_to=['edadmin@scipost.org'])
         emailmessage.attach_alternative(html_version, 'text/html')
         emailmessage.send(fail_silently=False)
diff --git a/submissions/views.py b/submissions/views.py
index bda7fe5faf48e9bff18e41c375006324b67db06d..8219ad96f49cfbb778d3e71e0776cda527a5b4e7 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -439,7 +439,9 @@ def pool(request, identifier_w_vn_nr=None):
 
     recs_to_vote_on = EICRecommendation.objects.user_must_vote_on(request.user).filter(
         submission__in=submissions)
-    assignments_to_consider = EditorialAssignment.objects.invited().filter(
+    recs_current_voted = EICRecommendation.objects.user_current_voted(request.user).filter(
+        submission__in=submissions)
+    assignments_to_consider = EditorialAssignment.objects.open().filter(
         to=request.user.contributor)
 
     # Forms
@@ -454,6 +456,7 @@ def pool(request, identifier_w_vn_nr=None):
         'assignments_to_consider': assignments_to_consider,
         'consider_assignment_form': consider_assignment_form,
         'recs_to_vote_on': recs_to_vote_on,
+        'recs_current_voted': recs_current_voted,
         'rec_vote_form': rec_vote_form,
         'remark_form': remark_form,
     }
@@ -865,6 +868,10 @@ def recruit_referee(request, identifier_w_vn_nr):
     submission = get_object_or_404(Submission.objects.filter_for_eic(request.user),
                                    preprint__identifier_w_vn_nr=identifier_w_vn_nr)
 
+    if request.method == 'GET':
+        # This leads to unexpected 500 errors
+        return redirect(reverse('submissions:select_referee', args=(arxiv_identifier_w_vn_nr,)))
+
     ref_recruit_form = RefereeRecruitmentForm(
         request.POST or None, request=request, submission=submission)
     if ref_recruit_form.is_valid():
@@ -1553,18 +1560,37 @@ def prepare_for_voting(request, rec_id):
 def vote_on_rec(request, rec_id):
     """Form view for Fellows to cast their vote on EICRecommendation."""
     submissions = Submission.objects.pool_editable(request.user)
-    recommendation = get_object_or_404(
-        EICRecommendation.objects.user_must_vote_on(
-            request.user).filter(submission__in=submissions), id=rec_id)
+    previous_vote = None
+    try:
+        recommendation = EICRecommendation.objects.user_must_vote_on(
+            request.user).get(submission__in=submissions, id=rec_id)
+        initial = {'vote': 'abstain'}
+    except EICRecommendation.DoesNotExist: #Try to find an EICRec already voted on:
+        try:
+            recommendation = EICRecommendation.objects.user_current_voted(
+                request.user).get(submission__in=submissions, id=rec_id)
+            if request.user.contributor in recommendation.voted_for.all():
+                previous_vote = 'agree'
+            elif request.user.contributor in recommendation.voted_against.all():
+                previous_vote = 'disagree'
+            elif request.user.contributor in recommendation.voted_abstain.all():
+                previous_vote = 'abstain'
+        except EICRecommendation.DoesNotExist:
+            raise Http404
+    initial = {'vote': previous_vote}
 
-    form = RecommendationVoteForm(request.POST or None)
+    if request.POST:
+        form = RecommendationVoteForm(request.POST)
+    else:
+        form = RecommendationVoteForm(initial=initial)
     if form.is_valid():
         if form.cleaned_data['vote'] == 'agree':
             try:
                 recommendation.voted_for.add(request.user.contributor)
             except IntegrityError:
                 messages.warning(request, 'You have already voted for this Recommendation.')
-                return redirect(reverse('submissions:pool'))
+                #return redirect(reverse('submissions:pool'))
+                pass
             recommendation.voted_against.remove(request.user.contributor)
             recommendation.voted_abstain.remove(request.user.contributor)
         elif form.cleaned_data['vote'] == 'disagree':
@@ -1572,8 +1598,9 @@ def vote_on_rec(request, rec_id):
             try:
                 recommendation.voted_against.add(request.user.contributor)
             except IntegrityError:
-                messages.warning(request, 'You have already voted for this Recommendation.')
-                return redirect(reverse('submissions:pool'))
+                messages.warning(request, 'You have already voted against this Recommendation.')
+                #return redirect(reverse('submissions:pool'))
+                pass
             recommendation.voted_abstain.remove(request.user.contributor)
         elif form.cleaned_data['vote'] == 'abstain':
             recommendation.voted_for.remove(request.user.contributor)
@@ -1581,13 +1608,23 @@ def vote_on_rec(request, rec_id):
             try:
                 recommendation.voted_abstain.add(request.user.contributor)
             except IntegrityError:
-                messages.warning(request, 'You have already voted for this Recommendation.')
-                return redirect(reverse('submissions:pool'))
-        if form.cleaned_data['remark']:
+                messages.warning(request, 'You have already abstained on this Recommendation.')
+                #return redirect(reverse('submissions:pool'))
+                pass
+        votechanged = (previous_vote and form.cleaned_data['vote'] != previous_vote)
+        if form.cleaned_data['remark'] or votechanged:
+            # If the vote is changed, we automatically put a remark
+            extra_remark = ''
+            if votechanged:
+                if form.cleaned_data['remark']:
+                    extra_remark += '\n'
+                extra_remark += 'Note from EdAdmin: %s %s changed vote from %s to %s' % (
+                    request.user.first_name, request.user.last_name,
+                    previous_vote, form.cleaned_data['vote'])
             remark = Remark(contributor=request.user.contributor,
                             recommendation=recommendation,
                             date=timezone.now(),
-                            remark=form.cleaned_data['remark'])
+                            remark=form.cleaned_data['remark'] + extra_remark)
             remark.save()
         recommendation.save()
         messages.success(request, 'Thank you for your vote.')
@@ -1595,18 +1632,17 @@ def vote_on_rec(request, rec_id):
 
     context = {
         'recommendation': recommendation,
-        'voting_form': form
+        'voting_form': form,
+        'previous_vote': previous_vote
     }
     return render(request, 'submissions/pool/recommendation.html', context)
 
 
 @permission_required('scipost.can_prepare_recommendations_for_voting', raise_exception=True)
 def remind_Fellows_to_vote(request):
-    """Send an email to all Fellow with pending voting duties.
-
-    It must be called by and Editorial Administrator.
-
-    Possible TODO: This reminder function doesn't filter per submission?!
+    """
+    Send an email to all Fellows with at least one pending voting duties.
+    It must be called by an Editorial Administrator.
     """
     submissions = Submission.objects.pool_editable(request.user)
     recommendations = EICRecommendation.objects.active().filter(