06 / Detour café · A phares.io project

Where we
go.

Trip planning for a small group of friends. One itinerary each, a shared map per city, and a page built for standing on the pavement.

Pick places off a map, vote on them, drop them onto days, and see what your friends are planning where your trips overlap. Nothing leaves the group.

PASSKEYSNO EMAIL ADDRESSESABOUT A HUNDRED PEOPLE
FIG. 006 — A STAY BOARDTOKYO · 4 NIGHTS
Tsukiji Outer MarketGoing · 3Day 2
teamLab PlanetsMaybe · 2
Clean toilets, Tokyo Midtown B1yours

01 / What it does

Four things,
done properly.

Built for one group of friends who travel together and were tired of a shared spreadsheet, a group chat, and six different maps.

Plan a trip.

An itinerary of stays and travel legs. Pick places off a city map, vote yes, maybe or no, drop them onto days, keep notes nobody else sees.

Use it on the pavement.

Nearby lists the stay's places by distance from where you stand, your picks first. Add the pharmacy or the good bathroom right there. Your position never leaves the phone.

Plan it together.

Share a stay with friends or a whole crew and see their votes beside yours. A group calendar shows who is where on which day. One-off events live once and everyone RSVPs.

Share outward, carefully.

Publish a scrubbed template of a trip you are proud of. Hand a read-only link to someone without an account. Notes and private plans are never in either.

02 / How it's built

Small on purpose.

RUNS ON THE FREE TIER.
ONE OPERATOR. NO ROADMAP IMPLIED.

SIGN-IN

Passkeys, with Google as the fallback for devices that cannot enrol one. The app never sees an email address.

DATA

The database holds people-data only. Cities and their places are static files. The server filters before anything leaves it.

STACK

Cloudflare Workers and D1. Vanilla JavaScript, no build step, no framework. Leaflet for the maps.

SIZE

Built for about a hundred people. The architecture notes run longer than the code deserves, and that is on purpose too.

03 / Getting in

You already know
who to ask.

Registration is by invitation from someone already inside. There is no waitlist and no form, which is most of the point.

ALREADY A MEMBER Sign in with a passkey I have an invite code

Lost your passkey? Use a recovery code from the operator.