diff --git a/aleksis/core/templates/core/pages/about.html b/aleksis/core/templates/core/pages/about.html
deleted file mode 100644
index 3489a50e2395309b078a0c1b2fa053b6a728fac6..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/pages/about.html
+++ /dev/null
@@ -1,11 +0,0 @@
-{# -*- engine:django -*- #}
-{% extends "core/vue_base.html" %}
-{% load i18n %}
-
-
-{% block browser_title %}{% blocktrans %}About AlekSIS®{% endblocktrans %}{% endblock %}
-{% block page_title %}{% blocktrans %}AlekSIS® – The Free School Information System{% endblocktrans %}{% endblock %}
-
-{% block content %}
-  <router-view></router-view>
-{% endblock %}
diff --git a/aleksis/core/templates/core/pages/progress.html b/aleksis/core/templates/core/pages/progress.html
deleted file mode 100644
index 82dc6506058e0b0e7da785a0161c1f45585634b7..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/pages/progress.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{% extends "core/vue_base.html" %}
-{% load i18n static %}
-
-{% block browser_title %}
-  {% trans "Progress" %}
-{% endblock %}
-
-{% block content %}
-  <router-view></router-view>
-{% endblock %}
diff --git a/aleksis/core/templates/core/partials/vue_avatar_content.html b/aleksis/core/templates/core/partials/vue_avatar_content.html
deleted file mode 100644
index c94a0734fa28383a78bcb6f082347ddbb4f77826..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/partials/vue_avatar_content.html
+++ /dev/null
@@ -1,25 +0,0 @@
-{% load rules i18n %}
-{% has_perm 'core.view_avatar_rule' request.user person_or_user as can_view_avatar %}
-{% has_perm 'core.view_photo_rule' request.user person_or_user as can_view_photo %}
-{% if SITE_PREFERENCES.account__person_prefer_photo and person_or_user.photo and can_view_photo %}
-  <img src="{{ person_or_user.photo.url }}"
-       alt="{{ person_or_user.full_name }}" {% if title %} title="{{ person_or_user.full_name }}"{% endif %}/>
-{% elif person_or_user.identicon_url %}
-
-  {# If this is a person #}
-  {% if can_view_avatar %}
-    <img src="{{ person_or_user.avatar_url }}"
-         alt="{{ person_or_user.full_name }} ({% trans "Avatar" %})" {% if title %}
-         title="{{ person_or_user.full_name }} ({% trans "Avatar" %})"{% endif %}/>
-  {% else %}
-    <img src="{{ person_or_user.identicon_url }}"
-         alt="{{ person_or_user.full_name }} ({% trans "Identicon" %})" {% if title %}
-         title="{{ person_or_user.full_name }} ({% trans "Identicon" %})"{% endif %} />
-  {% endif %}
-
-{% else %}
-  {# There is a user without a person #}
-  <v-icon>
-    <i class="material-icons">person</i>
-  </v-icon>
-{% endif %}
diff --git a/aleksis/core/templates/core/partials/vue_footer_menu.html b/aleksis/core/templates/core/partials/vue_footer_menu.html
deleted file mode 100644
index bff28885fc4084c0b0744a5a028a8c51ef393531..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/partials/vue_footer_menu.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{# -*- engine:django -*- #}
-
-{% for item in FOOTER_MENU.items.all %}
-  <v-btn text rounded href="{{ item.url }}" color="white" class="ma-2">
-    {% if item.icon %}
-      <v-icon left>mdi-{{ item.icon }}</v-icon>
-    {% endif %}
-    {{ item.name }}
-  </v-btn>
-{% endfor %}
diff --git a/aleksis/core/templates/core/partials/vue_language_form.html b/aleksis/core/templates/core/partials/vue_language_form.html
deleted file mode 100644
index a1a7953599b1fc652a25c7eaa6870106c8d2852f..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/partials/vue_language_form.html
+++ /dev/null
@@ -1,36 +0,0 @@
-{# -*- engine:django -*- #}
-
-{% load i18n %}
-
-
-<form action="{% url 'set_language' %}" method="post" class="language-form">
-  {% csrf_token %}
-  <input name="next" type="hidden" value="{{ request.get_full_path }}">
-
-  {% get_current_language as LANGUAGE_CODE %}
-  {% get_language_info_list for request.site.preferences.internationalisation__languages as languages %}
-
-  {# Select #}
-  <!--<div class="input-field language-field">
-    <span>{% trans "Language" %}</span>
-    <select name="language">
-      {% for language in languages %}
-        <option value="{{ language.code }}" {% if language.code == LANGUAGE_CODE %}
-                selected {% endif %}>{{ language.name_local }}</option>
-      {% endfor %}
-    </select>
-  </div>-->
-  <v-select
-    :items="items"
-    label="{% trans "Language" %}"
-    color="white"
-    class="white--text"
-  ></v-select>
-
-  {# Submit button (only visible if JS isn't activated #}
-  <p class="language-submit-p">
-    <button type="submit" class="btn-flat waves-effect waves-light white-text">
-      {% trans "Select language" %}
-    </button>
-  </p>
-</form>
diff --git a/aleksis/core/templates/core/partials/vue_no_person.html b/aleksis/core/templates/core/partials/vue_no_person.html
deleted file mode 100644
index f49093686e8fae83f6af3a0233e42650bd8bbd26..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/partials/vue_no_person.html
+++ /dev/null
@@ -1,21 +0,0 @@
-{# -*- engine:django -*- #}
-
-{% load i18n %}
-
-{% if user.person.is_dummy or not user.person and not user.is_anonymous %}
-  <message-box type="error">
-
-  {% if user.person.is_dummy %}
-    {% blocktrans %}
-      Your administrator account is not linked to any person. Therefore,
-      a dummy person has been linked to your account.
-    {% endblocktrans %}
-  {% else %}
-    {% blocktrans %}
-      Your user account is not linked to a person. This means you
-      cannot access any school-related information. Please contact
-      the managers of AlekSIS at your school.
-    {% endblocktrans %}
-  {% endif %}
-  </message-box>
-{% endif %}
diff --git a/aleksis/core/templates/core/partials/vue_sidenav.html b/aleksis/core/templates/core/partials/vue_sidenav.html
deleted file mode 100644
index a9701b689c156f7618edd68c7c54f89ea2106a16..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/partials/vue_sidenav.html
+++ /dev/null
@@ -1,64 +0,0 @@
-{# -*- engine:django -*- #}
-
-{% load menu_generator data_helpers %}
-
-{% get_menu "NAV_MENU_CORE" as core_menu %}
-
-{% for item in core_menu %}
-  {% if not item.submenu %}
-    <v-list-item {% if item.selected %} input-value="true" {% endif %}
-      {% if item.new_tab %} target="_blank" {% endif %} href="{{ item.url }}">
-      <v-list-item-icon>
-        {% if item.vuetify_icon %}
-          <v-icon>{{ item.vuetify_icon }}</v-icon>
-        {% elif item.icon_class %}
-          <i class="{{ item.icon_class }}"></i>
-        {% elif item.icon %}
-          <i class="material-icons">{{ item.icon }}</i>
-        {% elif item.svg_icon %}
-          <i class="material-icons iconify" data-icon="{{ item.svg_icon }}"></i>
-        {% endif %}
-      </v-list-item-icon>
-      <v-list-item-title>{{ item.name }}</v-list-item-title>
-      {% build_badge item as badge %}
-      {% if badge %}
-        <span class="new badge sidenav-badge"> {{ badge }}</span>
-      {% endif %}
-    </v-list-item>
-  {% endif %}
-  {% if item.submenu %}
-    <v-list-group {% if item.selected %} value="true" {% endif %}
-      {% if item.new_tab %} target="_blank" {% endif %} href="{{ item.url|default:"#" }}"
-                  {% if item.vuetify_icon %}prepend-icon="{{ item.vuetify_icon }}"{% endif %}
-    >
-      <template v-slot:activator>
-        <v-list-item-title>{{ item.name }}</v-list-item-title>
-      </template>
-      {% build_badge item as badge %}
-      {% if badge %}
-        <span class="new badge sidenav-badge"> {{ badge }}</span>
-      {% endif %}
-      {% for menu in item.submenu %}
-        <v-list-item {% if menu.selected %} input-value="true" {% endif %} href="{{ menu.url }}">
-          <v-list-item-icon>
-            {% if menu.vuetify_icon %}
-              <v-icon>{{ menu.vuetify_icon }}</v-icon>
-            {% elif menu.icon_class %}
-              <i class="{{ menu.icon_class }}"></i>
-            {% elif menu.icon %}
-              <i class="material-icons">{{ menu.icon }}</i>
-            {% elif menu.svg_icon %}
-              <i class="material-icons iconify" data-icon="{{ menu.svg_icon }}"></i>
-            {% endif %}
-          </v-list-item-icon>
-          <v-list-item-title>{{ menu.name }}</v-list-item-title>
-          {% build_badge menu as badge %}
-          {% if badge %}
-            <span class="new badge sidenav-badge"> {{ badge }}</span>
-          {% endif %}
-          </a>
-        </v-list-item>
-      {% endfor %}
-    </v-list-group>
-  {% endif %}
-{% endfor %}
diff --git a/aleksis/core/templates/core/vue_dummy.html b/aleksis/core/templates/core/vue_dummy.html
deleted file mode 100644
index c5ae6f471542d90828a50e00463e80d9167985ba..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/vue_dummy.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{% extends 'core/vue_base.html' %}
-{% load i18n static dashboard %}
-
-{% block browser_title %}{% blocktrans %}Dummy page{% endblocktrans %}{% endblock %}
-{% block page_title %}{% blocktrans %}Dummy page{% endblocktrans %}{% endblock %}
-
-{% block content %}
-  <p>Nothing here</p>
-{% endblock %}
diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py
index 9598a329c71f6582cf8ad5b7ea24bdb192a6bdba..3ecb3b65e6728734b6a3e182651e06480cb389fb 100644
--- a/aleksis/core/urls.py
+++ b/aleksis/core/urls.py
@@ -51,7 +51,6 @@ urlpatterns = [
                 ),
                 path("vue_dummy/", views.vue_dummy, name="vue_dummy"),
                 path("offline/", views.OfflineView.as_view(), name="offline"),
-                path("about/", views.about, name="about_aleksis"),
                 path(
                     "invitations/send-invite/", views.InvitePerson.as_view(), name="invite_person"
                 ),
@@ -73,11 +72,6 @@ urlpatterns = [
                 path("invitations/", include("invitations.urls")),
                 path("status/", views.SystemStatus.as_view(), name="system_status"),
                 path("", include(tf_urls)),
-                path(
-                    "celery_progress/<str:task_id>/",
-                    views.CeleryProgressView.as_view(),
-                    name="task_status",
-                ),
                 path("school_terms/", views.SchoolTermListView.as_view(), name="school_terms"),
                 path(
                     "school_terms/create/",
diff --git a/aleksis/core/views.py b/aleksis/core/views.py
index 2327ffd1d9a9a16bb963bcdc0588dba555d9fd7b..d67087b1f4c471b545916afe843b883acaedadfd 100644
--- a/aleksis/core/views.py
+++ b/aleksis/core/views.py
@@ -103,7 +103,6 @@ from .models import (
     PersonalICalUrl,
     PersonInvitation,
     SchoolTerm,
-    TaskUserAssignment,
 )
 from .registries import (
     group_preferences_registry,
@@ -125,7 +124,6 @@ from .tables import (
     UserObjectPermissionTable,
 )
 from .util import messages
-from .util.apps import AppConfig
 from .util.celery_progress import render_progress_page
 from .util.core_helpers import (
     generate_random_code,
@@ -246,17 +244,6 @@ def index(request: HttpRequest) -> HttpResponse:
     return render(request, "core/index.html", context)
 
 
-def about(request: HttpRequest) -> HttpResponse:
-    """About page listing all apps."""
-    context = {}
-
-    context["app_configs"] = list(
-        filter(lambda a: isinstance(a, AppConfig), apps.get_app_configs())
-    )
-
-    return render(request, "core/pages/about.html", context)
-
-
 class SchoolTermListView(PermissionRequiredMixin, SingleTableView):
     """Table of all school terms."""
 
@@ -1317,17 +1304,6 @@ class RedirectToPDFFile(SingleObjectMixin, View):
         return redirect(file_object.file.url)
 
 
-class CeleryProgressView(PermissionRequiredMixin, DetailView):
-    """Wrap celery-progress view to check permissions before."""
-
-    template_name = "core/pages/progress.html"
-    permission_required = "core.view_progress_rule"
-
-    def get_object(self, queryset=None):
-        task_id = self.kwargs.get("task_id")
-        return TaskUserAssignment.objects.get(task_result__task_id=task_id)
-
-
 class CustomPasswordChangeView(LoginRequiredMixin, PermissionRequiredMixin, PasswordChangeView):
     """Custom password change view to allow to disable changing of password."""