diff --git a/aleksis/core/menus.py b/aleksis/core/menus.py
deleted file mode 100644
index 817d7ce466fee26b4e443bd93e513e21d83687c0..0000000000000000000000000000000000000000
--- a/aleksis/core/menus.py
+++ /dev/null
@@ -1,343 +0,0 @@
-from django.conf import settings
-from django.utils.translation import gettext_lazy as _
-
-MENUS = {
-    "NAV_MENU_CORE": [
-        {
-            "name": _("Login"),
-            "url": settings.LOGIN_URL,
-            "svg_icon": "mdi:login-variant",
-            "vuetify_icon": "mdi-login-variant",
-            "validators": ["menu_generator.validators.is_anonymous"],
-        },
-        {
-            "name": _("Sign up"),
-            "url": "account_signup",
-            "svg_icon": "mdi:account-plus-outline",
-            "vuetify_icon": "mdi-account-plus-outline",
-            "validators": [
-                "menu_generator.validators.is_anonymous",
-                ("aleksis.core.util.predicates.permission_validator", "core.signup_rule"),
-            ],
-        },
-        {
-            "name": _("Accept invitation"),
-            "url": "enter_invitation_code",
-            "svg_icon": "mdi:key-outline",
-            "vuetify_icon": "mdi-key-outline",
-            "validators": [
-                "menu_generator.validators.is_anonymous",
-                ("aleksis.core.util.predicates.permission_validator", "core.invite_enabled"),
-            ],
-        },
-        {
-            "name": _("Dashboard"),
-            "url": "index",
-            "svg_icon": "mdi:home-outline",
-            "vuetify_icon": "mdi-home-outline",
-            "validators": [
-                ("aleksis.core.util.predicates.permission_validator", "core.view_dashboard_rule")
-            ],
-        },
-        {
-            "name": _("Admin"),
-            "url": "#",
-            "svg_icon": "mdi:security",
-            "vuetify_icon": "mdi-security",
-            "validators": [
-                ("aleksis.core.util.predicates.permission_validator", "core.view_admin_menu_rule"),
-            ],
-            "submenu": [
-                {
-                    "name": _("Announcements"),
-                    "url": "announcements",
-                    "svg_icon": "mdi:message-alert-outline",
-                    "vuetify_icon": "mdi-message-alert-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.view_announcements_rule",
-                        ),
-                    ],
-                },
-                {
-                    "name": _("School terms"),
-                    "url": "school_terms",
-                    "svg_icon": "mdi:calendar-range-outline",
-                    "vuetify_icon": "mdi-calendar-range-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.view_schoolterm_rule",
-                        ),
-                    ],
-                },
-                {
-                    "name": _("Dashboard widgets"),
-                    "url": "dashboard_widgets",
-                    "svg_icon": "mdi:view-dashboard-outline",
-                    "vuetify_icon": "mdi-view-dashboard-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.view_dashboardwidget_rule",
-                        ),
-                    ],
-                },
-                {
-                    "name": _("Data management"),
-                    "url": "data_management",
-                    "svg_icon": "mdi:chart-donut",
-                    "vuetify_icon": "mdi-chart-donut",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.manage_data_rule",
-                        ),
-                    ],
-                },
-                {
-                    "name": _("System status"),
-                    "url": "system_status",
-                    "svg_icon": "mdi:power-settings",
-                    "vuetify_icon": "mdi-power-settings",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.view_system_status_rule",
-                        ),
-                    ],
-                },
-                {
-                    "name": _("Configuration"),
-                    "url": "preferences_site",
-                    "svg_icon": "mdi:tune",
-                    "vuetify_icon": "mdi-tune",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.change_site_preferences_rule",
-                        ),
-                    ],
-                },
-                {
-                    "name": _("Data checks"),
-                    "url": "check_data",
-                    "svg_icon": "mdi:list-status",
-                    "vuetify_icon": "mdi-list-status",
-                    "validators": ["menu_generator.validators.is_superuser"],
-                },
-                {
-                    "name": _("Manage permissions"),
-                    "url": "manage_user_global_permissions",
-                    "svg_icon": "mdi:shield-outline",
-                    "vuetify_icon": "mdi-shield-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.manage_permissions_rule",
-                        ),
-                    ],
-                },
-                {
-                    "name": _("Backend Admin"),
-                    "url": "admin:index",
-                    "svg_icon": "mdi:database-cog-outline",
-                    "vuetify_icon": "mdi-database-cog-outline",
-                    "validators": [
-                        "menu_generator.validators.is_superuser",
-                    ],
-                },
-                {
-                    "name": _("OAuth2 Applications"),
-                    "url": "oauth2_applications",
-                    "svg_icon": "mdi:gesture-tap-hold",
-                    "vuetify_icon": "mdi-gesture-tap-hold",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.list_oauth_applications_rule",
-                        ),
-                    ],
-                },
-            ],
-        },
-        {
-            "name": _("People"),
-            "url": "#",
-            "svg_icon": "mdi:account-group-outline",
-            "vuetify_icon": "mdi-account-group-outline",
-            "root": True,
-            "validators": [
-                ("aleksis.core.util.predicates.permission_validator", "core.view_people_menu_rule")
-            ],
-            "submenu": [
-                {
-                    "name": _("Persons"),
-                    "url": "persons",
-                    "svg_icon": "mdi:account-outline",
-                    "vuetify_icon": "mdi-account-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.view_persons_rule",
-                        )
-                    ],
-                },
-                {
-                    "name": _("Groups"),
-                    "url": "groups",
-                    "svg_icon": "mdi:account-multiple-outline",
-                    "vuetify_icon": "mdi-account-multiple-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.view_groups_rule",
-                        )
-                    ],
-                },
-                {
-                    "name": _("Group types"),
-                    "url": "group_types",
-                    "svg_icon": "mdi:shape-outline",
-                    "vuetify_icon": "mdi-shape-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.view_grouptypes_rule",
-                        )
-                    ],
-                },
-                {
-                    "name": _("Groups and child groups"),
-                    "url": "groups_child_groups",
-                    "svg_icon": "mdi:account-multiple-plus-outline",
-                    "vuetify_icon": "mdi-account-multiple-plus-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.assign_child_groups_to_groups_rule",
-                        )
-                    ],
-                },
-                {
-                    "name": _("Additional fields"),
-                    "url": "additional_fields",
-                    "svg_icon": "mdi:palette-swatch-outline",
-                    "vuetify_icon": "mdi-palette-swatch-outline",
-                    "validators": [
-                        (
-                            "aleksis.core.util.predicates.permission_validator",
-                            "core.view_additionalfields_rule",
-                        )
-                    ],
-                },
-                {
-                    "name": _("Invite person"),
-                    "url": "invite_person",
-                    "svg_icon": "mdi:account-plus-outline",
-                    "vuetify_icon": "mdi-account-plus-outline",
-                    "validators": [
-                        "menu_generator.validators.is_authenticated",
-                        ("aleksis.core.util.predicates.permission_validator", "core.invite_rule"),
-                    ],
-                },
-            ],
-        },
-    ],
-    "NAVBAR_ACCOUNT_MENU": [
-        {
-            "name": _("Stop impersonation"),
-            "url": "impersonate-stop",
-            "svg_icon": "mdi:stop",
-            "vuetify_icon": "mdi-stop",
-            "validators": [
-                "menu_generator.validators.is_authenticated",
-                "aleksis.core.util.core_helpers.is_impersonate",
-            ],
-        },
-        {
-            "name": _("Account"),
-            "url": "person",
-            "svg_icon": "mdi:account-outline",
-            "vuetify_icon": "mdi-account-outline",
-            "validators": [
-                "menu_generator.validators.is_authenticated",
-                "aleksis.core.util.core_helpers.has_person",
-            ],
-        },
-        {
-            "name": _("Preferences"),
-            "url": "preferences_person",
-            "svg_icon": "mdi:cog-outline",
-            "vuetify_icon": "mdi-cog-outline",
-            "validators": [
-                "menu_generator.validators.is_authenticated",
-                "aleksis.core.util.core_helpers.has_person",
-            ],
-        },
-        {
-            "name": _("2FA"),
-            "url": "two_factor:profile",
-            "svg_icon": "mdi:two-factor-authentication",
-            "vuetify_icon": "mdi-two-factor-authentication",
-            "validators": [
-                "menu_generator.validators.is_authenticated",
-            ],
-        },
-        {
-            "name": _("Change password"),
-            "url": "account_change_password",
-            "svg_icon": "mdi:form-textbox-password",
-            "vuetify_icon": "mdi-form-textbox-password",
-            "validators": [
-                "menu_generator.validators.is_authenticated",
-                (
-                    "aleksis.core.util.predicates.permission_validator",
-                    "core.change_password_rule",
-                ),
-            ],
-        },
-        {
-            "name": _("Third-party accounts"),
-            "url": "socialaccount_connections",
-            "svg_icon": "mdi:earth",
-            "vuetify_icon": "mdi-earth",
-            "validators": [
-                "menu_generator.validators.is_authenticated",
-                "aleksis.core.util.core_helpers.has_person",
-            ],
-        },
-        {
-            "name": _("Authorized applications"),
-            "url": "oauth2_provider:authorized-token-list",
-            "svg_icon": "mdi:gesture-tap-hold",
-            "vuetify_icon": "mdi-gesture-tap-hold",
-            "validators": [
-                "menu_generator.validators.is_authenticated",
-                "aleksis.core.util.core_helpers.has_person",
-            ],
-        },
-        {
-            "name": _("Calendar Feeds"),
-            "url": "ical_feed_list",
-            "svg_icon": "mdi:calendar-multiple",
-            "vuetify_icon": "mdi-calendar-multiple",
-            "validators": [
-                "menu_generator.validators.is_authenticated",
-                (
-                    "aleksis.core.util.predicates.permission_validator",
-                    "core.view_ical_rule",
-                ),
-            ],
-        },
-        {
-            "divider": True,
-            "name": _("Logout"),
-            "url": "logout",
-            "svg_icon": "mdi:logout-variant",
-            "vuetify_icon": "mdi-logout-variant",
-            "validators": ["menu_generator.validators.is_authenticated"],
-        },
-    ],
-}
diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index a19a8611cdb9d3782190d77cd40b5367fadca93a..20ed818133d3c58c96a9c303fcdca480a7a8f814 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -100,7 +100,6 @@ INSTALLED_APPS = [
     "django_vite",
     "django_tables2",
     "maintenance_mode",
-    "menu_generator",
     "reversion",
     "phonenumber_field",
     "django_prometheus",
diff --git a/aleksis/core/templates/core/management/data_management.html b/aleksis/core/templates/core/management/data_management.html
deleted file mode 100644
index fa8e61f5dac1d1e01e5a773b68015cc9befe8d8f..0000000000000000000000000000000000000000
--- a/aleksis/core/templates/core/management/data_management.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{# -*- engine:django -*- #}
-{% extends "core/base.html" %}
-{% load i18n menu_generator %}
-
-
-{% block browser_title %}{% blocktrans %}Data management{% endblocktrans %}{% endblock %}
-{% block page_title %}{% blocktrans %}Data management{% endblocktrans %}{% endblock %}
-
-{% block content %}
-  {% get_menu "DATA_MANAGEMENT_MENU" as menu %}
-  {% include "core/partials/on_page_menu.html" %}
-{% endblock %}
diff --git a/aleksis/core/templatetags/data_helpers.py b/aleksis/core/templatetags/data_helpers.py
index 5e263ba370bb732a80cb9d6c5d64880842ff5bb5..ab2309f260dd6b039cc722bae86fa71637967a1f 100644
--- a/aleksis/core/templatetags/data_helpers.py
+++ b/aleksis/core/templatetags/data_helpers.py
@@ -51,14 +51,3 @@ def parse_json(value: Optional[str] = None) -> Union[dict, None]:
     if not value:
         return None
     return json.loads(value)
-
-
-@register.simple_tag(takes_context=True)
-def build_badge(context: dict, item: dict) -> Any:
-    """Get menu badge content from django-menu-generator dict."""
-    request = context["request"]
-    badge = item.get("badge")
-    if callable(badge):
-        return badge(request)
-    else:
-        return badge
diff --git a/aleksis/core/views.py b/aleksis/core/views.py
index 28d0bec4bfe509ce7da93935f910fe020c67b062..610f84c8d1bec7c0ce22b2df785caed12a2066cc 100644
--- a/aleksis/core/views.py
+++ b/aleksis/core/views.py
@@ -480,14 +480,6 @@ def edit_group(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse:
     return render(request, "core/group/edit.html", context)
 
 
-@pwa_cache
-@permission_required("core.manage_data_rule")
-def data_management(request: HttpRequest) -> HttpResponse:
-    """View with special menu for data management."""
-    context = {}
-    return render(request, "core/management/data_management.html", context)
-
-
 @method_decorator(pwa_cache, name="dispatch")
 class SystemStatus(PermissionRequiredMixin, MainView):
     """View giving information about the system status."""
diff --git a/pyproject.toml b/pyproject.toml
index 3afd55d7fd019a47d912932f3607e94f49a26095..c23f687049b23d6740f4e977cd6e4183aa7c8fb1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -58,7 +58,6 @@ secondary = true
 python = "^3.9"
 Django = "^4.1"
 django-any-js = "^1.1"
-django-menu-generator-ng = "^1.2.3"
 django-tables2 = "^2.1"
 django-phonenumber-field = {version = "^6.1", extras = ["phonenumbers"]}
 django-sass-processor = "1.2.2"