diff --git a/src/plainui/jinja2/plainui/base.html b/src/plainui/jinja2/plainui/base.html
index 853fc30cd1ac7529f6fdca1c6f6880506273f40c..a7f6dcf1e65e9d2422e784d3b4079c64a9d0073f 100644
--- a/src/plainui/jinja2/plainui/base.html
+++ b/src/plainui/jinja2/plainui/base.html
@@ -2,12 +2,16 @@
 {% import "plainui/components/title.html" as titleMacro with context %}
 {% import "plainui/components/header_buttons.html" as hbtns with context %}
 
-{% macro menuitem(label, icon, active) -%}
+{% macro menuitem(item) -%}
+{% set active = item.url and request.path.startswith(item.url) %}
 <li class="nav-item">
-    <a href="#" class="nav-link {% if active %}active{% else %}text-white{% endif %} d-flex gap-2 align-items-center">
-        <i class="bi bi-{{ icon }}"></i>
+    <a
+        href="{{ item.url }}"
+        class="nav-link {% if active %}active{% else %}text-white{% endif %} d-flex gap-2 align-items-center"
+        title="{{ item.title }}">
+        <i class="bi bi-{{ item.icon }}"></i>
         <span>
-            {{ label }}
+            {{ item.label }}
         </span>
     </a>
 </li>
@@ -158,49 +162,18 @@
 
                 <div class="overflow-y-scroll" style="height: calc(100vh - 172px);">
                     <div class="p-3 pt-0">
+                        {% for category in conf.get_navigation_tree() %}
                         <span class="navbar-text">
                             Irgendwas
                         </span>
-                        <ul class="nav nav-pills flex-column mb-auto">
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill', True) }}
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                        </ul>
-
-                        <hr>
 
-                        <span class="navbar-text">
-                            Besucherinformationen
-                        </span>
                         <ul class="nav nav-pills flex-column mb-auto">
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
+                            {% for item in category.children %}
+                            {{ menuitem(item) }}
+                            {% endfor %}
                         </ul>
-
                         <hr>
-
-                        <span class="navbar-text">
-                            Quicklinks
-                        </span>
-                        <ul class="nav nav-pills flex-column mb-auto">
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                            {{ menuitem("Home", 'house-fill') }}
-                            {{ menuitem("Info", 'info-circle-fill') }}
-                        </ul>
+                        {% endfor %}
                     </div>
                 </div>
             </div>