Compare commits

...

2 commits

Author SHA1 Message Date
793dccf7df Album: Song 4 "Beim Friseur" ergänzt
Vierter Suno-Pro-Song (Hundesalon/Sommerfell, md5 091acf6d) ans Album-Modal
gehängt: neue MP3 + SONGS-Array-Zeile; Banner-/Modal-Anzahl jetzt dynamisch
(_anthem.count) statt hartkodiert "3 Songs".
2026-06-14 22:46:05 +02:00
3107bebe20 Marketing: Ban-Yaro-Album (3 Songs) live v1297; Song-Reel ins Backlog 2026-06-14 22:37:17 +02:00
8 changed files with 25 additions and 24 deletions

View file

@ -37,10 +37,10 @@ Legende: 🟢 läuft/erledigt · 🟡 angefangen · ⬜ offen · 💡 Idee ·
- [ ] **Verzeichnisse** — Product Hunt, progressivewebappstore.com, pwafire.org/directory, Google Business (Ebersberg).
- [ ] **Landing-Page-Redesign** nach Briefing (3 Zielgruppen-Einstiege Hundebesitzer/Züchter/Welpenkäufer, Outcomes statt Features, Züchter-SaaS prominent, Datenschutz als Argument, Gründer-Story + Foto).
- [ ] **Messung einbauen** — „Wie hast du von uns gehört?" im Onboarding + QR-refs pro Kanal.
- [ ] **Ban-Yaro-Album** — hin und wieder einen Suno-Song ergänzen, Player unten → Album-Modal (alle Lieder). Voraussetzung: **Suno Pro** (kommerzielle Rechte). Bonus-Asset: Song + App-Screenshots → **Reel/YouTube-Video** für Social.
- [ ] **Song-Reel** — die Album-Songs + App-Screenshots/Hundefotos → **Reel/YouTube-Video** für Social. Album ist erweiterbar (neuer Suno-Pro-Song = MP3 + Array-Zeile).
## ✅ Erledigt
- [x] **Eigener Marken-Song „Ban Yaro Blues"** als Hymne in der WELT-Welt (Suno-KI-Demo, Player unten links, Banner einmalig) — 14.06., Prod v1295. ⚠️ Suno-Lizenz: Free = nicht-kommerziell → für saubere App-Nutzung **Suno Pro** nötig (Songs unter Abo neu rendern)
- [x] **Ban-Yaro-Album** — 3 eigene Songs (Ban Yaro Blues, Ban Yaro Mobil, Amy) als Album-Modal in der WELT-Welt — 14.06., Prod v1297. Alle **Suno Pro** = kommerziell lizenziert. (Lektion: Lizenz hängt am Generierungszeitpunkt; neu generieren ≠ neu downloaden, per MD5 geprüft.)
- [x] 1000 Flyer A5 (zweiseitig) gedruckt — 03.06.2026
- [x] iOS-App nativ gebaut + **im App Store freigegeben** (Ban Yaro Go, 09.06.) — Details im Repo `banyaro-ios`
- [x] Landing-Promotion für „Ban Yaro Go" LIVE (iOS-Abschnitt + Profil, eigenes braunes App-Store-Badge; Hero bewusst ohne Badge) — 09.06., Prod v1278

View file

@ -1 +1 @@
1297
1298

View file

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

View file

@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung.
============================================================ */
const APP_VER = '1297'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VER = '1298'; // ← 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

@ -1945,6 +1945,7 @@ window.Worlds = (() => {
{ title: 'Ban Yaro Blues', sub: 'Die Hymne', file: '/sounds/ban-yaro-blues.mp3?v=2' },
{ title: 'Ban Yaro Mobil', sub: 'Erste Fahrt im Anhänger', file: '/sounds/ban-yaro-mobil.mp3' },
{ title: 'Amy', sub: 'Eine Liebesromanze', file: '/sounds/amy.mp3' },
{ title: 'Beim Friseur', sub: 'Halbes Fell, Energie pur', file: '/sounds/beim-friseur.mp3' },
];
let _bound = false, _curIdx = -1;
const _audio = () => document.getElementById('anthem-audio');
@ -2057,7 +2058,7 @@ window.Worlds = (() => {
updateButton();
}
return { heard, toggle: openAlbum, updateButton, initWelt };
return { heard, toggle: openAlbum, updateButton, initWelt, count: SONGS.length };
})();
function _renderWelt() {
@ -2095,7 +2096,7 @@ window.Worlds = (() => {
</div>
<div style="flex:1;min-width:0">
<div style="font-size:var(--text-sm);font-weight:600;color:#fff">Ban Yaro das Album</div>
<div style="font-size:11px;color:rgba(255,255,255,0.45);margin-top:2px">3 Songs · zum Anhören</div>
<div style="font-size:11px;color:rgba(255,255,255,0.45);margin-top:2px">${_anthem.count} Songs · zum Anhören</div>
</div>
<svg class="ph-icon" style="width:15px;height:15px;color:rgba(255,255,255,0.3);flex-shrink:0" aria-hidden="true"><use href="/icons/phosphor.svg#caret-right"></use></svg>
</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=1297"></script>
<script src="/js/landing-init.js?v=1298"></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">

Binary file not shown.

View file

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