Wear OS, Live Mode and crowd-sourced data quality

The first Smartwatch companion is in place, Live Mode focuses the app on active festival days, and users can flag outdated data. Plus: full bio coverage for 916 bands and new lineups.

Two days after the marketing site and backend went live, the next major app pieces landed. The focus this time: a Wear OS companion, a Live Mode for active festival days and a crowd-sourced feedback path for data quality.

The original idea is still the same: with FestivalPilot you are fairly safe as long as you do not take your phone swimming and the battery does not completely give up. In other words, more reliable than a printed sheet that disappears in the tent or becomes unreadable after the first rain.

That was the moment behind the whole app: there has to be something better than printed schedules, forgotten notes and lineup PDFs with three parallel stages that you scroll through until the screen goes dark. After a long festival break from the late 1990s until around 2005, when I went back to Rock im Park for the first time, that same chaos was immediately there again. The idea sat around for years. Only much later did vibecoding make it realistic to build this kind of app quickly enough to actually use it for the coming season.

Wear OS companion: phase 1

FestivalPilot now has its own watch app foundation. Phase 1 includes the core pieces that make the phone and watch work together:

  • Branded notifications on the watch with a yellow accent, “Got it” and “Open in App” actions, and JSON payloads for follow-up routing
  • WatchSyncService on the phone, pushing a snapshot of all marked acts through the Android Data Layer whenever notifications sync
  • Today view on the watch: a scrollable list of today’s marked acts, backed by a DataStore-based SnapshotRepository
  • Background notification handling for action taps from the killed state, so “Open in App” can route directly into the festival timetable
  • A dedicated :wear module with the same application ID as the phone app, plus smartwatch settings and instrumentation tests

For end-to-end tests there is also a one-day fake festival called “Test Festival HEUTE” that syncs to the watch.

The practical point is simple: on a festival site, the best notification is often the one you can read without taking the phone out of your pocket.

Live Mode v1

When a marked festival is currently active, the app can move into a more focused mode. Instead of treating every festival and every day equally, Live Mode brings the running festival forward: day navigation, current slots, clashes and context for what is happening now.

It also includes an app clock for reproducible tests and an incident-report call to action inside slot details. That report button only appears while the festival is active, because that is when live feedback is actually useful.

This is still an early version, but it points toward the feature I want most as a festivalgoer: a festival-day mode that helps proactively without taking over the day.

Crowd-sourced data quality

Festival data ages quickly. Bands cancel, stage names change, set times move and official running orders get updated close to the event. Instead of pretending this can always be curated perfectly in the background, FestivalPilot now lets users send two types of signals:

  • Data Hint: a general signal that a festival’s data looks outdated, including app version and locale, embedded in the empty or warning state of the timetable
  • Live Report: a slot-specific incident report during an active festival, for example a stage change or delay

On the backend, there is a new feedback type called data_hint with an admin aggregation view. Live reports are collected separately under /admin/live-reports, grouped by slot.

The important part is not just collecting feedback. It is making outdated data visible quickly enough that it can still help during the season.

Notifications become more honest

Several notification problems were addressed at once:

  • Bug fix: reminders fired 12 hours too early; this is fixed, with a new notification test sheet for faster verification
  • Android 16: flutter_local_notifications was upgraded from 17 to 21, and manifest receivers were added so scheduled notifications trigger reliably again
  • Content: reminders now include stage and time window
  • Clash warning: if two marked acts overlap, the notification says so and tap-to-resolve opens the conflict screen

That matters because reminders are not just a nice extra. On site they can be the difference between “I marked this band for a reason” and “I remembered ten minutes too late”.

Bookmarks-first layout

The app home screen now reacts more strongly to what you have actually marked. If you have bookmarked acts, you see a bookmark-driven flagship layout instead of generic demo mocks.

Label badges show why something appears in a recommendation, and bio teasers now also appear in the For You cards instead of being cut off. The app should feel more like your plan and less like a catalogue.

Lineups and band bios

The data side also moved forward:

  • Wacken Open Air 2026 was added with all 155 bands, using day-only slots because the official running order is not available yet
  • Eight more festivals were added, including Nova Rock, Primavera and Wacken EN, plus five festivals with stub bios
  • Full bio coverage: 916 out of 916 bands now have real German and English descriptions

For a festival app, this is more than decoration. Better bios make discovery easier before the festival, and better lineup data makes the timetable more useful once you are there.

Onboarding and permissions

Permissions are now more granular in onboarding. Notifications and exact alarms are handled separately, and a bug was fixed where onboarding could get stuck on “running” after permissions were granted.

Crashlytics and Analytics are present, but strictly behind opt-in consent. No active consent means no tracking. That is how the rest of the product is built as well: privacy first is not a sentence for the footer, it has to be reflected in implementation.

Marketing site

The public website also received its first larger content layer:

  • Festival hub plus nine programmatic festival detail pages
  • Sharper hero copy with “All stages. One app.” as the core claim
  • App seed sync for festival data, including real set times for Rock am Ring and Rock im Park

This matters for SEO, but also for product clarity. People need to understand quickly that FestivalPilot is not just another event listing. It is a tool for the actual festival day.

What comes next

The next priorities are clear:

  • watchOS counterpart for the Wear OS app
  • App Store and Google Play submission
  • Evaluation of the first data hints once there is enough volume
  • Continued work on Live Mode before the main 2026 festival season

The idea from the beginning has not changed much: festival planning should be more reliable than paper in the mud and calmer than frantic PDF scrolling. That is why FestivalPilot is starting to feel less like a nice side project and more like the tool that was missing back then.

Premium helps support an independent app developer, and a full season costs roughly as much as a beer or drink at a festival. If you want to see what else is being built in the same indie spirit: remmedy is a medication reminder app for iPhone, iPad and Apple Watch, and Vereinsgeist is an app for clubs, teams, communication and events.