What it does
Search every source at once and land on the genuinely cheapest viable flight, with the creative savings (split tickets, nearby airports, flexible dates) surfaced for you, so you book with confidence instead of doubt, and share a shortlist so you can co-plan without screenshot tennis.
Currently
Live MVP, free, no signup, no booking. One search hits Kiwi, SerpAPI, and an AI search path and returns a ranked list, with flexible dates, nearby airports, a date matrix, split-ticket detection, manual fare entry, and pin/note/share built in. Shared links are read-only with a creator edit token, and the paid endpoints are rate-limited. The honest gap is that it is barely instrumented, so the North Star (Weekly Trips Planned) is not yet a number I can steer by. Instrumentation is the next thing in.
Roadmap
/now-next-later-roadmapNow/Next/Later Roadmap- Funnel instrumentation (session/search/pin/share/reopen events) as the P0 prerequisite
- Loud value badges + savings summary banner
- Graceful source fallback + adapter health monitoring
- Share-by-default at the pin moment + one-tap share
- Recent-searches resume
- Honest-broker badge + finish the 'Plane Simple' rename
- Defer the name gate (default the searcher to 'You')
- Accuracy re-check before click-out
- 'We beat the obvious fare by $X' wow moment + side-by-side (gated behind accuracy)
- Hero shared view + 'plan your own' CTA
- Flexible-date best-day highlight
- Always-on manual entry prompt when results are thin
- Price tracking / price-watch email (Kate override, framed as reactivation)
- 'Why this is cheaper' explainer + honest caveats
- Destination discovery, 'plan a trip somewhere'
- Real-time two-cursor co-planning
- Embeddable shortlist widget
Recently shipped
- Jun 10, 2026Added the airports dataset and started the rename from the legacy 'Best Flights' to 'Plane Simple'.
- Jun 7, 2026Security hardening: durable per-IP rate limiting on the paid search endpoints and a salted share-token, so shared links cannot be edited by anyone who holds the URL.
- Jun 3, 2026Polished and listed publicly on the /tools page.
- Mar 25, 2026Shipped the multi-source MVP: search across Kiwi and SerpAPI, a flexible-date matrix, nearby airports, and split-ticket detection.
How I know it's working
instrumented · awaiting trafficThe number of unique search sessions in a week that reach a keeper moment, defined as the user pinning at least one flight result. A pin is the convergence point for all three personas: Faye pins the cheapest fare, Dre pins the clever saving, Casey pins to build a shared shortlist. It is the smallest honest signal that the tool did its job, and it is a leading indicator for both retention and the share loop.
The events are wired into a privacy-first store. Counts populate here as people use it. This is the honest part of the work: instrument first, claim later.
How it's built
How I built it
Plane Simple started as a personal itch. I wanted a flight search tool better than Google Flights, and one I could share so friends and family could use it too. It shipped as Best Flights, a multi-source search that hits Kiwi, SerpAPI, and an AI path at once, with a flexible-date matrix, nearby airports, split-ticket detection, manual fare entry, and pin-and-share built in. Then I ran the full product process on it, the same one I would run for a client, and the rename to Plane Simple came out of that work.
What the discovery surfaced
A jobs-to-be-done pass made the wedge sharp. "We search more sources" is table stakes. The real story is Job 3: catching a split-ticket or nearby-airport saving that Google buries or omits, the thing incumbents serve worst. Three personas fell out of it. Flexible Faye, the budget-aware mainstream traveler, is primary and the one the North Star centers on. Dre, the optimization-maximizer, validates the savings math and evangelizes. Casey, the co-planner, is why share is strategy and not a nicety: every shared link is an impression to a new potential Faye.
That framing produced a single North Star that all three personas reach: Weekly Trips Planned, a session that ends in a pinned keeper. A pin is the smallest honest signal that the tool did its job, and it refuses to inflate on empty searches the way a raw-search count would.
What shipped, and what got cut
RICE ranked the backlog and the cheapest, best-evidenced win rose to the top: loud value badges that make the savings the centerpiece instead of a buried number. The share loop (share-default, one-tap share, hero shared view) reads as one bundled investment, because RICE under-rates a cold-start loop where reach is low precisely because sharing is still rare. Wisely, the tool does not try to be a booking engine. The ecosystem already handles checkout, and adding it would over-serve a solved job.
The pre-mortem named the two non-negotiables plainly. Do not amplify a savings claim before its accuracy is verified, because a wrong number on a portfolio piece is worse than shipping nothing. And do not ship features before instrumentation, because right now the tool flies blind. So the honest next bet is not a new feature. It is measurement first, then making the savings loud and trustworthy, then activating the loop, then deciding from real data whether this is a shared product or a pure delight play.
The strategy behind it
A snapshot of the product process this app was built from. Each artifact comes from a k8 skill you can run yourself. It reflects the original plan, not the live state above.
Jobs to be done
/jtbd-analysisJTBD Analysis| When I… I want to… | Importance | Frequency |
|---|---|---|
| When I am planning a leisure trip and money matters more than convenience, I want to see the genuinely cheapest options across every source at once, so I can book without wondering if I overpaid. | high | medium |
| When I am comparing flights, I want one place that searches Google Flights, Kiwi, and the deals I already found, so I can stop opening six tabs and holding prices in my head. | high | medium |
| When I am about to book, I want to know whether a split ticket, a nearby airport, or a shifted date would have been cheaper, so I can book confidently instead of with nagging doubt. | high | medium |
| When my partner and I are choosing a flight together, I want us both to look at the same shortlist with notes, so we can decide without texting screenshots back and forth. | medium | medium |
| When I have already spotted a fare on an airline site or a deal newsletter, I want to drop it next to my search results, so I can compare apples to apples instead of trusting memory. | medium | low |
| When my dates are loose and I just want to go somewhere good for cheap, I want the tool to explore flexible dates and nearby airports for me, so I can discover a trip I would not have searched for. | medium | low |
Persona
/persona-createPersona Create- Pay as little as possible for an acceptable flight
- Be confident the price is actually good before committing
- Spend less time comparing
- Different sites show different fares, and reconciling them by hand is tedious and error-prone
- Never sure whether a cheaper date or airport was left on the table
- Loses track of options across tabs and sessions
Persona
/persona-createPersona Create- Extract the maximum saving, including non-obvious routings
- Confirm no cheaper trick was missed
- Enjoy the optimization itself
- Checking split tickets and nearby airports by hand is slow and manual
- No single tool computes all the tricks at once
- Incumbents hide or omit the creative options
Persona
/persona-createPersona Create- Get to a shared decision quickly
- Keep everyone looking at the same options with the same context
- Avoid re-explaining the shortlist
- Sharing options means screenshots and lost context
- The other person cannot see notes or reasoning
- No incumbent flight tool is built for two people
Prioritization and risks(the internal detail)
RICE prioritization
/rice-scoreRICE Score| Feature | Reach | Impact | Conf. | Effort | Score |
|---|---|---|---|---|---|
| Loud value badges + summary banner | 150 | 2 | 70% | 2 | 105 |
| Share-by-default at the pin moment | 45 | 2 | 50% | 1 | 45 |
| Recent-searches resume | 50 | 1 | 70% | 1 | 35 |
| One-tap copy + share sheet | 45 | 1 | 70% | 1 | 31 |
| Honest-broker badge + rename to Plane Simple | 150 | 0.5 | 60% | 2 | 23 |
| Flexible-date best-day highlight | 60 | 1 | 60% | 2 | 18 |
| Wow moment: we beat the obvious fare by $X | 45 | 2 | 50% | 3 | 15 |
| Accuracy re-check before click-out | 45 | 2 | 80% | 6 | 12 |
| Destination discovery | 40 | 1.5 | 40% | 8 | 3 |
| Optional price-watch email | 20 | 1 | 40% | 6 | 1 |
Pre-mortem risks
/pre-mortemPre-mortemLouder savings ship before accuracy is verified, and a visibly wrong 'we beat Google by $120' on a portfolio piece is worse than shipping nothing and loses Dre instantly.
mediumMitigation: Enforce accuracy-before-amplification. Do not ship the wow moment until the accuracy re-check lands. If accuracy slips, keep savings badges at their current subtlety.
A data source silently breaks and the multi-source promise collapses, since Kiwi and SerpAPI are paid, rate-limited, and outside my control, with no health monitoring today.
highMitigation: Ship adapter health + key monitoring with a graceful 'source unavailable' fallback. Always-on manual entry keeps a session productive when live sources fail.
Instrumentation gets skipped for visible features, so nothing is measurable and every KR target stays a guess. The entire strategy runs blind.
mediumMitigation: Instrumentation is P0 and ships before any feature. If full event logging is too much, ship the four minimum events: search, pin, share, reopen.
The share loop never activates and reach stays flat, since K is roughly 0.16 today and Casey is the weakest-evidenced persona.
highMitigation: Ship share-default and a hero shared view, then measure. If shares stay near zero, accept it and run Plane Simple as a pure delight play for solo Faye and Dre.
The Now lane is too big for one cycle of part-time evenings and ships half-finished, which reads worse on a portfolio than a smaller complete lane.
mediumMitigation: Sequence ruthlessly: instrumentation, then value badges, then reliability, then share-default. Cut the honest-broker badge to next cycle, and ship the top three complete rather than six partial.
The strategy solves the wrong problem because it was built from existing features, not user research, so effort goes into optimizing a funnel nobody walks.
mediumMitigation: Treat instrumentation as the cheapest validation: real numbers expose a wrong-problem strategy fast. Re-run the strategy from the first instrumented cycle's data.