01

Flock

A group travel app for sharing places, making decisions, and building a trip together.

Role

Product design, end to end

Type

Self-directed concept project

Platform

iOS

Output

Product structure,
42 screens, a design system

The problem

A group books flights, and then the links start arriving. A reel in the group chat, a TikTok someone saved, three Maps pins, a screenshot of a bar nobody can find again.

Every tool I looked at helps you collect more: faster, in one place, with tags. But nobody in that group chat is short of ideas. Collecting is not the broken part.

Groups don't struggle to find things to do.
They struggle to decide what makes the trip.

Groups don't struggle to find things to do. They struggle to decide what makes the trip.

So every decision in this case study is about narrowing, not about gathering.

The shape of it

Collect, decide, then plan - in that order

Users arrive after flights and lodging are booked. Flock is not a booking tool, and the moment it tries to be one it inherits a different product.

Group size is an input, not an assumption. Two people choosing dinner and nine arguing about a museum run through the same rules, so every rule has to answer at any size.

01

Share sheet

Someone sends a place into the trip from Instagram, TikTok or Maps.

02

Ideas

It lands on the group’s board. Everyone sees it, nobody sees the verdict.

03

Decide

Each person answers Love, Maybe or Pass, one idea at
a time.

04

Consensus tag

The answers become one state on the card, and that state decides what makes the plan.

05

Plan

The ideas that made it are laid out across the days, and can be moved.

When a TikTok or a link can’t be read

When a TikTok or a link can’t
be read

The group names it

Kept with its caption at the top of Ideas, and held out of Decide until someone names it.

When one person wants it anyway

When one person wants
it anyway

A must-do skips the vote

Two per person for the whole trip. Personal priority, scarce on purpose.

Two per person for the whole trip. Personal priority, scarce
on purpose.

When it doesn’t fit the days

It waits in the pool

There for the whole trip, for the afternoon that falls apart.

Decision one

An idea has to arrive from wherever it was found

Ideas don’t start in Flock. They start on Instagram, TikTok, and Google Maps. So the first surface I designed was the iOS share sheet.

Flock extracts places from the link and suggests a category. That guess can be wrong, so it’s always editable and never required. And since a reel often features several places, the sheet treats multiple places as the norm, not an edge case.

The happy path. The place, its district, an editable category, one optional note.

The happy path. The place, its district, an editable category, one optional note.

One reel, several places. Choose the ones you meant, in one pass.

One reel, several places. Choose the ones you meant, in one pass.

The link Flock cannot read. Not an error, and never discarded.

The link Flock cannot read. Not an error, and never discarded.

An unrecognised link turns a dead end into a group task. Saved with its original caption, it goes to the top of the board under “Needs a name.” Anyone who recognises the place can name it, not just whoever found it. Until then, it stays out of Decide: the group needs to know what it’s voting on.

An unrecognised link turns a dead end into a group task. Saved with its original caption, it goes
to the top of the board under “Needs a name.” Anyone who recognises the place can name it,
not just whoever found it. Until then, it stays out of Decide: the group needs to know what it’s voting on.

Decision two

Seeing the group's verdict changes your own

The Ideas tab shows the place, its photo, and who added it. The group’s reactions stay hidden behind “React to reveal.”

This is the product’s core decision: seeing that four people already love a place can turn your vote into agreement.

Everything the group has collected, and every verdict withheld.

Everything the group has collected, and every verdict withheld.

One idea in full: the place, the photo, its sources, and who added it.

One idea in full: the place, the photo, its sources, and who added it.

In Decide the ideas come one at a time and you answer each with Love, Maybe or Pass. Only then does the card open and show you where the group stands.

And it shows the two sides differently. A Love is named: the people who wanted this place are on the card. A Maybe or a Pass is a count with no names attached, because a group has to be able to turn down a friend's idea and still have it be nothing personal.

The same logic one level deeper: on Ideas, who added a place is visible, because contribution is what keeps people collecting. Inside Decide that name is hidden.

The verdict arrives the moment you have committed to your own.

The verdict arrives the moment you have committed to your own.

Every idea carries its sources, and they are what the decision actually gets made on. A reel plays in Flock's own player, without leaving the trip.

Every idea carries its sources, and they are what the decision actually gets made on. A reel plays in Flock's own player, without leaving the trip.

Decision three

What happens when the group is split

Some ideas end Mixed. Two people love it, one doesn't, and nothing resolves. Run a majority vote and you produce a winner and someone who got outvoted on their own holiday.

So each person gets two must-dos: picks that enter the plan without a vote. A personal answer to the group's indifference, scarce on purpose, so nobody spends one lightly.

Taught at the moment it matters, by a confirm sheet, and only once.

Taught at the moment it matters, by a confirm sheet, and only once.

It sits below the three reactions rather than beside them, carrying the remaining count, so it reads as a different kind of answer and not as a stronger Love.

Scarce, but not final. A spent must-do can be freed again, and any reaction can be changed later. The consensus recalculates and the change shows up in the group's activity, so nothing is quietly reversed.

Decision four

The consensus rule had a hole in it

Each idea gets a consensus tag based on the group’s reactions. It determines whether the idea enters the plan, making the logic behind it central to the product.

🔥 Everyone’s in

🔥 Everyone’s in

👍 Strong match

👍 Strong match

🤔 Mixed

🤔 Mixed

⏳ Waiting

⏳ Waiting

⬇️ Low priority

⬇️ Low priority

Every idea in the trip carries exactly one of these five, and it is recalculated the moment anyone reacts or changes a reaction.

The rule started as five independent conditions and held up against examples, one at a time. It stopped holding the moment I ran combinations through it instead.

Version one

Five independent conditions

·

All Love →

🔥 Everyone’s in

🔥 Everyone’s in

·

Majority Love →

👍 Strong match

👍 Strong match

·

Some Pass →

🤔 Mixed

🤔 Mixed

·

Majority Pass →

⬇️ Low priority

⬇️ Low priority

·

Not enough reactions →

⏳ Waiting

⏳ Waiting

Five separate tests, no order between them. Two can be true at once, and some combinations make none of them true.

Version two

One ordered cascade

1

Fewer than a majority have reacted →

⏳ Waiting

⏳ Waiting

2

Any single Pass →

🤔 Mixed

🤔 Mixed

3

Everyone reacted and all Love →

🔥 Everyone’s in

🔥 Everyone’s in

4

Majority Love →

👍 Strong match

👍 Strong match

5

Otherwise →

⬇️ Low priority

⬇️ Low priority

One list, read top to bottom. The first rule that matches wins, and the last one catches everything else.

The same reactions

Version one

Version two

3 Love · 1 Maybe · 1 Pass

A group of five, all reacted

Version one

👍 Strong match

👍 Strong match

and

🤔 Mixed

🤔 Mixed

Two states at once

Both conditions are true and nothing says which wins. In practice the majority was read first, so the single Pass vanished from
the result.

Version two

🤔 Mixed

🤔 Mixed

One state, decided

The Pass is tested before the majority, so the objection is what the tag reports.

2 Love · 2 Maybe

A group of four, all reacted

Version one

No tag at all

No tag at all

Nothing matches

Not unanimous, not a majority, no Pass, not a majority Pass, and enough reactions to not be Waiting. Every condition fails.

Version two

⬇️ Low priority

⬇️ Low priority

The catch-all takes it

Rules one to four miss, so the last rule answers. Nothing can fall through.

The five outcomes never changed. What changed is how one of them gets chosen, and the ordering is the whole decision. Rule two sits above rule four on purpose: one objection outranks a majority, because the objection is the information. A place four people like and one will not eat at is not a strong match, it is a conversation.

Rules use proportions, not head counts, so the same five states work for groups of two
or nine.

Decision five

A plan you can argue with

Flock builds a draft, not an empty calendar. An empty itinerary hands the work back to the group at the exact moment they thought they were finished.

Days are Morning, Afternoon and Evening rather than hours. An exact hour is a promise no group keeps, and once one stop slips an hourly plan is wrong for the rest of the day.

Six things decide the layout: must-dos first, flight times as anchors, one part of the city per day, time of day matched to category, opening hours, and weather - weather only when the trip falls inside the ten-day forecast. What the plan cannot know it asks for before it builds, because nobody goes back to fix a plan that already looks plausible.

Soft bands, and travel time sitting between the stops rather than
on them.

Soft bands, and travel time sitting between the stops rather than
on them.

Move it to another day, or another part of it. Remove sends it back to the pool rather than deleting it.

Move it to another day, or another part of it. Remove sends it back to the pool rather than deleting it.

Who moved what, since you were last here. Your own rows can be put back from it.

Who moved what, since you were last here. Your own rows can be put back from it.

One day, in order, with the must-dos ringed. Other days' stops stay on the map, faded, so the day you are on keeps the focus.

One day, in order, with the must-dos ringed. Other days' stops stay on the map, faded, so the day you are on keeps the focus.

Agreed picks that don’t fit the itinerary stay available throughout the trip. When plans change, Flock surfaces nearby options the group already chose.

Flock suggests alternatives but leaves changes to the group. Since everyone agreed on these options before the trip, they can adjust the plan without starting the discussion all over again.

The pool, during the trip: ideas the group agreed on that never got a day, nearest first.

The pool, during the trip: ideas the group agreed on that never got a day, nearest first.

Let’s talk.

Looking for a product designer? I’m looking for my next team. Sounds like a conversation worth having.

Let’s talk.

Looking for a product designer? I’m looking for my next team.
Sounds like a conversation worth having.

Let’s talk.

Looking for a product designer? I’m looking for my next team. Sounds like a conversation worth having.