01Guest start
Play instantly as a guest; save codes move progress across devices
Why: Sign-up friction kills first sessions.
Trade-off: Early email capture for growth
Fun project · B2C · Live · 2026 · 5 min read
Problem statement
A browser flight simulator for quick sessions over the Swiss Alps.
Problem
Casual aviation fans want a satisfying flight without a large download, specialist hardware or hours spent learning controls before they can enjoy a session.
Issue
Fast loading alone does not create a compelling game. Players also need clear goals, manageable challenges and a progression path that fits short sessions.
Solution
Alpine Skies brings Swiss Alps flying to the browser with guest play, missions by length, a difficulty ladder and a daily challenge. Cold load improved from 8.4 to about 4.6 seconds.
Progress Live. Cold load improved from 8.4 to about 4.6 seconds.

Problem
Casual players need an accessible middle ground: a convincing flight experience that starts quickly in a browser.
Users
Quick-session players want an immediate flight. Learners want progressively harder missions. Both need a simple path into the cockpit.
Goals and metrics
Health: frame rate on low-end laptops, and load time.
Solution

What shipped


Decisions and trade-offs
Play instantly as a guest; save codes move progress across devices
Why: Sign-up friction kills first sessions.
Trade-off: Early email capture for growth
Balanced visuals against frame rate on average laptops
Why: A beautiful game that stutters loses players anyway. This is the call behind the 8.4 s to 4.6 s load cut.
Trade-off: Peak graphics
Daily Challenge, achievements, leaderboard, stars and coins
Why: New content is expensive to build; reasons to return are cheap. A bet, not yet measured: the 7-day return rate will test it.
Trade-off: Build time on new aircraft and maps
Flight School, Campaign, Free Flight, Quick Challenges, Daily Challenge
Why: Each mode served a different need. But it broke my own rule about the first 60 seconds: play-testing found the menus confusing. For new players this was a mistake.
Trade-off: A single polished mode
Execution
I rebuilt the game on real terrain, the Bernese Oberland from swisstopo open data, tuned to run on laptop graphics. Play-testing then showed the menus and levels were confusing, there was not enough to do, and progress was not saved.
Versions 1.15 to 1.23 answered that with missions sorted by length, Flight School, a daily challenge, guest saves, a leaderboard and clearer in-flight guidance. I then added product analytics on the web build, and accounts, progress saves and the leaderboard in Supabase, so the next round is judged on what players do.
Experiment
Results
| Measure | Result |
|---|---|
| Status | Live with logins, missions, a leaderboard and a cloud backend |
| Cold load, Intel Iris Xe laptop | 8.4 s to about 4.6 s after a performance pass (version 1.15) |
| Feedback that changed the product | "Menus and levels are confusing; not enough to do." Led to missions by length, Flight School and the daily challenge |
| Player funnel | Not published yet: visitors, first flight, first mission, 7-day return |
What I learned
AI coding tools sped up the build. The product decisions, scope and quality bar stayed mine.
My first-60-seconds rule was right, and I broke it with five modes. Writing the rule down is what made the mistake visible. Next: publish the player funnel, run the onboarding test, and try a fake-door test for cosmetic aircraft before building any.