Landing pages, custom domains, and the quiet work of plumbing

With the app submitted and in testing, the next gap was the web. Today I scaffolded sessionclick.com and musicapps.eu as Hugo sites on GitHub Pages, moved the privacy policy to its new canonical home, and untangled the DNS. Almost all the keystrokes came from Claude — I directed, reviewed, and pushed the DNS and Play Console buttons only I can push.

April 23, 2026 · 7 min · Karl-Ernst Kiel

Day 14: Finishing the Play Store submission

The remaining Play Store tasks from yesterday — feature graphic, tablet screenshots, permission demo video, content rating — are done. The app is submitted for review. Reflection on how unexpectedly complex the Play Store process is in 2026.

April 21, 2026 · 3 min · Karl-Ernst Kiel

Day 13: UI polish, app icon, billing live, and Play Store listing

A full day of UI polish and Play Store prep. Nine UI issues fixed via Claude-prepared Gemini prompts, new app icon designed in Affinity Designer, in-app billing tested end-to-end, and the store listing copy and screenshots completed. Tomorrow: feature graphic, tablet screenshots, and a permission demo video.

April 20, 2026 · 6 min · Karl-Ernst Kiel

Day 12: Freemium gate, billing, Play Store registration, and first internal build

The freemium gate and Google Play Billing integration landed today, completing Phase 2. Then a pre-beta cleanup pass, privacy policy, Google Play Developer account registration (surprisingly complex), demo playlists, screenshots, a first app icon, and the first internal build installed on a real device via the Play Store.

April 19, 2026 · 8 min · Karl-Ernst Kiel

Day 11(a): Persistence refactor, export/import, UI polish, and splitting App.kt

The last Android-only code moved into shared KMP. JSON export and import landed. The app got a proper color schema with a dark/light toggle. Then App.kt — grown to 1400 lines — got split into focused files without touching the layout, after two earlier failed attempts taught us exactly which composables are safe to extract.

April 18, 2026 · 5 min · Karl-Ernst Kiel

Day 10: Preparing for iOS by testing Android

A feature sprint finished the Song pool with a full Library screen. Then a technical audit triggered an architectural refactor — 130 lines of domain logic moved from Android-only code into the shared KMP module, with 14 new tests that already run on the iOS simulator. Zero lines of iOS code written today, and the app is meaningfully closer to supporting it.

April 17, 2026 · 7 min · Karl-Ernst Kiel

Day 9: Editing, swiping, playlists, and a very satisfying number

The longest session so far. Song and special entry editing, a complete redesign of the swipe gestures, multiple playlist support, JSON persistence, and a jitter measurement that confirms the audio engine is production-ready.

April 16, 2026 · 7 min · Karl-Ernst Kiel

Day 8: Docs and swipe and drag-and-drop

A split session: two new knowledge base articles in the morning, then a long evening of wiring up swipe gestures and drag-to-reorder — including a detour through a custom implementation that never fully worked, ending with the right library call.

April 15, 2026 · 5 min · Karl-Ernst Kiel

Day 7: Building the main screen — controls, playlist, and a lot of iteration

The main screen finally looks like a real app. A long session covering the last metronome controls, the playlist list, a responsive layout, and several bugs that only surface on a real device.

April 13, 2026 · 5 min · Karl-Ernst Kiel

Day 5: UI design, a foreground service, and a hard sync problem

Today had three acts: sketching the full UI concept, building a foreground service, and solving an audio/visual sync problem that turned out to require a C++ fix.

April 11, 2026 · 6 min · Karl-Ernst Kiel