diff --git a/src/fellchensammlung/templates/fellchensammlung/styleguide.html b/src/fellchensammlung/templates/fellchensammlung/styleguide.html
new file mode 100644
index 0000000..a0cd98b
--- /dev/null
+++ b/src/fellchensammlung/templates/fellchensammlung/styleguide.html
@@ -0,0 +1,102 @@
+{% extends "fellchensammlung/base_generic.html" %}
+{% load i18n %}
+{% load static %}
+{% block title %}<title>{% translate "Styleguide" %}</title>{% endblock %}
+
+{% block content %}
+    <h1>This is a heading</h1>
+    <p>And this is a short paragraph below</p>
+    <div class="container-cards">
+        <h2>Card Containers</h2>
+        <div class="card">
+            <h3>I am a card</h3>
+            <p>Cards are responsive. Use them to display multiple items of the same category</p>
+        </div>
+        <div class="card">
+            <h3>Photos</h3>
+            <p>Cards are responsive. Use them to display multiple items of the same category</p>
+            <img src="{% static 'fellchensammlung/img/example_rat_single.png' %}" alt="A rat sitting on a wooden house">
+        </div>
+    </div>
+    <div class="container-cards">
+        <form class="form-search card half" method="post">
+            <label for="inputA">Input Alpha</label>
+            <input name="inputA" maxlength="200" id="inputA">
+            <label for="inputB">Beta</label>
+            <input name="inputB" maxlength="200" id="inputB">
+            <label for="id_location_string">Ort</label>
+            <input name="location_string" id="id_location_string">
+            <ul id="results"></ul>
+            <div class="container-edit-buttons">
+                <button class="btn" type="submit" value="search" name="search">
+                    <i class="fas fa-search"></i> {% trans 'Suchen' %}
+                </button>
+                {% if searched %}
+                    {% if subscribed_search %}
+                        <button class="btn" type="submit" value="{{ subscribed_search.pk }}"
+                                name="unsubscribe_to_search">
+                            <i class="fas fa-bell-slash"></i> {% trans 'Suche nicht mehr abonnieren' %}
+                        </button>
+                    {% else %}
+                        <button class="btn" type="submit" name="subscribe_to_search">
+                            <i class="fas fa-bell"></i> {% trans 'Suche abonnieren' %}
+                        </button>
+                    {% endif %}
+                {% endif %}
+            </div>
+            {% if place_not_found %}
+                <p class="error">
+                    {% trans 'Ort nicht gefunden' %}
+                </p>
+            {% endif %}
+        </form>
+        <div class="card half">
+            {% include "fellchensammlung/partials/partial-map.html" %}
+        </div>
+    </div>
+    {% include "fellchensammlung/lists/list-adoption-notices.html" %}
+
+    <script>
+        const locationInput = document.getElementById('id_location_string');
+        const resultsList = document.getElementById('results');
+        const placeIdInput = document.getElementById('place_id');
+
+        locationInput.addEventListener('input', async function () {
+            const query = locationInput.value.trim();
+
+            if (query.length < 3) {
+                resultsList.innerHTML = ''; // Don't search for or show results if input is less than 3 characters
+                return;
+            }
+
+            try {
+                const response = await fetch(`{{ geocoding_api_url }}/?q=${encodeURIComponent(query)}&limit=5&lang=de`);
+                const data = await response.json();
+
+                if (data && data.features) {
+                    resultsList.innerHTML = ''; // Clear previous results
+
+                    const locations = data.features.slice(0, 5); // Show only the first 5 results
+
+                    locations.forEach(location => {
+                        const listItem = document.createElement('li');
+                        listItem.classList.add('result-item');
+                        listItem.textContent = geojson_to_summary(location);
+
+                        // Add event when user clicks on a result location
+                        listItem.addEventListener('click', () => {
+
+                            locationInput.value = geojson_to_searchable_string(location); // Set input field to selected location
+                            resultsList.innerHTML = ''; // Clear the results after selecting a location
+                        });
+
+                        resultsList.appendChild(listItem);
+                    });
+                }
+            } catch (error) {
+                console.error('Error fetching location data:', error);
+                resultsList.innerHTML = '<li class="result-item">Error fetching data. Please try again.</li>';
+            }
+        });
+    </script>
+{% endblock %}
diff --git a/src/fellchensammlung/urls.py b/src/fellchensammlung/urls.py
index 954449f..4b19527 100644
--- a/src/fellchensammlung/urls.py
+++ b/src/fellchensammlung/urls.py
@@ -108,5 +108,6 @@ urlpatterns = [
     ## TECHNICAL ##
     ###############
     path("sitemap.xml", sitemap, {"sitemaps": sitemaps}, name="django.contrib.sitemaps.views.sitemap"),
+    path("styleguide", views.styleguide, name="styleguide"),
 
 ]
diff --git a/src/fellchensammlung/views.py b/src/fellchensammlung/views.py
index f50814b..0bdf45f 100644
--- a/src/fellchensammlung/views.py
+++ b/src/fellchensammlung/views.py
@@ -633,3 +633,9 @@ def export_own_profile(request):
     ANs_as_json = serialize('json', ANs)
     full_json = f"{user_as_json}, {ANs_as_json}"
     return HttpResponse(full_json, content_type="application/json")
+
+
+def styleguide(request):
+
+    context = {"geocoding_api_url": settings.GEOCODING_API_URL, }
+    return render(request, 'fellchensammlung/styleguide.html', context=context)