Recht & SEO aktualisiert: Datenschutz v4 (iOS-App Ban Yaro Go: WeatherKit/HealthKit/Hintergrund-Standort, DWD/RainViewer-Radar, Self-Hosted-Karten+Offline), AGB v3 (Abos nur via banyaro.app, kein App-Store-IAP), llms.txt (iOS-App, MapLibre/PMTiles, v1.6.0), v1277

This commit is contained in:
rene 2026-06-09 17:49:59 +02:00
parent 580eaec1fd
commit 43b6292d08
9 changed files with 109 additions and 29 deletions

View file

@ -20,7 +20,7 @@ _Stand: 2026-06-09_
| Verzeichnisse / Listings | ⬜ offen | Product Hunt, PWA-Dirs, Google Business EBE |
| SEO / KI-Auffindbarkeit | 🟡 technisch optimiert | Backlinks (Blog-Testberichte) |
| Landing Page | 🟡 Redesign-Briefing da | 3 Einstiege, Outcomes statt Features |
| App Store (iOS) | 🟢 **LIVE im App Store** (09.06., Apple-ID 6775012705) | Landing bewirbt „Ban Yaro Go" (Hero + iOS-Abschnitt `#ios-app`) + Profil-Hinweis (Settings → App installieren). Offizielles „Laden im App Store"-Badge nachgebaut als `/img/appstore-badge-de.svg` (brauner Rand #C4843A). **Auf STAGING live (v1275)** — Produktion (`make deploy`) erst auf Renés Go |
| App Store (iOS) | 🟢 **LIVE im App Store** (09.06., Apple-ID 6775012705) | Landing bewirbt „Ban Yaro Go" (Hero + iOS-Abschnitt `#ios-app`) + Profil-Hinweis (Settings → App installieren). Offizielles „Laden im App Store"-Badge nachgebaut als `/img/appstore-badge-de.svg` (brauner Rand #C4843A). **LIVE auf Produktion v1276** (banyaro.app/.de, 09.06.) — Hero-Badge bewusst weggelassen (sonst Eindruck: ganze App im Store) |
| Play Store (Android) | 🔴 ON HOLD | 12 Closed-Tester / 14 Tage fehlen |
| Merch / NFC-Halsband | 💡 recherchiert | 20 Tags für Beta (~33 €) |

View file

@ -1 +1 @@
1276
1277

View file

@ -86,14 +86,14 @@
<title>Ban Yaro</title>
<!-- Theme + theme-color Statusleiste vor CSS setzen -->
<script src="/js/boot-early.js?v=1276"></script>
<script src="/js/boot-early.js?v=1277"></script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1276">
<link rel="stylesheet" href="/css/layout.css?v=1276">
<link rel="stylesheet" href="/css/components.css?v=1276">
<link rel="stylesheet" href="/css/utilities.css?v=1276">
<link rel="stylesheet" href="/css/lists.css?v=1276">
<link rel="stylesheet" href="/css/design-system.css?v=1277">
<link rel="stylesheet" href="/css/layout.css?v=1277">
<link rel="stylesheet" href="/css/components.css?v=1277">
<link rel="stylesheet" href="/css/utilities.css?v=1277">
<link rel="stylesheet" href="/css/lists.css?v=1277">
</head>
<body>
@ -620,11 +620,11 @@
<div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1276"></script>
<script src="/js/ui.js?v=1276"></script>
<script src="/js/app.js?v=1276"></script>
<script src="/js/worlds.js?v=1276"></script>
<script src="/js/offline-indicator.js?v=1276"></script>
<script src="/js/api.js?v=1277"></script>
<script src="/js/ui.js?v=1277"></script>
<script src="/js/app.js?v=1277"></script>
<script src="/js/worlds.js?v=1277"></script>
<script src="/js/offline-indicator.js?v=1277"></script>
<!-- Feature-Seiten werden lazy geladen -->
@ -634,7 +634,7 @@
<!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) -->
<script src="/js/boot.js?v=1276"></script>
<script src="/js/boot.js?v=1277"></script>
</body>

View file

@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung.
============================================================ */
const APP_VER = '1276'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VER = '1277'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator)
window.APP_VERSION = APP_VERSION;

View file

@ -60,6 +60,14 @@ window.Page_agb = (() => {
Zuchtkartei, Stammbaum, Wurfverwaltung und Züchterprofil.
</li>
</ul>
<p style="${S.p};margin-top:var(--space-3)">
Die native iOS-App <strong>Ban Yaro Go"</strong> ist kostenlos und dient als
Begleit-App für unterwegs. Kostenpflichtige Abonnements werden
<strong>ausschließlich über banyaro.app</strong> abgeschlossen und per Überweisung
bezahlt <strong>nicht</strong> über einen App-Store-Kauf (kein In-App-Kauf).
Pro- und Züchter-Funktionen werden mit deinem banyaro-Konto freigeschaltet und
stehen damit auch in der iOS-App zur Verfügung.
</p>
<p style="${S.p};margin-top:var(--space-3)">
Änderungen am Funktionsumfang werden vorab per E-Mail angekündigt. Wesentliche
Leistungsminderungen berechtigen zur außerordentlichen Kündigung.
@ -182,7 +190,7 @@ window.Page_agb = (() => {
</p>`)}
<p style="font-size:var(--text-xs);color:var(--c-text-muted);margin:0">
Stand: Mai 2026 · Version 2
Stand: Juni 2026 · Version 3
</p>
</div>

View file

@ -169,9 +169,14 @@ window.Page_datenschutz = (() => {
<p style="${S.p}">
Die Wetter-Funktion übermittelt auf Wunsch deine GPS-Koordinaten serverseitig an
<strong>Open-Meteo</strong> (Österreich, DSGVO-konform) für die Wettervorhersage.
Für Wetter-Kartenlayer (Regenradar, Temperaturen) werden Kacheln von
<strong>OpenWeatherMap</strong> (OpenWeather Ltd., UK/USA) geladen dabei wird
dein Browser direkt kontaktiert. Es werden keine Account-Daten übermittelt.
Für das <strong>Regenradar</strong> nutzen wir primär die offenen Radardaten des
<strong>Deutschen Wetterdienstes (DWD)</strong>. Diese werden serverseitig von unserem
Server in Deutschland abgerufen und als Kartenkacheln bereitgestellt dein Gerät
kontaktiert den DWD dabei nicht direkt. Steht das DWD-Radar nicht zur Verfügung,
werden ersatzweise Radarkacheln von <strong>RainViewer</strong> (USA) geladen; dabei
wird dein Browser direkt kontaktiert. Für weitere Wetter-Kartenlayer (z. B. Temperatur)
können Kacheln von <strong>OpenWeatherMap</strong> (OpenWeather Ltd., UK/USA) direkt im
Browser geladen werden. In allen Fällen werden keine Account-Daten übermittelt.
Rechtsgrundlage: Einwilligung gem. Art. 6 Abs. 1 lit. a DSGVO.
</p>
<p style="${S.p};margin-top:var(--space-3)">
@ -189,7 +194,26 @@ window.Page_datenschutz = (() => {
style="${S.a}">openweathermap.org/privacy-policy</a> ·
OpenStreetMap/Nominatim:
<a href="https://osmfoundation.org/wiki/Privacy_Policy" target="_blank" rel="noopener"
style="${S.a}">osmfoundation.org</a>
style="${S.a}">osmfoundation.org</a> ·
DWD:
<a href="https://www.dwd.de/DE/service/datenschutz/datenschutz_node.html" target="_blank" rel="noopener"
style="${S.a}">dwd.de</a> ·
RainViewer:
<a href="https://www.rainviewer.com/privacy.html" target="_blank" rel="noopener"
style="${S.a}">rainviewer.com</a>
</p>`)}
${sec('Kartenmaterial &amp; Offline-Karten', `
<p style="${S.p}">
Die Basiskarte besteht aus Vektordaten von <strong>OpenStreetMap</strong>, die wir auf
unserem eigenen Server in Deutschland aufbereiten und ausliefern (Vektor-Tiles im
PMTiles-Format). Für die Basiskarte werden daher <strong>keine externen
Kartenanbieter</strong> kontaktiert die Kartenkacheln kommen von unserem Server.
</p>
<p style="${S.p};margin-top:var(--space-3)">
Optional kannst du Kartenausschnitte für die <strong>Offline-Nutzung</strong>
herunterladen. Diese werden ausschließlich <strong>lokal auf deinem Gerät</strong>
gespeichert und nicht an Dritte übermittelt.
</p>`)}
${sec('Routenvorschläge (OpenRouteService)', `
@ -215,6 +239,40 @@ window.Page_datenschutz = (() => {
style="${S.a}">openrouteservice.org/privacy-policy</a>
</p>`)}
${sec('Ban Yaro Go — native iOS-App', `
<p style="${S.p}">
<strong>Ban Yaro Go</strong> ist die optionale native iOS-Begleit-App zu banyaro.app.
Sie nutzt dasselbe banyaro-Konto und denselben Server in Deutschland es gelten
daher zusätzlich zu den oben beschriebenen Verarbeitungen folgende iOS-spezifische
Punkte:
</p>
<ul style="${S.ul}">
<li><strong>Hintergrund-Standort:</strong> Nur während einer von dir aktiv gestarteten
Gassi-Aufzeichnung erfasst die App deine GPS-Position auch bei gesperrtem Display, um
den Track fortzuführen. Außerhalb einer aktiven Aufzeichnung wird im Hintergrund kein
Standort erfasst. Der Track wird lokal auf dem Gerät gesichert und nur dann in dein
Konto übertragen, wenn du die Tour speicherst.</li>
<li><strong>Apple WeatherKit:</strong> Die Wetterfunktion der App bezieht Vorhersagedaten
über Apple WeatherKit (Apple Inc., USA). Dazu werden Standortkoordinaten an Apple
übermittelt keine Account-Daten.</li>
<li><strong>Apple Health (HealthKit):</strong> Nur auf deinen ausdrücklichen Wunsch
schreibt die App abgeschlossene Touren als Walking"-Workout inkl. Route in Apple
Health. Es werden <strong>keine</strong> Gesundheitsdaten aus Apple Health gelesen.
Diese Daten verbleiben auf deinem Gerät bzw. in deiner iCloud.</li>
<li><strong>Apple Maps:</strong> Zur Navigation (z. B. zu Gassi-Treffen) kann auf deinen
Wunsch Apple Maps geöffnet werden.</li>
<li><strong>GPX-Import:</strong> Aus anderen Apps geteilte GPX-Dateien werden lokal auf
dem Gerät verarbeitet; eine Übertragung erfolgt nur, wenn du die Tour speicherst.</li>
<li><strong>Push (APNs):</strong> Benachrichtigungen werden wie im Abschnitt
Push-Benachrichtigungen" beschrieben über den Apple Push Notification Service zugestellt.</li>
</ul>
<p style="${S.p};margin-top:var(--space-3)">
Rechtsgrundlage ist jeweils deine Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) bzw. die
Vertragserfüllung (Art. 6 Abs. 1 lit. b DSGVO). Apple-Datenschutz:
<a href="https://www.apple.com/legal/privacy/de-ww/" target="_blank" rel="noopener"
style="${S.a}">apple.com/legal/privacy</a>.
</p>`)}
${sec('Technische Speicherung', `
<p style="${S.p}">
Ban Yaro verwendet technisch notwendige Speichermechanismen für den Betrieb der App:
@ -343,7 +401,7 @@ window.Page_datenschutz = (() => {
</p>`)}
<p style="font-size:var(--text-xs);color:var(--c-text-muted);margin:0">
Stand: Mai 2026 · Version 3
Stand: Juni 2026 · Version 4
</p>
</div>

View file

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="light dark">
<script src="/js/landing-init.js?v=1276"></script>
<script src="/js/landing-init.js?v=1277"></script>
<title>Ban Yaro — Die Hunde-App für Deutschland, Österreich & Schweiz</title>
<meta name="description" content="Ban Yaro: Die kostenlose All-in-One Hunde-App für DACH. Tagebuch, Giftköder-Alarm, Training mit KI, Forum, Wurfbörse, Stammbaum, Inzucht-Check — DSGVO-konform, offline-fähig, direkt im Browser oder als native iPhone-App (Ban Yaro Go).">
<meta name="keywords" content="Hunde App, Hunde Community, Wurfbörse, Züchter, Welpen kaufen, Stammbaum Hund, Inzuchtkoeffizient, Hundezucht, Impfpass Hund, Giftköder Alarm, Gassi Community, Hundetraining App, Hunde Forum, Hunde KI, Hundefilm Datenbank, Welpen Marktplatz">

View file

@ -1,12 +1,14 @@
# Ban Yaro — Die deutschsprachige Hunde-Plattform für Hundebesitzer und Züchter
# https://banyaro.app
# Letzte Aktualisierung: 2026-05-14
# Letzte Aktualisierung: 2026-06-09
## Was ist Ban Yaro?
Ban Yaro (banyaro.app) ist eine deutschsprachige All-in-One Hunde-Plattform als Progressive Web App (PWA).
Gegründet 2026 in Ebersberg, Bayern. Entwickelt von René Degelmann.
Kein App Store, kein US-Konzern, DSGVO-konform, selbst gehostet in Deutschland.
Ohne App-Store-Zwang als PWA nutzbar — zusätzlich gibt es die kostenlose native iOS-App
„Ban Yaro Go" im App Store als Begleiter für unterwegs. Kein US-Konzern im Hintergrund,
DSGVO-konform, selbst gehostet in Deutschland.
Das Kern-Versprechen: "Alles rund um deinen Hund — von Welpe bis Opa."
@ -15,7 +17,9 @@ Ban Yaro richtet sich an zwei Zielgruppen, die nahtlos verzahnt sind:
- **Züchter**: professionelles Zucht-Management direkt in derselben App (Warteliste, Läufigkeit, Wurf, Stammbaum)
Ban Yaro ist im Freemium-Modell nutzbar. Die App ist auf allen Smartphones installierbar
(iOS und Android) direkt über den Browser — ohne App Store.
(iOS und Android) direkt über den Browser — ohne App Store. Für iPhone gibt es zusätzlich
die native App „Ban Yaro Go" (App Store), optimiert für unterwegs (GPS-Tracking im
Hintergrund, Apple Health, offline-fähig).
## Der Name „Ban Yaro"
@ -36,8 +40,8 @@ gegründet, mit eigenem Schutzrecht auf den Namen.
- Datenschutz: Vollständige DSGVO-konforme Erklärung unter https://banyaro.app/#datenschutz
- Keine Werbung, keine Datenweitergabe an Dritte, kein Tracking (Umami, cookieless)
- Kontakt: hallo@banyaro.app
- Keine App-Store-Abhängigkeit: Als PWA direkt installierbar, keine Gatekeeper
- Aktuelle Version: v1.5.1 (Mai 2026), SW by-v918
- Keine App-Store-Abhängigkeit: Als PWA direkt installierbar, keine Gatekeeper — die native iOS-App „Ban Yaro Go" ist ein optionaler Zusatz
- Aktuelle Version: v1.6.0 (Juni 2026)
## Zielgruppe
@ -180,7 +184,8 @@ Die Startseite für eingeloggte Nutzer zeigt:
- Progressive Web App (PWA) — installierbar ohne App Store
- Backend: Python/FastAPI + SQLite
- Frontend: Vanilla JS, kein Framework
- Karten: Leaflet.js + OpenStreetMap
- Karten: MapLibre GL + eigene Vektor-Tiles (PMTiles-Format, OpenStreetMap-Daten, self-hosted in Deutschland) — Offline-Karten zum Download
- Native iOS-App: Swift/SwiftUI („Ban Yaro Go"), Hintergrund-GPS, Apple WeatherKit, Apple HealthKit
- Hosting: Deutschland (DSGVO-konform)
- Analytics: Umami v2 (cookieless, DSGVO-konform)
- KI lokal: LM Studio (Gemma-4-31B)
@ -254,6 +259,15 @@ Die Startseite für eingeloggte Nutzer zeigt:
- **Dedizierte Züchter-Landing-Page**: https://banyaro.app/zuechter mit Erklärung aller Züchter-Features und Pricing.
- **Züchter-Kacheln in HUND-Welt**: Läufigkeit, Wurfverwaltung und Zuchtkartei sind als eigene Kacheln in der HUND-Navigation eingebunden — erkennbar am Z-Badge für Züchter-Features.
## Features ab v1.6.0 (Juni 2026)
- **Native iOS-App „Ban Yaro Go"** (App Store): Begleit-App für unterwegs. GPS-Tour-Aufzeichnung im Hintergrund (auch bei gesperrtem Display und während des Telefonierens) mit Live-Aktivität in der Dynamic Island, funkloch-sichere lokale Sicherung mit automatischer Nachsync, Apple-Health-Integration (Touren als Walking-Workout), Apple WeatherKit, GPX-Import. Kostenlos; Pro-Funktionen werden über das banyaro-Konto freigeschaltet (kein In-App-Kauf).
- **Vektor-Karten (MapLibre GL)**: Komplette Umstellung von Leaflet-Raster auf MapLibre GL mit eigenen Vektor-Tiles (PMTiles, OpenStreetMap-Daten, self-hosted in Deutschland — keine externen Kartenanbieter für die Basiskarte).
- **Offline-Karten**: Kartenausschnitte zum Download für die Nutzung im Funkloch, lokal auf dem Gerät gespeichert.
- **DWD-Regenradar mit 2h-Vorhersage**: Regenradar primär aus den offenen Daten des Deutschen Wetterdienstes (serverseitig abgerufen), RainViewer als Fallback.
- **Yaro-Navi**: Sprachfreie Routenführung per Bell-Signal beim Folgen aufgezeichneter Routen.
- **Partner-Programm**: Showcase verifizierter Partner (banyaro.app/partner), QR-Kontingente mit Einzel-Code-Tracking, Partner-Dashboard.
## Monetarisierung
**Kostenlos (dauerhaft):**

View file

@ -4,7 +4,7 @@
============================================================ */
// ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab
const VER = '1276';
const VER = '1277';
const CACHE_VERSION = `by-v${VER}`;
const CACHE_STATIC = `${CACHE_VERSION}-static`;
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten