Animierte Infografik zum Bienenatlas — Hexagon-Gitter für 121 Gemeinden, vier Datenquellen-Kennzahlen und Datenfluss-Diagramm vor dunklem Hintergrund
11 min read

Bienenatlas — vom Hof in Mehrum zur Plattform für 121 Gemeinden

#Astro #Nano Banana #GBIF #DWD Phänologie #OpenStreetMap #Netlify #SEO #AEO #Datenjournalismus

Meine Nichte Meicken hat einen Hof in Mehrum, einem Ortsteil von Hohenhameln im Landkreis Peine. Sie wollte wissen, wie es konkret bei ihr vor Ort um die Bienen steht — nicht aus dritter Hand, nicht aus dem Garten-Magazin, sondern aus wissenschaftlich verifizierbaren Daten. Daraus wurde innerhalb von zehn Tagen bienenatlas.de: ein Echtzeit-Dashboard für die Wildbienen-Lage in 121 deutschen Gemeinden, mit vier Datenquellen, 235 Bildern, und einem rigorosen UWG-§5-Disziplin-Versprechen — keine erfundenen Zahlen, keine Marketing-Adjektive.

134
Indexierbare URLs
121
Gemeinden mit eigenem Dashboard
235
Generierte Bilder
4
Datenquellen

V1: ein Dashboard für einen Hof

Die erste Iteration war pragmatisch klein: ein einziges Astro-Dashboard, das via GBIF-API für die Mehrum-Bbox Apidae-Beobachtungen zog (Familie Apidae, taxonKey 4334), Top-Arten zählte, die letzten 30 Tage mit dem Vorjahres-Fenster verglich, und die Funde als Cards rendete. Keine Datenbank, kein State, kein Build-Schritt für Daten — alles SSR bei jedem Request, mit fünf Minuten Edge-Cache auf Netlify. Sechs Tage von der ersten Skizze zur Live-Version, Sprint MEICKEN-MVP-001 bis MVP-012.

Meicken sah das auf dem Handy beim Familien-Frühstück und fragte, was eine “Bbox” sei. Das war der Moment, in dem klar wurde: das funktioniert für sie als Hof-Werkzeug, aber als Plattform-Idee skaliert es nicht. Niemand außerhalb von Mehrum würde bei ?gemeinde=hohenhameln landen. Es war ein Hof-Tool, kein Bienen-Atlas.

Der Pivot zu 121 Gemeinden

Der Umbau begann mit einer einfachen Frage: wenn jede deutsche Gemeinde ihre eigene URL hätte, was wäre der Aufwand? Die Antwort ist die Architektur, die heute steht:

  • / — nationaler Landing mit aggregierten Daten über alle Gemeinden
  • /<bundesland>/ — 16 Bundesland-Hubs (/niedersachsen/, /bayern/, …) mit regionalen Daten und Liste aller Gemeinden des Landes
  • /<bundesland>/<gemeinde>/ — 121 individuelle Gemeinde-Dashboards, identisch zur V1 aber mit lokalen Daten

Die Datei src/data/regions.ts enthält für jede Gemeinde einen ags-Slug, den name, den land-Code und eine bbox. Astro 6 erlaubt SSR-Dynamic-Routes ohne getStaticPaths() — die Datei src/pages/[bundesland]/[gemeinde]/index.astro löst beim Request den Slug-Paar zu einer Region auf, holt die GBIF-Daten für die bbox, rendert die Seite, cached fünf Minuten am Edge. Wenn ein User /bayern/halle/ aufruft (Halle liegt in Sachsen-Anhalt, nicht Bayern), 301-canonicalisiere ich auf /sachsen-anhalt/halle/ statt 404 zu liefern.

Vier Datenquellen, pro Gemeinde aggregiert

Das größte Risiko bei 134 Seiten mit gleichem Layout ist Googles Helpful Content Update — near-duplicate-Inhalte werden demotiert. Die Lösung ist nicht weniger Seiten, sondern mehr genuiner Inhalt pro Seite. Vier Datenquellen geben jeder Gemeinde-Seite einzigartige Inhalte:

1. GBIF (Global Biodiversity Information Facility)

Wissenschaftlicher Aggregator für Funddaten. REST-API ohne Auth, gefiltert auf Familie Apidae + Deutschland + Gemeinde-Bbox. Pro Seite: Gesamt-Datensätze, häufigste Apidae-Arten (Facet-API), Jahresverlauf 3-Jahre, 30-Tage-Fenster vs. Vorjahr, Einzelfund-Cards mit Foto-Lizenz-Filter (nur CC0 / CC BY / CC BY-SA wird kommerziell-sicher gerendert).

2. DWD Phänologie (Deutscher Wetterdienst Climate Data Center)

Langjährige Blühbeginn-Mittel für 7 bienenrelevante Pflanzen (Salweide, Schlehe, Löwenzahn, Apfel, Holunder, Sommerlinde, Heidekraut). Die Datei scripts/build-phaenologie-context.mjs liest die annual_reporters/historical/-CSVs von opendata.dwd.de (cp1252-kodiert, semicolon-separated, eor-Endmarker), berechnet die Haversine-Distanz zur nächsten Station, und schreibt src/data/phaenologie-context.json. Ergebnis: 121/121 Gemeinden mit Nearest-Station-Median 2,0 km, 769 (Station × Art) Durchschnitte. Hohenhameln bekommt die DWD-Station Soßmar (0,6 km Luftlinie) mit 14-30 Jahren Daten pro Pflanze.

3. OpenStreetMap Overpass — Naturschutzgebiete

Pro Gemeinde-Bbox eine Query auf boundary=protected_area + leisure=nature_reserve + boundary=national_park. Klassifiziert nach protect_class zu NP/NSG/FFH/LSG, dedupliziert, max. 5 pro Gemeinde. 119 von 121 Gemeinden haben mindestens ein Schutzgebiet aus OSM, gesamt 559 Areas (29 NP, 507 NSG, 7 LSG, 16 sonstige). Inklusive Wikipedia- und offizielle Website-Links wenn OSM die Tags hat.

4. NABU naturgucker + Wikipedia (per-Gemeinde-Kontext)

Wikipedia-Infobox-Scrape pro Gemeinde: Postleitzahl, Landkreis, Einwohner-Stand, Höhe ü. NN, Fläche. Verifiziert über de.wikipedia.org direkt mit Quellen-Link. Plus: NABU-Landesverband-Webseite pro Bundesland (zero-trust verifiziert, 14 NABU + Bayern→LBV + Saarland→nabu-saar.de), Naturschutzbehörde-URL (13 Ministerien direkt, BE+SL Bot-Block → WebFetch-Querverifikation), Insektenschutz-Aktionsplan-Status (10 vorhanden, 6 keiner-bekannt — ehrlich gekennzeichnet).

235 Bilder mit Nano Banana

Google’s Gemini 2.5 Flash Image (intern “Nano Banana”) generiert 1024×1024-PNGs für ca. 0,039 USD pro Bild (Standard-Tier). Über fünf Image-Generation-Sprints sind 235 Illustrationen entstanden, geclusterte mit konsistenter Aquarell-Ästhetik:

SetAnzahlKosten
National hero + OG card2$0,08
Bundesland heroes (16)16$0,62
Gemeinde heroes (121)121$4,72
DIY heroes (5) + Schritt-für-Schritt (16)21$0,82
/about + /404 + 3 Social variants5$0,20
Naturschutzgebiet-Flagships (16) + Apidae-Gattung-Moodboards (10)26$1,02
Per-Bundesland 1:1-Accents (16)16$0,62
5 Explanatory-Scenes + 3 panoramic Dividers8$0,32
8 Logo-Concepts8$0,31
Total223$8,71

Plus 12 favicon/PWA-Icons via sharp (programmatisch aus favicon.svg) — kostenlos. Gesamter Image-Generation-Etat: weniger als 9 Euro gegen das €260-Free-Trial-Credit von Google Cloud (das beim Aktivieren der Billing-API mitkommt).

Drei Lessons aus dem Nano-Banana-Workflow:

  1. Typografie ist unzuverlässig. Bei den 8 Logo-Concepts hat das Modell durchgängig “Bieneatlas” statt “Bienenatlas” gerendert — der zweite n ist verschwunden. Image-Modelle können Text fast nicht. Logos müssen vektoriell mit echter Typo finalisiert werden.
  2. Konsistenz braucht einen Style-String. Ein wiederverwendbarer Prompt-Suffix garantiert konsistente Optik über alle Generationen: Painted in soft watercolor with a vintage natural-history-book aesthetic, warm honey-amber and forest-green palette. Soft golden-hour light. Hand-illustrated, not photoreal. No text, no labels, no people. Jede Generation referenziert diesen Block.
  3. Rate-Limits + Free-Tier-Wechsel sind ein Stolperstein. Gemini-2.5-Flash-Image hat keinen kostenlosen Tier mehr — bei Account-Aktivierung muss Billing scharf gestellt werden. Bei Free-Trial-Credit fließt das Guthaben automatisch. Mein Generator-Script (scripts/nano-banana-gen.mjs) hat 429-Retry + Backoff eingebaut, das retryDelay-Feld aus dem Gemini-Error-Body parsed.

Sedcards mit voller Datentiefe

Jede Apidae-Art bekommt einen Steckbrief unter /art/<gbif-speciesKey>/. Diese Seite ist die datendichteste der Plattform — Ziel ist ein wissenschaftliches Referenz-Werkzeug mit visueller Klarheit gleichzeitig. Das Layout ist zweispaltig (Hauptspalte + Sticky-Sidebar) mit fünf Sidebar-Karten:

  1. Verwandte Arten — selber Gattungs-Lookup über GBIF Search-API
  2. Live-Phänologie heute — vergleicht heutigen Day-of-Year gegen den langjährigen Blühbeginn-Mittel der lokalen DWD-Station. Pulsiert sanft wenn “aktiv jetzt”, prefers-reduced-motion-safe
  3. Verwechselbar mit — kuratierte Verwechslungspartner aus Westrich (2018), 9 Arten Hand-verifiziert, keine Fabrikationen
  4. Wo dokumentiert — Top-5-Bundesländer aus GBIF stateProvince-Facet, verlinkt zur entsprechenden Gemeinde
  5. Wissenschaftliche Quellen — 8 WebFetch-verifizierte externe URLs. Das Bundesamt für Naturschutz hat null Bienen-Steckbriefe in der Artenportraits-Datenbank — ehrlich weggelassen statt fabriziert. Westrich.de lieferte ECONNREFUSED beim Probe — als gedrucktes Buch zitiert, nicht als URL. wildbiene.com und Wildbienen-Kataster Stuttgart wurden als Universal-Links bestätigt.

Plus drei neue Hauptspalten-Sektionen pro Sedcard: vollständige taxonomische Klassifikation (<dl>), Originalbeschreibung mit Autor + Jahr (nur wenn GBIF die hat — sonst weglassen), Habitat- und Phänologie-Quer-Schnitt.

SEO + AEO-Architektur

Ein systematisches SEO-Audit der Plattform ergab 24 Findings (2 Blocker, 8 Hoch, 9 Medium, 5 Low) — 14 davon inline behoben:

  • robots.txt ursprünglich blockierte GPTBot, ChatGPT-User, anthropic-ai, ClaudeBot, PerplexityBot, Google-Extended — alle für AEO geblockt. Nach expliziter Ratifizierung umgekehrt auf User-agent: * Allow: /. Begründung dokumentiert im Header: Inhalte sind aus offenen Datenquellen (CC-BY GBIF, ODbL OSM, DWD-Open), nichts IP-schutzbedürftig, AEO-Citations in ChatGPT/Claude/Perplexity sind 2026 der wichtigste Traffic-Hebel.
  • llms.txt neu angelegt nach llmstxt.org-Spec — gibt AI-Crawlern eine kuratierte Übersicht des Sites mit UWG-§5-Quellen-Disziplin-Aussage
  • HowTo-Schema auf den 4 DIY-Anleitungen (Insektenhotel, Nisthilfen, Wildblumen-Streifen, Glyphosat-Ersatz) mit Schritt-Listen, Materialien, Werkzeugen, Dauer-Angaben — qualifiziert für Google AI Overview Snippets
  • Place-Schema auf jeder Gemeinde-Seite mit @id und containedInPlace-Pointer auf den Bundesland-Hub — Site-interner Entity-Graph
  • Cross-Gemeinde-Sibling-Block auf jeder der 121 Gemeinde-Seiten verlinkt zu allen Schwester-Städten im selben Bundesland — schließt die größte interne Verlinkungs-Lücke
  • Sitemap-Prioritäten je Routen-Typ via serialize-Callback: 1.0 Landing, 0.9 Hubs, 0.8 Gemeinden, 0.7 DIY, 0.3 legal

Parallel dazu kamen 62 neue interne <a href>-Links über 8 Dateien hinzu. Die kritische Lücke war /art/<speciesKey>/ mit null internen Links — geschlossen auf neun. Jede Seite hat jetzt zwischen 8 und 14 interne Links plus eine “Beobachtungen in deiner Gegend”-CTA-Box, die auf die Pilot-Gemeinde oder die Bundesland-Karte führt.

Domain-Setup

Zwei kuratierte Domains: bienenatlas.de als kanonischer Hauptdomain plus wildbienenkarte.de als SEO-Alias mit 301-Redirect auf den primären Host. Mail bleibt vom Web getrennt — eigene MX-Konfiguration, unabhängig von der Web-Auslieferung.

Der DNS-Zonen-Cleanup war chirurgisch: nur den Apex auf den Web-Host umstellen, AAAA-Records entfernen wo nicht gebraucht, www als CNAME setzen, SOA-Serial bumpen — sonst alles unverändert. Mail-Records (MX, SRV, DKIM, SPF) bleiben intakt. SSL-Zertifikate provisionierten sich innerhalb von Minuten für alle vier Hostnames (Apex und www pro Domain).

Vier Host-Redirects sorgen dafür, dass alle Alias-Hostnames auf die kanonische Apex-Domain landen — kein Duplicate-Content-Risiko. Die Path-Splat-Substitution sorgt dafür, dass /niedersachsen/hohenhameln/ auf jedem Alias als 301 auf bienenatlas.de/niedersachsen/hohenhameln/ landet.

Google Search Console: sc-domain:bienenatlas.de als Domain-Property registriert via DNS-TXT-Verifikation, Sitemap eingereicht (146 URLs, 0 Errors, 0 Warnings).

Was als nächstes kommt

Drei Sprints stehen offen:

  1. Echte Indexierung beobachten. Google hat das Sitemap-Index akzeptiert und 146 URLs zur Crawl-Queue gestellt. Wann wieviele indexiert werden, ist nicht vorhersagbar — typisch 1-4 Wochen bei einer neuen Domain. Reindex-Submissions kommen für die Top-20 Gemeinden in Phase 2.
  2. Mehr Gemeinden. Aktuell 121 — Deutschland hat etwa 11.000 Gemeinden. Die Bbox-Definitionen sind manuell kuratiert; ein Skript könnte OSM-Nominatim-Anfragen automatisieren, um die Liste auf 500 oder 1.000 Gemeinden zu erweitern. Trade-off: jede neue Gemeinde braucht ein generiertes Hero-Bild (Nano-Banana), Wikipedia-Enrichment-Run, OSM-Naturschutz-Query — pro 100 neuer Gemeinden circa $4 Image-Kosten plus 30 Minuten Pipeline-Lauf.
  3. Logo-Finalisierung. Acht Concepts sind generiert; die finale Wordmark wird vektoriell mit Inter oder Söhne als CSS-Layer über dem gewählten Mark gesetzt. Das ist ein Figma-Sprint, kein Code-Sprint.

Stack

Astro 6.3
Framework + SSR
Tailwind 4
Styling + Tokens
Netlify
Hosting + Edge + SSL
GBIF
Apidae-Funddaten
DWD CDC
Phänologie-Mittel
OSM Overpass
Naturschutzgebiete
Gemini 2.5 Flash Image
Illustrationen
sharp
PWA-Icons

Repository (privat, Wender Media Brand Property License): arnoldwender/wm-brand-bienenatlas. Live: bienenatlas.de.

Was hier funktioniert, ist nicht die Technologie — die Komponenten sind alle Standard. Was funktioniert, ist die redaktionelle Disziplin: keine Aussage ohne zitierte Quelle, jede URL händisch verifiziert, jede Schätzung als solche gekennzeichnet, jeder Aktionsplan-Status ehrlich zwischen vorhanden und keiner-bekannt differenziert. Das ist das, was Meicken am Anfang wollte — und das ist das, was am Ende auch 121 anderen Gemeinden helfen kann.