Hutle vom Berg App Beta

 

Hutle vom Berg – Hutholz verschönern

Ich bin Hutle vom Berg.

Leise, klar, Schritt für Schritt — Chemnitz Hutholz verschönern.

Offline bereit

Zeig mir den Ort

Ich finde Flächen, wo Grün möglich ist: Parkplätze, Ränder, breite Wege.
Du gibst mir den Ort — ich helfe beim nächsten Schritt.
v1
Foto wird lokal gespeichert (als kleines Vorschaubild).
Tipp: Wenn du nur grob weißt wo es ist, reicht „neben …“ — wir machen es später exakt.

1) Ich prüfe: geht das hier wirklich?

offen
Verkehr / Sicherheit: Sichtachsen, keine Stolperstellen, keine Einfahrten blockieren.
Wem gehört’s grob? Stadt / Wohnungsgenossenschaft / privat (wenn unklar: notieren).
Wasser: Gibt’s Regenablauf, Dachkante, Nähe zu Wasserquelle oder Sammelmöglichkeit?

2) Ich schlage essbare Lösungen vor

offen
Wähle eine Richtung — Hutle hält’s simpel.

3) Ich helfe beim Antrag

offen
Kontakt: Wer ist vor Ort zuständig (z. B. Stadtteilmanagerin / Stadt / Eigentümer)?
Skizze/Plan: Wo genau, wie groß, was kommt hin (kurz).
Mitmacher: 2–5 Personen benennen (oder „offen, wird gesammelt“).
Der Text ist bewusst leise formuliert. Du kannst ihn in eine Mail oder ein Formular kopieren.
2) manifest.json { „name“: „Hutle vom Berg – Hutholz verschönern“, „short_name“: „Hutle“, „description“: „Orte finden, prüfen, essbare Lösungen vorschlagen, Antragshilfe – leise, klar, Schritt für Schritt.“, „start_url“: „./index.html“, „scope“: „./“, „display“: „standalone“, „background_color“: „#0b1220“, „theme_color“: „#0f172a“, „icons“: [ { „src“: „./icons/icon-192.png“, „sizes“: „192×192“, „type“: „image/png“ }, { „src“: „./icons/icon-512.png“, „sizes“: „512×512“, „type“: „image/png“ } ] } 3) service-worker.js (Offline Cache) const CACHE_NAME = „hutle-pwa-v1“; const ASSETS = [ „./“, „./index.html“, „./manifest.json“, „./service-worker.js“, „./icons/icon-192.png“, „./icons/icon-512.png“ ]; self.addEventListener(„install“, (event) => { event.waitUntil( caches.open(CACHE_NAME).then((cache) => cache.addAll(ASSETS)) ); self.skipWaiting(); }); self.addEventListener(„activate“, (event) => { event.waitUntil( caches.keys().then((keys) => Promise.all(keys.map((k) => (k === CACHE_NAME ? null : caches.delete(k)))) ) ); self.clients.claim(); }); self.addEventListener(„fetch“, (event) => { event.respondWith( caches.match(event.request).then((cached) => cached || fetch(event.request)) ); });