How Junction Flows grew — from idea to App Store
When I started Junction Flows for Shipaton, it wasn’t a polished game. It was a question I couldn’t stop thinking about: why do we practice UX on screens, but get tested on journeys?
Designers and PMs spend hours on UI. But in real products — and in interviews — what matters is the flow. What happens when payment fails? When a rider cancels? When a user drops off and comes back? Those recovery paths, decision branches, and dead ends are the hard part. And there was almost nowhere to practice them in a tight, repeatable loop.
So I started building Junction: a mobile game where you get a real product scenario, place journey nodes on a canvas, wire them together, simulate a virtual user walking through your flow, and get feedback you can use to retry and improve. Brief → build → simulate → learn → try again. That loop became the whole product.
The first version taught me the most important lesson. I had wired scoring the naive way — if your flow reached “Complete,” you scored well. Players could shortcut straight to the finish and still look like they nailed it. The feedback felt wrong. If the score lies, the product lies. That failure shaped everything that came after.
I rebuilt the heart of the app from scratch. Instead of checking whether nodes were connected, I built a local quality engine that simulates user paths across decision branches and grades structure the way a design review would — conversion, recovery, efficiency, simplicity, trust, accessibility. I added milestone aliases so creative wiring still counts when it does the job. I added anti-cheat caps so broken shortcuts can’t look like mastery. I made every mode — Campaign, Blitz, Vs Computer, Online Blitz, Sandbox — call the same engine, so Results and UX Flow Audit always agree. Then I wrote regression tests around it, because in this product, feedback quality isn’t a nice-to-have — it is the product.
Only after that did I add AI — and I added it carefully. Generative models polish the coaching language after a simulation: clearer fixes, better explanations, persona summaries. They never set the score. I call it an “LLM fence”: deterministic judgment on one side, generative coaching on the other. That pattern took Junction from “AI slapped on a puzzle” to something I’d actually trust as practice.
From there, the product grew fast. What started as a prototype became ~210 campaign levels across six worlds — Ecommerce, Food Delivery, Fintech, Travel, SaaS, and Inclusive Design. I added seven playable modes, a 22-lesson Learn track, Daily Challenges, competitive Blitz with Supabase Realtime matchmaking and bot fallback, and a UX Flow Audit feature with seven accessibility personas. I built guest-first onboarding so anyone could play immediately, then sign up with Google, Apple, or email and keep their progress. I wired RevenueCat for real subscriptions — Pro unlocks deeper content and unlimited audits, not score advantages. No ads. No pay-to-win. I shipped a privacy and terms site, integrated Layers for launch attribution, and took production builds through EAS for iOS and Android.
Along the way I stayed solo — product, design, content, engineering, and launch. I wrote the scenarios. I tuned the scoring. I recorded the demo. I fixed the bugs that only show up when real people play — like retry flows on failed world levels and coaching copy that had to stay honest even when an LLM tried to invent problems that weren’t there.
By launch week, Junction wasn’t a Shipaton prototype anymore. It was v1.0.1 — a real app with a real App Store listing, a real monetization stack, a real multiplayer layer, and a feedback system I’d stand behind in an interview or a design workshop. Android was in its required 14-day closed test. iOS was ready to go live. The build in public journey turned an idea about journey thinking into something people could download, play, fail, learn from, and come back to.
That’s where the next update picks up — App Store launch, first real users, and what happened when Junction left my phone and met the world.
Log in or sign up for Devpost to join the conversation.