pickit.
Swipe · Match · Stop arguing

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

PickIt gives everyone in a room the same deck to swipe through privately, then shows the choices they share. Here's how I designed and built it.

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

We needed a way to choose together.

Picture a group on a sofa, four streaming apps open and forty minutes spent deciding. There can be too much to watch and no clear way to choose something everyone would accept.

I focused on the process. A suggestion can be dismissed before everyone has had a say. The most vocal person can steer the choice, while someone quieter goes along with it. I wanted each person's vote to count before the discussion took over.

That led me to ask: how does a group hear everyone without it turning into a meeting? The app would need to help people reach a shared choice.

WHY IT FAILS

Group chat

Opinions arrive one at a time, so an early response can influence the next one.

WHY IT FAILS

Polls

The person writing the options influences what the group can choose.

WHY IT FAILS

Passing one phone

People have to take turns, and seeing each other's choices can make a private preference harder to express.

02 — Sketching the solution

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

I built the flow around a shared set of choices and private votes.

01

Use a familiar swipe

Swipe left for no or right for yes. Each swipe becomes a private input to a group calculation.

02

Give everyone the same choices

Votes are comparable when everyone sees the same options. The host sets the category and filters, and every phone receives the same cards.

03

Keep votes private

Everyone votes at the same time without seeing anyone else's answers. The room then reveals the overlap.

04

Keep joining simple

A short room code and an emoji let people join without an account or profile. Every room disappears after 24 hours.

05

Plan for disagreement

A perfect match won't happen every time. Most of the design effort went into what happens when the group doesn't agree.

Perfect match

Everyone liked it. The app marks the match with confetti.

Majority

More than half the group agreed.

Tie

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

Nobody agrees

Reshuffle, broaden the choices or roll the dice for a random pick.

03 — Building it

I designed it, then built it with AI.

I'm not a Flutter developer. I built PickIt by describing the behaviour I wanted, reviewing the generated code and testing it on a real phone. I repeated that cycle hundreds of times.

Getting a working screen in minutes meant I could keep designing in the running app . Testing on a phone brought out the awkward states: someone joining late or leaving halfway through, a full room, or an API returning no results.

The most time went into real-time sync (keeping the deck and progress consistent on every phone), the failure paths (reconnections, absent or late participants and empty results), and release work: icons, store metadata, privacy wording and responding to rejections.

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

Each room manages its own state

Each room code maps to one Cloudflare Durable Object, which holds its deck, members, votes and result. Every phone uses that same room state, without a separate database to synchronise.

HOW IT RUNS

Fallbacks for restaurant results

TMDB supplies the films. Restaurant results come from Google Places, with OpenStreetMap and bundled data as fallbacks so the deck can still load if a service is unavailable.

04 — The result

Ten seconds to start. About a minute to finish.

Create a room and share the code. Everyone swipes, then the room shows the result.

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 swipe guidance the first time.
05 — Current status

What I built and what I still need to test.

Built and working

Not claimed

The product works; these limits describe what I can currently claim about it.

pickit.

Settle it in sixty seconds.

Free. No account. Nothing saved.

Coming soon toGoogle Play Download on theApp Store