diff --git a/SciPost_v1/urls.py b/SciPost_v1/urls.py
index 9de4150622f5359fb55acdd2d0c9da1378d37d9c..84b9ba90df65ea85cae2587ffd6b35cf88a09b57 100644
--- a/SciPost_v1/urls.py
+++ b/SciPost_v1/urls.py
@@ -17,6 +17,8 @@ from django.conf import settings
 from django.conf.urls import include, url
 from django.contrib import admin
 
+JOURNAL_REGEX = '(?P<journal_key>SciPostPhys|SciPostPhysProc)'
+
 urlpatterns = [
     url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
     url(r'^admin/', include(admin.site.urls)),
@@ -26,7 +28,9 @@ urlpatterns = [
     url(r'^commentaries/', include('commentaries.urls', namespace="commentaries")),
     url(r'^commentary/', include('commentaries.urls', namespace="commentaries")),
     url(r'^comments/', include('comments.urls', namespace="comments")),
-    url(r'^journals/', include('journals.urls', namespace="journals")),
+    url(r'^journals/', include('journals.urls.general', namespace="journals")),
+    url(r'^10.21468/%s' % JOURNAL_REGEX, include('journals.urls.journal', namespace="journal")),
+    url(r'^%s' % JOURNAL_REGEX, include('journals.urls.journal', namespace="journal")),
     url(r'^submissions/', include('submissions.urls', namespace="submissions")),
     url(r'^submission/', include('submissions.urls', namespace="submissions")),
     url(r'^theses/', include('theses.urls', namespace="theses")),
diff --git a/journals/constants.py b/journals/constants.py
index 60fe1b1ab93fcd43f23d82d2ca76f90225fb1ce9..6dda5b081d64d8576abd0980e8a0a9343b835bf8 100644
--- a/journals/constants.py
+++ b/journals/constants.py
@@ -42,3 +42,8 @@ ISSUE_STATUSES = (
     (STATUS_DRAFT, 'Draft'),
     (STATUS_PUBLISHED, 'Published'),
 )
+
+JOURNALS_NAME_MAPPING = {
+    'SciPostPhys': 'SciPost Physics',
+    'SciPostPhysProc': 'SciPost Physics Proceedings',
+}
diff --git a/journals/models.py b/journals/models.py
index e5cd2ec7b7d5f1f95dfc717d5d046886c428da7b..f0e6a5000f313706ae7b9125955b199c746a0b00 100644
--- a/journals/models.py
+++ b/journals/models.py
@@ -23,8 +23,7 @@ class UnregisteredAuthor(models.Model):
 
 
 class Journal(models.Model):
-    name = models.CharField(max_length=100, choices=SCIPOST_JOURNALS,
-                            unique=True)
+    name = models.CharField(max_length=100, choices=SCIPOST_JOURNALS, unique=True)
     doi_string = models.CharField(max_length=200, blank=True, null=True)
     issn = models.CharField(max_length=16, default='2542-4653')
 
@@ -32,7 +31,7 @@ class Journal(models.Model):
         return self.name
 
     def get_absolute_url(self):
-        return reverse('journals:scipost_physics_issues')
+        return reverse('journal:landing_page', args=[self.get_abbreviation_doi()])
 
     def get_abbreviation_citation(self):
         return journal_name_abbrev_citation(self.name)
@@ -78,8 +77,9 @@ class Issue(models.Model):
         return text
 
     def get_absolute_url(self):
-        return reverse('scipost:SciPostPhys_issue_detail',
-                       args=[self.in_volume.number, self.number])
+        return reverse('journal:issue_detail', args=[
+                       self.in_volume.in_journal.get_abbreviation_doi(),
+                       self.in_volume.number, self.number])
 
     def short_str(self):
         return 'Vol. %s issue %s' % (self.in_volume.number, self.number)
diff --git a/journals/templates/journals/_base.html b/journals/templates/journals/_base.html
index 10a444af47cbe71fbcb15672305e4fd87c653ba4..619c570e52fd5c2664e24bec67c0dcbc293baf91 100644
--- a/journals/templates/journals/_base.html
+++ b/journals/templates/journals/_base.html
@@ -1,6 +1,6 @@
 {% extends 'scipost/base.html' %}
 
-{% block pagetitle %}: SciPost Physics{% endblock pagetitle %}
+{% block pagetitle %}: {{journal_name}}{% endblock pagetitle %}
 {% block body_class %}{{block.super}} journals{% endblock %}
 
 {% block breadcrumb %}
@@ -8,7 +8,6 @@
     <nav class="breadcrumb py-md-2 px-0">
         <div class="container">
             {% block breadcrumb_items %}
-                {# <a href="{% url 'scipost:index' %}" class="breadcrumb-item">Home</a>#}
                 <a href="{% url 'journals:journals' %}" class="breadcrumb-item">Journals</a>
             {% endblock %}
         </div>
@@ -18,14 +17,14 @@
 {% block secondary_navbar %}
     <nav class="navbar navbar-secondary">
         <div class="container my-2">
-            <h2 class="banner d-inline-block mr-2"><a href="{% url 'journals:scipost_physics' %}">SciPost Physics</a></h2>
+            <h2 class="banner d-inline-block mr-2"><a href="{% url 'journal:landing_page' 'SciPostPhys' %}">{{journal_name}}</a></h2>
             <ul class="links">
-                <li><a class="{% block link_class_physics_issues %}{% endblock %}" href="{% url 'journals:scipost_physics_issues' %}">Issues</a></li>
-                <li><a class="{% block link_class_physics_recent %}{% endblock %}" href="{% url 'journals:scipost_physics_recent' %}">Recent</a></li>
-                <li><a class="{% block link_class_physics_accepted %}{% endblock %}" href="{% url 'journals:scipost_physics_accepted' %}">Accepted</a></li>
+                <li><a class="{% block link_class_physics_issues %}{% endblock %}" href="{% url 'journal:issues' journal_key %}">Issues</a></li>
+                <li><a class="{% block link_class_physics_recent %}{% endblock %}" href="{% url 'journal:recent' journal_key %}">Recent</a></li>
+                <li><a class="{% block link_class_physics_accepted %}{% endblock %}" href="{% url 'journal:accepted' journal_key %}">Accepted</a></li>
                 <li><a href="{% url 'submissions:submissions' %}?to_journal=SciPostPhysics">Submissions</a></li>
-                <li><a class="{% block link_class_physics_info %}{% endblock %}" href="{% url 'journals:scipost_physics_info_for_authors' %}">Info for authors</a></li>
-                <li><a class="{% block link_class_physics_about %}{% endblock %}" href="{% url 'journals:scipost_physics_about' %}">About</a></li>
+                <li><a class="{% block link_class_physics_info %}{% endblock %}" href="{% url 'journal:info_for_authors' journal_key %}">Info for authors</a></li>
+                <li><a class="{% block link_class_physics_about %}{% endblock %}" href="{% url 'journal:about' journal_key %}">About</a></li>
             </ul>
         </div>
     </nav>
diff --git a/journals/templates/journals/_publication_single_short_summary.html b/journals/templates/journals/_publication_single_short_summary.html
index 0c500f171196dc6b224cd71c3ff05420ca70086f..cce9e6bb3e29bb9791b05f10e01810bd247b2800 100644
--- a/journals/templates/journals/_publication_single_short_summary.html
+++ b/journals/templates/journals/_publication_single_short_summary.html
@@ -1,3 +1,3 @@
-<h3 class="pb-0"><a href="{% url 'scipost:publication_detail' doi_string=publication.doi_string %}">{{ publication.title }}</a></h3>
+<h3 class="pb-0"><a href="{{publication.get_absolute_url}}">{{ publication.title }}</a></h3>
 <div>by {{ publication.author_list|truncatechars:30 }}</div>
 <div class="text-muted">published {{ publication.publication_date }}</div>
diff --git a/journals/templates/journals/add_author.html b/journals/templates/journals/add_author.html
index fabb202ea90b856b73e0cbc2154f00e138f615c6..977eaff19441cafbba2bc48b695399f819f4cdc2 100644
--- a/journals/templates/journals/add_author.html
+++ b/journals/templates/journals/add_author.html
@@ -94,7 +94,7 @@
       </div>
 
       <h3>
-          <a href="{% url 'scipost:publication_detail' doi_string=publication.doi_string %}">Return to the publication's page</a>
+          <a href="{{publication.get_absolute_url}}">Return to the publication's page</a>
       </h3>
     </div>
 </div>
diff --git a/journals/templates/journals/create_citation_list_metadata.html b/journals/templates/journals/create_citation_list_metadata.html
index 410c4ce6bec844824fb112d95c14ecddc35f7e35..0ee96600058a0c0710ad4291091f691ad601a96d 100644
--- a/journals/templates/journals/create_citation_list_metadata.html
+++ b/journals/templates/journals/create_citation_list_metadata.html
@@ -33,7 +33,7 @@
 
   <hr class="hr6"/>
 
-  <h3>Once you're happy with this metadata, you can <a href="{% url 'scipost:publication_detail' doi_string=publication.doi_string %}">return to the publication's page</a></h3>
+  <h3>Once you're happy with this metadata, you can <a href="{{publication.get_absolute_url}}">return to the publication's page</a></h3>
 
 </section>
 
diff --git a/journals/templates/journals/create_funding_info_metadata.html b/journals/templates/journals/create_funding_info_metadata.html
index 3b992c2b05ec063b8d4073f93ab023abee9b2714..51b9ca431b987745fc1b07070c03f578e4e6c12c 100644
--- a/journals/templates/journals/create_funding_info_metadata.html
+++ b/journals/templates/journals/create_funding_info_metadata.html
@@ -27,7 +27,7 @@
 
   <hr class="hr6"/>
 
-  <h3>Once you're happy with this metadata, you can <a href="{% url 'scipost:publication_detail' doi_string=publication.doi_string %}">return to the publication's page</a></h3>
+  <h3>Once you're happy with this metadata, you can <a href="{{publication.get_absolute_url}}">return to the publication's page</a></h3>
 
 </section>
 
diff --git a/journals/templates/journals/create_metadata_xml.html b/journals/templates/journals/create_metadata_xml.html
index 0373d2c5144ffb00077dcd07fdd7c5154e362eea..0e38965037acf6cef70e53c7956fc6dbdd75ec56 100644
--- a/journals/templates/journals/create_metadata_xml.html
+++ b/journals/templates/journals/create_metadata_xml.html
@@ -27,7 +27,7 @@
 
   <hr class="hr6"/>
 
-  <h3>Once you're happy with this metadata, you can <a href="{% url 'scipost:publication_detail' doi_string=publication.doi_string %}">return to the publication's page</a></h3>
+  <h3>Once you're happy with this metadata, you can <a href="{{publication.get_absolute_url}}">return to the publication's page</a></h3>
 
 </section>
 
diff --git a/journals/templates/journals/harvest_citedby_links.html b/journals/templates/journals/harvest_citedby_links.html
index 77bda9b301a75a3d435ef8845d9a3c85421ba301..f39d1d0b940b81eda93d59ad4a435220c1a5e2f4 100644
--- a/journals/templates/journals/harvest_citedby_links.html
+++ b/journals/templates/journals/harvest_citedby_links.html
@@ -52,7 +52,7 @@
   {% endfor %}
   {{ nr }}
 
-  <h3><a href="{% url 'scipost:publication_detail' doi_string=publication.doi_string %}">return to the publication's page</a></h3>
+  <h3><a href="{{publication.get_absolute_url}}">return to the publication's page</a></h3>
 
 </section>
 
diff --git a/journals/templates/journals/journals.html b/journals/templates/journals/journals.html
index a9cb62092e54e9152d071197e24834fb5eda5d68..2cf23f3a3f318beb64a5975b98a1e89a7fcf4f0e 100644
--- a/journals/templates/journals/journals.html
+++ b/journals/templates/journals/journals.html
@@ -18,7 +18,7 @@
 <div class="row">
     <div class="col-md-6">
         <h1 class="banner">
-            <a href="{% url 'journals:scipost_physics' %}">SciPost Physics</a>
+            <a href="{% url 'journal:landing_page' 'SciPostPhys' %}">SciPost Physics</a>
         </h1>
         <div class="py-2">
             <p>SciPost Physics publishes outstanding-quality research articles in all domains and subject areas of Physics.</p>
@@ -30,25 +30,29 @@
     </div>
 
     <div class="col-md-6">
-        <div class="row">
-            <div class="col-12">
-                <h1 class="banner">SciPost Physics Select</h1>
-                <div class="py-2">
-                    <p>SciPost Physics Select publishes articles of superlative quality in the field of Physics.</p>
-                    <p>Authors cannot submit directly to this Journal; SPS papers are editorially selected from the most outstanding Submissions to SciPost Physics.</p>
-                    <p style="color: red;"><em>Coming soon!</em></p>
-                </div>
-            </div>
+        <h1 class="banner">
+            <a href="{% url 'journal:about' 'SciPostPhysProc' %}">SciPost Physics Proceedings</a>
+        </h1>
+        <div class="py-2">
+            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ultrices tristique ligula. Praesent id odio mollis, egestas est blandit, tempus nisi. Nulla facilisi. Donec a consequat magna. In pulvinar libero laoreet finibus rhoncus. Vestibulum sodales risus in ornare ultricies. Donec vitae euismod sem, vitae finibus purus. Vestibulum vehicula, orci pellentesque congue sodales, leo nulla pellentesque elit, in interdum enim dui quis urna. Etiam at lectus sit amet risus sollicitudin faucibus.</p>
         </div>
+    </div>
+</div>
 
-        <div class="row">
-            <div class="col-12">
-                <h1 class="banner">SciPost Physics Lecture Notes</h1>
-                <div class="py-2">
-                  <p>Research-level didactic material in all domains and subject areas of Physics.</p>
-                  <p style="color: red;">Open for submission!</p>
-                </div>
-            </div>
+<div class="row">
+    <div class="col-md-6">
+        <h1 class="banner">SciPost Physics Select</h1>
+        <div class="py-2">
+            <p>SciPost Physics Select publishes articles of superlative quality in the field of Physics.</p>
+            <p>Authors cannot submit directly to this Journal; SPS papers are editorially selected from the most outstanding Submissions to SciPost Physics.</p>
+            <p style="color: red;"><em>Coming soon!</em></p>
+        </div>
+    </div>
+    <div class="col-md-6">
+        <h1 class="banner">SciPost Physics Lecture Notes</h1>
+        <div class="py-2">
+          <p>Research-level didactic material in all domains and subject areas of Physics.</p>
+          <p style="color: red;">Open for submission!</p>
         </div>
     </div>
 </div>
diff --git a/journals/templates/journals/metadata_xml_deposit.html b/journals/templates/journals/metadata_xml_deposit.html
index 1d9174c2a1610e4f8d717c685dc0502f0c00505f..bc16e8cc58a40b697bfbac89e9691e310288a04a 100644
--- a/journals/templates/journals/metadata_xml_deposit.html
+++ b/journals/templates/journals/metadata_xml_deposit.html
@@ -22,7 +22,7 @@
   <h3>Response text:</h3>
   <p>{{ response_text|linebreaks }}</p>
 
-  <h3><a href="{% url 'scipost:publication_detail' doi_string=publication.doi_string %}">return to the publication's page</a></h3>
+  <h3><a href="{{publication.get_absolute_url}}">return to the publication's page</a></h3>
 
 </section>
 
diff --git a/journals/templates/journals/scipost_physics_about.html b/journals/templates/journals/scipost_physics_about.html
deleted file mode 100644
index 062868fccb6aec708238139cfe528199eb0a66f6..0000000000000000000000000000000000000000
--- a/journals/templates/journals/scipost_physics_about.html
+++ /dev/null
@@ -1,72 +0,0 @@
-
-{% extends 'journals/_base.html' %}
-
-{% block pagetitle %}{{block.super}}: About{% endblock pagetitle %}
-
-{% block link_class_physics_about %}active{% endblock %}
-
-{% block breadcrumb_items %}
-    {{block.super}}
-    <a href="{% url 'journals:scipost_physics_issues' %}" class="breadcrumb-item">SciPost Physics</a>
-    <span class="breadcrumb-item active">About</span>
-{% endblock %}
-
-{% block content %}
-
-    {% with header_text='About SciPost Physics' %}
-        {{block.super}}
-    {% endwith %}
-
-    <div class="row">
-        <div class="col-md-6">
-            <h2>Aims</h2>
-            <p>SciPost Physics is a premium-quality, two-way open access, peer-witnessed refereed Journal for the general field of Physics.</p>
-            <p>It aims at providing scientists with a publishing platform in which uncompromising scientific quality meets the highest achievable standards of open accessibility, with a resolutely international outlook.</p>
-            <p><em>Two-way open access</em> means free for readers, free for authors: there are no subscription or download costs, and authors are freed from dealing with article submission and/or processing charges.</p>
-            <p>The <em>peer-witnessed refereeing</em> process guarantees high-quality, responsible refereeing, with demonstrably greater utility for authors and recognition for referees.</p>
-        </div>
-        <div class="col-md-6">
-            <h2>Scope</h2>
-            <p>SciPost Physics publishes outstanding-quality research articles in the domains of Experimental, Theoretical and Computational physics, among which:</p>
-            <ul>
-                <li>Atomic, Molecular and Optical Physics</li>
-                <li>Biophysics</li>
-                <li>Condensed Matter Physics</li>
-                <li>Fluid Dynamics</li>
-                <li>Gravitation</li>
-                <li>Cosmology and Astroparticle Physics</li>
-                <li>High-Energy Physics</li>
-                <li>Mathematical Physics</li>
-                <li>Nuclear Physics</li>
-                <li>Quantum Statistical Mechanics</li>
-                <li>Statistical and Soft Matter Physics</li>
-            </ul>
-        </div>
-    </div>
-
-    <div class="row">
-        <div class="col-md-6">
-          <h2>Content</h2>
-          <p>The journal accepts three types of content: <strong>Letters</strong>, <strong>Articles</strong> and <strong>Reviews</strong>.</p>
-          <ul>
-            <li><strong>Letters</strong> report broad-interest, significant breakthroughs in Physics, of interest and importance to researchers in multiple subject areas.</li>
-            <li><strong>Articles</strong> provide in-depth, detailed reports of groundbreaking research within one or more subject areas.</li>
-            <li><strong>Reviews</strong> are short pieces taking a snapshot of a research area, written by recognized leaders in the field, providing a critical assessment of current frontline research and providing pointers towards future opportunities.</li>
-          </ul>
-        </div>
-        <div class="col-md-6">
-          <h2>Submission and Editorial Process</h2>
-          <p>Authors should follow the <a href="{% url 'submissions:author_guidelines' %}">submission guidelines</a> to ensure seamless processing of their manuscript. The <a href="{% url 'journals:journals_terms_and_conditions' %}">SciPost Journals Terms and Conditions</a> apply to all Submissions to SciPost Physics.</p>
-          <p>All incoming Submissions are checked for plagiarism and follow the peer-witnessed refereeing procedures outlined in <a href="{% url 'submissions:sub_and_ref_procedure' %}">Submission and Refereeing procedure</a>.</p>
-          <p>All publication decisions are taken by the <a href="{% url 'scipost:about' %}#editorial_college_physics">Editorial College (Physics)</a>, following the rules set out in the <a href="{% url 'scipost:EdCol_by-laws' %}">Editorial College by-laws</a>.</p>
-        </div>
-    </div>
-
-    <div class="row">
-        <div class="col-12">
-          <h2>Publication: Open Access</h2>
-          <p>Publications in SciPost Physics are published under the terms of the <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International (CC BY 4.0) License</a>, allowing freedom to use, reproduce and distribute the articles and related content (unless otherwise noted), for commercial and noncommercial purposes, subject to the citation of the original source.</p>
-        </div>
-    </div>
-
-{% endblock %}
diff --git a/journals/templates/journals/scipost_physics_info_for_authors.html b/journals/templates/journals/scipost_physics_info_for_authors.html
deleted file mode 100644
index db2fc3765e3c1b5f1136e329926aa6dfd3ea4ac6..0000000000000000000000000000000000000000
--- a/journals/templates/journals/scipost_physics_info_for_authors.html
+++ /dev/null
@@ -1,42 +0,0 @@
-
-{% extends 'journals/_base.html' %}
-
-{% block pagetitle %}{{block.super}}: Info for Authors{% endblock pagetitle %}
-
-{% block link_class_physics_info %}active{% endblock %}
-
-{% block breadcrumb_items %}
-    {{block.super}}
-    <a href="{% url 'journals:scipost_physics_issues' %}" class="breadcrumb-item">SciPost Physics</a>
-    <span class="breadcrumb-item active">Info for Authors</span>
-{% endblock %}
-
-{% block content %}
-
-    {% with header_text='Information for Authors' %}
-        {{block.super}}
-    {% endwith %}
-
-    <div class="row">
-        <div class="col-12">
-            <h3>Manuscript preparation</h3>
-            <ul>
-              <li>Please follow the <a href="{% url 'submissions:author_guidelines' %}">Author guidelines</a> to ensure seamless processing of your manuscript.</li>
-            </ul>
-
-            <h3>Submission and Refereeing</h3>
-            <ul>
-              <li>Make sure you have read and agree with the <a href="{% url 'journals:journals_terms_and_conditions' %}">SciPost Journals Terms and Conditions.</a></li>
-              <li>All Submissions to SciPost Physics follow the peer-witnessed refereeing procedures outlined in
-                <a href="{% url 'submissions:sub_and_ref_procedure' %}">Submission and Refereeing procedure</a>.
-              </li>
-            </ul>
-
-            <h3>Decision</h3>
-            <ul>
-              <li>All publication decisions are taken by the <a href="{% url 'scipost:about' %}#editorial_college_physics">Editorial College (Physics)</a>, following the rules set out in the <a href="{% url 'scipost:EdCol_by-laws' %}">Editorial College by-laws</a>.</li>
-            </ul>
-        </div>
-    </div>
-
-{% endblock %}
diff --git a/journals/templates/journals/scipost_physics_issues.html b/journals/templates/journals/scipost_physics_issues.html
deleted file mode 100644
index bae0354b5db82460b894711ca2270e1ff7ea2438..0000000000000000000000000000000000000000
--- a/journals/templates/journals/scipost_physics_issues.html
+++ /dev/null
@@ -1,30 +0,0 @@
-{% extends 'journals/_base.html' %}
-
-{% block pagetitle %}{{block.super}}: issues{% endblock pagetitle %}
-
-{% block link_class_physics_issues %}active{% endblock %}
-
-{% block breadcrumb_items %}
-    {{block.super}}
-    <span class="breadcrumb-item active">{{issues.0.in_volume.in_journal}}</span>
-{% endblock %}
-
-{% block content %}
-
-    {% with header_text='Issues' %}
-        {{block.super}}
-    {% endwith %}
-
-    <div class="row">
-        <div class="col-12">
-            <ul>
-                {% for issue in issues %}
-                    <li>
-                        <a href="{{issue.get_absolute_url}}">{{ issue }}</a>
-                    </li>
-                {% endfor %}
-            </ul>
-        </div>
-    </div>
-
-{% endblock %}
diff --git a/journals/urls.py b/journals/urls.py
deleted file mode 100644
index 09cc8aca24e638e5f1ac31d542acc61aff47926f..0000000000000000000000000000000000000000
--- a/journals/urls.py
+++ /dev/null
@@ -1,84 +0,0 @@
-from django.conf.urls import include, url
-
-from django.views.generic import TemplateView
-
-#from . import views
-from journals import views as journals_views
-
-urlpatterns = [
-    # Journals
-    url(r'^$', journals_views.journals, name='journals'),
-    url(r'^journals_terms_and_conditions$',
-        TemplateView.as_view(template_name='journals/journals_terms_and_conditions.html'),
-        name='journals_terms_and_conditions'),
-
-    # SciPost Physics
-    url(r'^scipost_physics$',
-        journals_views.scipost_physics,
-        name='scipost_physics'),
-    url(r'^scipost_physics/issues$',
-        journals_views.scipost_physics_issues,
-        name='scipost_physics_issues'),
-    url(r'^scipost_physics/recent$',
-        journals_views.scipost_physics_recent,
-        name='scipost_physics_recent'),
-    url(r'^scipost_physics/accepted$',
-        journals_views.scipost_physics_accepted,
-        name='scipost_physics_accepted'),
-    url(r'^scipost_physics/info_for_authors$',
-        journals_views.scipost_physics_info_for_authors,
-        name='scipost_physics_info_for_authors'),
-    url(r'^scipost_physics/about$',
-        journals_views.scipost_physics_about,
-        name='scipost_physics_about'),
-
-    url(r'^scipost_physics/(?P<volume_nr>[0-9]+)/(?P<issue_nr>[0-9]+)$',
-        journals_views.scipost_physics_issue_detail,
-        name='scipost_physics_issue_detail'),
-
-    # Editorial and Administrative Workflow
-    url(r'^initiate_publication$',
-        journals_views.initiate_publication,
-        name='initiate_publication'),
-    url(r'^validate_publication$',
-        journals_views.validate_publication,
-        name='validate_publication'),
-    url(r'^mark_first_author/(?P<publication_id>[0-9]+)/(?P<contributor_id>[0-9]+)$',
-        journals_views.mark_first_author,
-        name='mark_first_author'),
-    url(r'^mark_first_author_unregistered/(?P<publication_id>[0-9]+)/(?P<unregistered_author_id>[0-9]+)$',
-        journals_views.mark_first_author_unregistered,
-        name='mark_first_author_unregistered'),
-    url(r'^add_author/(?P<publication_id>[0-9]+)/(?P<contributor_id>[0-9]+)$',
-        journals_views.add_author,
-        name='add_author'),
-    url(r'^add_author/(?P<publication_id>[0-9]+)$',
-        journals_views.add_author,
-        name='add_author'),
-    url(r'^add_unregistered_author/(?P<publication_id>[0-9]+)/(?P<unregistered_author_id>[0-9]+)$',
-        journals_views.add_unregistered_author,
-        name='add_unregistered_author'),
-    url(r'^add_new_unreg_author/(?P<publication_id>[0-9]+)$',
-        journals_views.add_new_unreg_author,
-        name='add_new_unreg_author'),
-    #url(r'^create_citation_list_metadata/(?P<publication_id>[0-9]+)$',
-    url(r'^create_citation_list_metadata/(?P<doi_string>10.21468/[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
-        journals_views.create_citation_list_metadata,
-        name='create_citation_list_metadata'),
-    url(r'^create_funding_info_metadata/(?P<doi_string>10.21468/[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
-        journals_views.create_funding_info_metadata,
-        name='create_funding_info_metadata'),
-    #url(r'^create_metadata_xml/(?P<publication_id>[0-9]+)$',
-    url(r'^create_metadata_xml/(?P<doi_string>10.21468/[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
-        journals_views.create_metadata_xml,
-        name='create_metadata_xml'),
-    # url(r'^test_metadata_xml_deposit/(?P<doi_string>10.21468/[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
-    #     journals_views.test_metadata_xml_deposit,
-    #     name='test_metadata_xml_deposit'),
-    url(r'^metadata_xml_deposit/(?P<doi_string>10.21468/[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})/(?P<option>[a-z]+)$',
-        journals_views.metadata_xml_deposit,
-        name='metadata_xml_deposit'),
-    url(r'^harvest_citedby_links/(?P<doi_string>10.21468/[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
-        journals_views.harvest_citedby_links,
-        name='harvest_citedby_links'),
-]
diff --git a/journals/views.py b/journals/views.py
index 5a1964272f43d88a1fd4bfa356e654a127321699..3749deb37cb6b4b1f8898e4cb4192cd8eb61277d 100644
--- a/journals/views.py
+++ b/journals/views.py
@@ -10,8 +10,9 @@ from django.utils import timezone
 from django.shortcuts import get_object_or_404, render, redirect
 from django.core.urlresolvers import reverse
 from django.db import transaction
-from django.http import HttpResponse
+from django.http import HttpResponse, Http404
 
+from .constants import JOURNALS_NAME_MAPPING
 from .exceptions import PaperNumberingError
 from .helpers import paper_nr_string
 from .models import Issue, Publication, UnregisteredAuthor
@@ -29,79 +30,121 @@ from guardian.decorators import permission_required
 # Journals
 ############
 
+def map_journal(key, _map=JOURNALS_NAME_MAPPING):
+    # try:
+    journal_name = _map[key]
+    # except KeyError:
+    #     raise Http404('Journal does not exist')
+    return journal_name
+
+
+def inverse_map_journal(name):
+    inv_map = {v: k for k, v in JOURNALS_NAME_MAPPING.items()}
+    return map_journal(name, inv_map)
+
+
 def journals(request):
     return render(request, 'journals/journals.html')
 
 
-def scipost_physics(request):
+def landing_page(request, journal_key):
+    journal_name = map_journal(journal_key)
+
     current_issue = Issue.objects.published(
-        in_volume__in_journal__name='SciPost Physics',
+        in_volume__in_journal__name=journal_name,
         start_date__lte=timezone.now(),
         until_date__gte=timezone.now()).order_by('-until_date').first()
     latest_issue = Issue.objects.published(
-        in_volume__in_journal__name='SciPost Physics',
+        in_volume__in_journal__name=journal_name,
         until_date__lte=timezone.now()).order_by('-until_date').first()
 
     prev_issue = None
     if current_issue:
-        prev_issue = (Issue.objects.published(journal='SciPost Physics',
+        prev_issue = (Issue.objects.published(journal=journal_name,
                                               start_date__lt=current_issue.start_date)
                                    .order_by('start_date').last())
 
     context = {
         'current_issue': current_issue,
         'latest_issue': latest_issue,
-        'prev_issue': prev_issue
+        'prev_issue': prev_issue,
+        'journal_name': journal_name,
+        'journal_key': journal_key
     }
     return render(request, 'journals/scipost_physics.html', context)
 
 
-def scipost_physics_issues(request):
+def issues(request, journal_key):
+    journal_name = map_journal(journal_key)
     issues = Issue.objects.published(
-        in_volume__in_journal__name='SciPost Physics').order_by('-until_date')
-    context = {'issues': issues, }
-    return render(request, 'journals/scipost_physics_issues.html', context)
+        in_volume__in_journal__name=journal_name).order_by('-until_date')
+    context = {
+        'issues': issues,
+        'journal_name': journal_name,
+        'journal_key': journal_key
+    }
+    return render(request, 'journals/journal_issues.html', context)
 
 
-def scipost_physics_recent(request):
+def recent(request, journal_key):
     """
     Display page for the most recent 20 publications in SciPost Physics.
     """
-
+    journal_name = map_journal(journal_key)
     recent_papers = Publication.objects.published(
-        in_issue__in_volume__in_journal__name='SciPost Physics').order_by('-publication_date')[:20]
-    context = {'recent_papers': recent_papers}
+        in_issue__in_volume__in_journal__name=journal_name).order_by('-publication_date')[:20]
+    context = {
+        'recent_papers': recent_papers,
+        'journal_name': journal_name,
+        'journal_key': journal_key
+    }
     return render(request, 'journals/scipost_physics_recent.html', context)
 
 
-def scipost_physics_accepted(request):
+def accepted(request, journal_key):
     """
     Display page for submissions to SciPost Physics which
     have been accepted but are not yet published.
     """
+    journal_name = map_journal(journal_key)
     accepted_SP_submissions = Submission.objects.filter(
-        submitted_to_journal='SciPost Physics', status='accepted'
+        submitted_to_journal=journal_name, status='accepted'
     ).order_by('-latest_activity')
-    context = {'accepted_SP_submissions': accepted_SP_submissions}
+    context = {
+        'accepted_SP_submissions': accepted_SP_submissions,
+        'journal_name': journal_name,
+        'journal_key': journal_key
+    }
     return render(request, 'journals/scipost_physics_accepted.html', context)
 
 
-def scipost_physics_info_for_authors(request):
-    return render(request, 'journals/scipost_physics_info_for_authors.html')
+def info_for_authors(request, journal_key):
+    journal_name = map_journal(journal_key)
+    context = {
+        'journal_name': journal_name,
+        'journal_key': journal_key
+    }
+    return render(request, 'journals/%s_info_for_authors.html' % journal_key, context)
 
 
-def scipost_physics_about(request):
-    return render(request, 'journals/scipost_physics_about.html')
+def about(request, journal_key):
+    journal_name = map_journal(journal_key)
+    context = {
+        'journal_name': journal_name,
+        'journal_key': journal_key
+    }
+    return render(request, 'journals/%s_about.html' % journal_key, context)
 
 
-def scipost_physics_issue_detail(request, volume_nr, issue_nr):
-    issue = Issue.objects.get_published(journal='SciPost Physics',
+def issue_detail(request, journal_key, volume_nr, issue_nr):
+    journal_name = map_journal(journal_key)
+    issue = Issue.objects.get_published(journal=journal_name,
                                         number=issue_nr, in_volume__number=volume_nr)
     papers = issue.publication_set.order_by('paper_nr')
-    next_issue = (Issue.objects.published(journal='SciPost Physics',
+    next_issue = (Issue.objects.published(journal=journal_name,
                                           start_date__gt=issue.start_date)
                                .order_by('start_date').first())
-    prev_issue = (Issue.objects.published(journal='SciPost Physics',
+    prev_issue = (Issue.objects.published(journal=journal_name,
                                           start_date__lt=issue.start_date)
                                .order_by('start_date').last())
 
@@ -109,7 +152,9 @@ def scipost_physics_issue_detail(request, volume_nr, issue_nr):
         'issue': issue,
         'prev_issue': prev_issue,
         'next_issue': next_issue,
-        'papers': papers
+        'papers': papers,
+        'journal_name': journal_name,
+        'journal_key': journal_key
     }
     return render(request, 'journals/scipost_physics_issue_detail.html', context)
 
@@ -268,8 +313,7 @@ def mark_first_author(request, publication_id, contributor_id):
     publication.first_author = contributor
     publication.first_author_unregistered = None
     publication.save()
-    return redirect(reverse('scipost:publication_detail',
-                            kwargs={'doi_string': publication.doi_string, }))
+    return redirect(publication.get_absolute_url())
 
 
 @permission_required('scipost.can_publish_accepted_submission', return_403=True)
@@ -280,8 +324,7 @@ def mark_first_author_unregistered(request, publication_id, unregistered_author_
     publication.first_author = None
     publication.first_author_unregistered = unregistered_author
     publication.save()
-    return redirect(reverse('scipost:publication_detail',
-                            kwargs={'doi_string': publication.doi_string, }))
+    return redirect(publication.get_absolute_url())
 
 
 @permission_required('scipost.can_publish_accepted_submission', return_403=True)
@@ -298,8 +341,8 @@ def add_author(request, publication_id, contributor_id=None, unregistered_author
         contributor = get_object_or_404(Contributor, id=contributor_id)
         publication.authors.add(contributor)
         publication.save()
-        return redirect(reverse('scipost:publication_detail',
-                                kwargs={'doi_string': publication.doi_string, }))
+        return redirect(publication.get_absolute_url())
+
     if request.method == 'POST':
         form = UnregisteredAuthorForm(request.POST)
         if form.is_valid():
@@ -333,8 +376,7 @@ def add_unregistered_author(request, publication_id, unregistered_author_id):
     unregistered_author = get_object_or_404(UnregisteredAuthor, id=unregistered_author_id)
     publication.unregistered_authors.add(unregistered_author)
     publication.save()
-    return redirect(reverse('scipost:publication_detail',
-                            kwargs={'doi_string': publication.doi_string, }))
+    return redirect(publication.get_absolute_url())
 
 
 @permission_required('scipost.can_publish_accepted_submission', return_403=True)
@@ -349,8 +391,7 @@ def add_new_unreg_author(request, publication_id):
                 last_name=new_unreg_author_form.cleaned_data['last_name'],)
             new_unreg_author.save()
             publication.authors_unregistered.add(new_unreg_author)
-            return redirect(reverse('scipost:publication_detail',
-                                    kwargs={'doi_string': publication.doi_string, }))
+            return redirect(publication.get_absolute_url())
     errormessage = 'Method add_new_unreg_author can only be called with POST.'
     return render(request, 'scipost/error.html', context={'errormessage': errormessage})
 
@@ -433,8 +474,7 @@ def create_metadata_xml(request, doi_string):
         if create_metadata_xml_form.is_valid():
             publication.metadata_xml = create_metadata_xml_form.cleaned_data['metadata_xml']
             publication.save()
-            return redirect(reverse('scipost:publication_detail',
-                                    kwargs={'doi_string': publication.doi_string, }))
+            return redirect(publication.get_absolute_url())
 
     # create a doi_batch_id
     salt = ""
@@ -696,7 +736,14 @@ def harvest_citedby_links(request, doi_string):
 
 def publication_detail(request, doi_string):
     publication = Publication.objects.get_published(doi_string=doi_string)
-    context = {'publication': publication, }
+    journal_name = publication.in_issue.in_volume.in_journal.name
+    journal_key = inverse_map_journal(journal_name)
+
+    context = {
+        'publication': publication,
+        'journal_name': journal_name,
+        'journal_key': journal_key
+    }
     return render(request, 'journals/publication_detail.html', context)
 
 
diff --git a/scipost/feeds.py b/scipost/feeds.py
index 8397cb63731cfcee6bfd381dd348645d3340c6fe..738a1c9567a60b8004ad3fba2f543edec9056c6e 100644
--- a/scipost/feeds.py
+++ b/scipost/feeds.py
@@ -171,8 +171,7 @@ class LatestPublicationsFeedRSS(Feed):
         return obj
 
     def item_link(self, item):
-        return reverse('scipost:publication_detail',
-                       kwargs={'doi_string': item.doi_string})
+        return item.get_absolute_url()
 
 
 class LatestPublicationsFeedAtom(LatestPublicationsFeedRSS):
diff --git a/scipost/templates/scipost/index.html b/scipost/templates/scipost/index.html
index 6666b788fccb34f97272c1c95bdac671cf95a31d..29c476f7e8f27ed172aee6dc9eac84d8e1fbc863 100644
--- a/scipost/templates/scipost/index.html
+++ b/scipost/templates/scipost/index.html
@@ -66,7 +66,7 @@
                 <div class="card-block">
                   <h1 class="card-title"><a href="{% url 'journals:journals' %}">Latest Publications</a></h1>
                     <h2 class="banner">
-                        <a href="{% url 'journals:scipost_physics' %}">SciPost Physics</a>
+                        <a href="{% url 'journal:landing_page' 'SciPostPhys' %}">SciPost Physics</a>
                     </h2>
                       {% if issue and publications %}
                       <h4 class="card-text text-center mt-2">A selection from the {% if issue.is_current %}current{% else %}last{% endif %} issue:</h4>
diff --git a/scipost/urls.py b/scipost/urls.py
index a26c8e095200ce2820533e6bb50a0edd08632c92..20f844fdab6bb28a8d383fdbc4b93d28be986d05 100644
--- a/scipost/urls.py
+++ b/scipost/urls.py
@@ -6,7 +6,6 @@ from .feeds import LatestNewsFeedRSS, LatestNewsFeedAtom, LatestCommentsFeedRSS,
 
 from journals import views as journals_views
 
-
 urlpatterns = [
     url(r'^$', views.index, name='index'),
     url(r'^base$', views.base, name='base'),
@@ -176,18 +175,20 @@ urlpatterns = [
     # Publications #
     ################
 
-    url(r'^SciPostPhys$',
-        journals_views.scipost_physics,
-        name='SciPostPhys'),
-    url(r'^10.21468/SciPostPhys$',
-        journals_views.scipost_physics,
-        name='doi_SciPostPhys'),
-    url(r'^SciPostPhys.(?P<volume_nr>[0-9]+).(?P<issue_nr>[0-9]+)$',
-        journals_views.scipost_physics_issue_detail,
-        name='SciPostPhys_issue_detail_from_doi_label'),
-    url(r'^10.21468/SciPostPhys.(?P<volume_nr>[0-9]+).(?P<issue_nr>[0-9]+)$',
-        journals_views.scipost_physics_issue_detail,
-        name='SciPostPhys_issue_detail'),
+
+
+    # url(r'^10.21468/%s$' % JOURNAL_REGEX,
+    #     journals_views.journal_landing_page,
+    #     name='journal_abbreviation'),
+    # url(r'^%s$' % JOURNAL_REGEX,
+    #     journals_views.journal_landing_page,
+    #    name='journal_abbreviation'),
+    # url(r'^SciPostPhys.(?P<volume_nr>[0-9]+).(?P<issue_nr>[0-9]+)$',
+    #     journals_views.scipost_physics_issue_detail,
+    #     name='SciPostPhys_issue_detail_from_doi_label'),
+    # url(r'^10.21468/SciPostPhys.(?P<volume_nr>[0-9]+).(?P<issue_nr>[0-9]+)$',
+    #     journals_views.scipost_physics_issue_detail,
+    #     name='SciPostPhys_issue_detail'),
 
     url(r'^(?P<doi_string>10.21468/[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
         journals_views.publication_detail,
@@ -195,12 +196,12 @@ urlpatterns = [
     url(r'^(?P<doi_string>10.21468/[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})/pdf$',
         journals_views.publication_pdf,
         name='publication_pdf'),
-    url(r'^(?P<doi_label>[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
-        journals_views.publication_detail_from_doi_label,
-        name='publication_detail_from_doi_label'),
-    url(r'^(?P<doi_label>[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})/pdf$',
-        journals_views.publication_pdf_from_doi_label,
-        name='publication_pdf_from_doi_label'),
+    # url(r'^(?P<doi_label>[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})$',
+    #     journals_views.publication_detail_from_doi_label,
+    #     name='publication_detail_from_doi_label'),
+    # url(r'^(?P<doi_label>[a-zA-Z]+.[0-9]+.[0-9]+.[0-9]{3,})/pdf$',
+    #     journals_views.publication_pdf_from_doi_label,
+    #     name='publication_pdf_from_doi_label'),
 
 
     ################
diff --git a/submissions/templates/submissions/_submission_status_block.html b/submissions/templates/submissions/_submission_status_block.html
index 28aa0b472c9044900d07bcff9159780b4170019b..7e56189de30e81b8257272c914aa0a4e17e2ddda 100644
--- a/submissions/templates/submissions/_submission_status_block.html
+++ b/submissions/templates/submissions/_submission_status_block.html
@@ -2,6 +2,6 @@
 <div class="d-inline">
     <span class="label label-secondary">{{submission.get_status_display}}</span>
     {% if submission.publication %}
-        as <a href="{% url 'scipost:publication_detail' submission.publication.doi_string %}">{{submission.publication.in_issue.in_volume.in_journal.get_abbreviation_citation}} <strong>{{submission.publication.in_issue.in_volume.number}}</strong>, {{submission.publication.get_paper_nr}} ({{submission.publication.publication_date|date:'Y'}})</a>
+        as <a href="{{submission.publication.get_absolute_url}}">{{submission.publication.in_issue.in_volume.in_journal.get_abbreviation_citation}} <strong>{{submission.publication.in_issue.in_volume.number}}</strong>, {{submission.publication.get_paper_nr}} ({{submission.publication.publication_date|date:'Y'}})</a>
     {% endif %}
 </div>