diff --git a/app/corpora/routes.py b/app/corpora/routes.py
index 4c1ebd293b799d31b3b3b01cd4f7be7d723c2db0..63af1b07276555bc355c4b23ac0bcf5992855753 100644
--- a/app/corpora/routes.py
+++ b/app/corpora/routes.py
@@ -332,3 +332,12 @@ def remove_permission(corpus_id, user_id, permission):
     a.remove_permission(permission)
     db.session.commit()
     return 'ok'
+
+@bp.route('/public/<hashid:corpus_id>')
+def public_corpus(corpus_id):
+    corpus = Corpus.query.get_or_404(corpus_id)
+    return render_template(
+        'corpora/public_corpus.html.j2',
+        corpus=corpus,
+        title=corpus.title
+    )
diff --git a/app/templates/corpora/corpus.html.j2 b/app/templates/corpora/corpus.html.j2
index 0f7b0bf4f105df1e60fdcfcb28c032a4524f7bdf..c29da972c7e86ac67a02b8aea5f36caacade75d6 100644
--- a/app/templates/corpora/corpus.html.j2
+++ b/app/templates/corpora/corpus.html.j2
@@ -120,56 +120,5 @@
 {{ super() }}
 <script>
   let corpusDisplay = new CorpusDisplay(document.querySelector('#corpus-display'));
-  let corpusFollowingRequest = document.querySelector('#follow-corpus-request');
-  
-  {# let followingUserList = new UserList(document.querySelector('.user-list'));
-  followingUserList.add({{ following_users|tojson }}); #}
-  
-  corpusFollowingRequest.addEventListener('click', function() {
-    corpusFollowingRequest.innerHTML = '<i class="material-icons left">add</i>Unfollow Corpus';
-    if ("{{ current_user.is_following_corpus(corpus) }}" === "False") {
-      corpusFollowingRequest.lastChild.textContent = 'Unfollow Corpus';
-      return new Promise((resolve, reject) => {
-        fetch(`/corpora/{{ corpus.hashid }}/follow`, {method: 'POST', headers: {Accept: 'application/json'}})
-          .then(
-            (response) => {
-              if (response.status === 403) {app.flash('Forbidden', 'error'); reject(response);}
-              if (response.status === 404) {app.flash('Not Found', 'error'); reject(response);}
-              if (response.status === 409) {app.flash('Conflict', 'error'); reject(response);}
-              app.flash(`You follow "{{ corpus.title }}" now`, 'corpus');
-              window.location.href = '{{ url_for("corpora.corpus", corpus_id=corpus.id) }}'
-              resolve(response);
-            },
-            (response) => {
-              app.flash('Something went wrong', 'error');
-              reject(response);
-            }
-          );
-      });
-      
-    } else {
-      corpusFollowingRequest.innerHTML = '<i class="material-icons left">add</i>Unfollow Corpus';
-      return new Promise((resolve, reject) => {
-        fetch(`/corpora/{{ corpus.hashid }}/unfollow`, {method: 'POST', headers: {Accept: 'application/json'}})
-          .then(
-            (response) => {
-              if (response.status === 403) {app.flash('Forbidden', 'error'); reject(response);}
-              if (response.status === 404) {app.flash('Not Found', 'error'); reject(response);}
-              if (response.status === 409) {app.flash('Conflict', 'error'); reject(response);}
-              app.flash(`You are not following "{{ corpus.title }}" anymore`, 'corpus');
-              resolve(response);
-              window.location.href = '{{ url_for("corpora.corpus", corpus_id=corpus.id) }}'
-            },
-            (response) => {
-              app.flash('Something went wrong', 'error');
-              reject(response);
-            }
-          );
-      });
-      
-    }
-  });
-
-  
 </script>
 {% endblock scripts %}
diff --git a/app/templates/corpora/public_corpus.html.j2 b/app/templates/corpora/public_corpus.html.j2
new file mode 100644
index 0000000000000000000000000000000000000000..f9cb4bc9ff7c3f40888113137a44910df0aedca7
--- /dev/null
+++ b/app/templates/corpora/public_corpus.html.j2
@@ -0,0 +1,86 @@
+{% extends "base.html.j2" %}
+{% import "materialize/wtf.html.j2" as wtf %}
+
+{% block main_attribs %} class="service-scheme" data-service="corpus-analysis"{% endblock main_attribs %}
+
+{% block page_content %}
+<div class="container">
+  <div class="row">
+    <div class="col s12">
+      <h1>{{ title }} </h1>
+      <div class="card service-color-border border-darken" data-service="corpus-analysis" style="border-top: 10px solid">
+        <div class="card-content">
+          <div class="row">
+            <div class="col s12">
+              <p><b>Description:</b> {{ corpus.description }}</p>
+              <br>
+              <p></p>
+            </div>
+            <div class="col s6">
+              <p><b>Creation date:</b> {{ corpus.creation_date }}</p>
+            </div>
+            <div class="col s6">
+              <p><b>Number of tokens used:</b> {{ corpus.num_tokens }}</p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+{% endblock page_content %}
+
+{% block scripts %}
+{{ super() }}
+<script>
+  let corpusFollowingRequest = document.querySelector('#follow-corpus-request');
+  
+  {# let followingUserList = new UserList(document.querySelector('.user-list'));
+  followingUserList.add({{ following_users|tojson }}); #}
+  
+  corpusFollowingRequest.addEventListener('click', function() {
+    corpusFollowingRequest.innerHTML = '<i class="material-icons left">add</i>Unfollow Corpus';
+    if ("{{ current_user.is_following_corpus(corpus) }}" === "False") {
+      corpusFollowingRequest.lastChild.textContent = 'Unfollow Corpus';
+      return new Promise((resolve, reject) => {
+        fetch(`/corpora/{{ corpus.hashid }}/follow`, {method: 'POST', headers: {Accept: 'application/json'}})
+          .then(
+            (response) => {
+              if (response.status === 403) {app.flash('Forbidden', 'error'); reject(response);}
+              if (response.status === 404) {app.flash('Not Found', 'error'); reject(response);}
+              if (response.status === 409) {app.flash('Conflict', 'error'); reject(response);}
+              app.flash(`You follow "{{ corpus.title }}" now`, 'corpus');
+              window.location.href = '{{ url_for("corpora.corpus", corpus_id=corpus.id) }}'
+              resolve(response);
+            },
+            (response) => {
+              app.flash('Something went wrong', 'error');
+              reject(response);
+            }
+          );
+      });
+      
+    } else {
+      corpusFollowingRequest.innerHTML = '<i class="material-icons left">add</i>Unfollow Corpus';
+      return new Promise((resolve, reject) => {
+        fetch(`/corpora/{{ corpus.hashid }}/unfollow`, {method: 'POST', headers: {Accept: 'application/json'}})
+          .then(
+            (response) => {
+              if (response.status === 403) {app.flash('Forbidden', 'error'); reject(response);}
+              if (response.status === 404) {app.flash('Not Found', 'error'); reject(response);}
+              if (response.status === 409) {app.flash('Conflict', 'error'); reject(response);}
+              app.flash(`You are not following "{{ corpus.title }}" anymore`, 'corpus');
+              resolve(response);
+              window.location.href = '{{ url_for("corpora.corpus", corpus_id=corpus.id) }}'
+            },
+            (response) => {
+              app.flash('Something went wrong', 'error');
+              reject(response);
+            }
+          );
+      });
+      
+    }
+  });
+</script>
+{% endblock scripts %}