pickit.
Swipe · Match · Stop arguing

I built an app because my friends
couldn't pick a film.

PickIt puts everyone in one room, gives them the same deck, and lets them swipe in private — then shows the group what they actually agree on. This is the story of how it got made.

Coming soon toGoogle Play Download on theApp Store
01 — Where it started

Nobody was short of ideas. We were short of a method.

It's a familiar evening. A group of us, a sofa, four streaming apps open, and forty minutes gone. We weren't struggling because there was nothing to watch — we were struggling because there was too much, and no fair way to find the thing everyone could live with.

What struck me is that the failure wasn't taste. It was process. Someone suggests a film, someone else pulls a face, and the suggestion dies before anyone admits they'd have been happy with it. The loudest opinion sets the anchor. The quietest person agrees to something they don't want. Everyone's tired by the time a decision arrives.

So I stopped asking "how do we find a better film?" and started asking a different question: how does a group hear everyone without it turning into a meeting? That one reframe changed the whole thing — from a recommendation problem into a coordination problem.

WHY IT FAILS

Group chat

Opinions arrive one at a time, so each one anchors the next. Debate, not decision.

WHY IT FAILS

Polls

Someone still has to write the options — and that person quietly shapes the outcome.

WHY IT FAILS

Passing one phone

Slow, and everybody sees your choice. Nobody votes honestly with an audience.

02 — Sketching the solution

Everyone swipes the same deck, privately, at the same time.

Once it was a coordination problem, the shape of the answer fell out quickly. I worked through it in a few moves.

01

Borrow an interaction everyone already knows

Left for no, right for yes. Zero explanation needed. But instead of using swipes for browsing, they become a private input to a group calculation.

02

Force one shared deck

The maths only means something if everyone voted on identical options. The host picks the category and filters; the room hands the exact same cards to every phone.

03

Make everyone vote at once, in private

Simultaneous and hidden kills the anchoring problem. No one sees anyone else's answer until the room reveals the overlap.

04

Delete the setup

No accounts, no profiles. A short room code and an emoji is enough for something you're doing right now, in the same room. Every room disappears after 24 hours.

05

Design the argument, not just the happy ending

This was the real lesson. A perfect match is lovely and rare. Most of the design effort went into what happens when the group doesn't agree.

Perfect match

Everyone liked it. Confetti, and you're out the door.

Majority

More than half agreed. The mob has spoken.

Tie

A quick head-to-head re-vote between the joint leaders.

Nobody agrees

Reshuffle, widen the net — or let fate roll the dice and end it.

03 — Building it

I vibe coded the whole thing.

I'm not a Flutter developer. I designed PickIt and then built it conversationally — describing what I wanted, reading what came back, testing it on a real phone, and correcting course. Hundreds of times.

That turned out to be a real design constraint, not a shortcut. Because I could get a working screen in minutes, I ended up designing in the running app instead of in a static mockup — which is how the awkward states got caught. Things you only notice when it's in your hand: what happens when someone joins late, when a person leaves halfway through, when the room is full, when the API returns nothing.

The parts that took longest weren't the swiping. They were real-time sync (everyone must see the same deck and the same progress), the failure paths (reconnects, ghosts, stragglers, empty results), and the unglamorous release grind — icons, store metadata, privacy strings, and a few rejections to learn from.

Flutter Dart Riverpod go_router Cloudflare Workers Durable Objects WebSockets SQLite TMDB Google Places OpenStreetMap
HOW IT RUNS

One room, one brain

Every room code maps to a single Cloudflare Durable Object. It owns the deck, the members, the votes and the result — so all the phones stay consistent, and there's no database to keep in sync.

HOW IT RUNS

Always something to swipe

Films come from TMDB; restaurants try Google Places, then OpenStreetMap, then bundled data. The deck degrades quietly rather than showing an empty screen.

04 — The result

Ten seconds to start. About a minute to finish.

Create a room, share the code, everyone swipes, the room decides.

PickIt welcome screen: run the room or crash a room
Start or joinHost a room, or jump into a friend's with a short code.
PickIt swipe deck showing a film card with coach marks
Everyone swipesThe same deck on every phone, with coach marks for first-timers.
05 — Being straight about it

What's built, and what I haven't proven yet.

Built and working

Not claimed

I'd rather show a real product with honest gaps than invent a results slide.

pickit.

Settle it in sixty seconds.

Free. No account. Nothing saved.

Coming soon toGoogle Play Download on theApp Store