Fun project · B2C · Live · 2026 · 5 min read

Alpine Skies: a flight sim that starts in under a minute

Problem statement

A browser flight simulator for quick sessions over the Swiss Alps.

Problem

A quick flight should be easy to start

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

Accessibility needs a reason to return

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

Open a tab and take off

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.

Alpine Skies key art: a jet flying down a green Swiss valley toward a ring. Fly the Swiss Alps.
Role
Product, design and build with AI coding tools
Platform
Web browser (WebGL), no install
Status
Live, version 1.23 (Oct 2026)
Skills
Execution, engagement design, metrics, AI-assisted building

Problem

Casual pilots need a convincing flight without a complex setup

Casual players need an accessible middle ground: a convincing flight experience that starts quickly in a browser.

Users

Quick sessions and learning flights need the same simple entry point

Need: a quick flightNeed: to learnLANDINGFIRST FLIGHTFIRST MISSION7-DAY RETURNOpens the tabfrom a shared linkGuest startno sign-up wallFirst flightin the airin secondsFirst missionFlight Schoolor CampaignComes backDaily Challenge,leaderboarda reason to return every day
One player journey, two needs.
Diagram guideRead left to right: open the tab, start as a guest, first flight, first mission, come back. The two chips on top show which need each step serves: a quick flight is met at the first flight, learning is met at the first mission through Flight School. Each step has its own funnel metric, and the arrow at the bottom is the Daily Challenge pulling players back into missions.

Quick-session players want an immediate flight. Learners want progressively harder missions. Both need a simple path into the cockpit.

Goals and metrics

Completed missions measure both engagement and progress

North StarMissions completed per weekly playerIt captures both engagement and progress.
First flight startedShare of visitors in the air within a minute
First mission completedShare of new players who finish a mission in session 1
Return within 7 daysShare of new players who come back

Health: frame rate on low-end laptops, and load time.

Solution

Alpine Skies puts a Swiss Alps flight in a browser tab

alpine-skies.vercel.appIn flight: the objective, distance to the next ring and the keys to press
In flight: the objective, the next ring and the keys, on screen.

What shipped

Missions, map-based selection and a leaderboard support repeat play

Home screen: the next mission, missions, free flight, a daily challenge and the flying style
Home: the next mission first, then the other modes and the flying style.
Missions on a terrain map, filtered by length, with star goals
Missions on a map, sorted by length, with clear star goals.

Decisions and trade-offs

Guest play and mission structure reduce the effort to start

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

02Visual quality vs speed

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

03Retention loop

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

04Five modes

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

Play-test feedback shaped versions 1.15 through 1.23

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

Test whether a guided first flight improves mission completionPlanned

  • Hypothesis: dropping players straight into a 60-second guided flight raises first-mission completion.
  • Primary metric: share of new players who complete a mission in session 1. Guardrail: 7-day return rate must not fall.
  • Decision rule: ship the guided start if completion rises with no drop in return; otherwise keep the menu and test a shorter Flight School.
  • Traffic check first: if there are too few new players each week for an A/B test, compare the funnel before and after and run moderated play sessions instead. The result will say which method was used.
CONTROLOpens the tabMode menupicks one of fiveMode loadsFirst missionVARIANTOpens the tab60-second guided flightstraight into the airFirst missionMEASUREDmission donein session 1
The onboarding test.
Diagram guideTwo rows, same start and same finish. The top row is today: open the tab, pick one of five modes, wait for it to load, reach the first mission. The bottom row is the variant, which removes the mode menu and drops the player into a 60-second guided flight. Both are measured at the same point on the right: a mission completed in session 1.

Results

Cold load fell from 8.4 to about 4.6 seconds

MeasureResult
StatusLive with logins, missions, a leaderboard and a cloud backend
Cold load, Intel Iris Xe laptop8.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 funnelNot published yet: visitors, first flight, first mission, 7-day return

What I learned

Product constraints still need judgment when AI builds the code

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.