03 / iOS app2025Pre-launch

Tiny Challenges

No post, no peek. Enforced in Postgres.

RoleSolo. Product, policy design, client.
Built withExpo, Supabase, Postgres row level security
Where it isPre-launch

Why I built it

Shared photo apps drift towards performance. Once you can scroll before you contribute, the smart move is to wait, see what everyone else did, and post the safest version of it.

The fix is a rule, and a rule only works if it cannot be skipped. Putting it in the client would have been faster and would have meant nothing.

What I built

The gate is a policy

One row level security policy decides who can read what. The app has no code path that shows an unearned photo, because the query simply comes back empty.

Same prompts, same midnight

Prompts are assigned per day rather than per user, so a friend group is always talking about the same three things.

No numbers anywhere

No likes, no counts, no streak that punishes a missed day. The only feedback is that other people showed up too.

The hard part

Midnight is a product decision

A day boundary looks like a timezone problem until you realise it decides whether the prompt is common ground. Everyone in a group shares one day window instead of a rolling personal clock.

What I would do next

It never launched, and I am not going to pretend otherwise. I still think the constraint was right. I would rebuild the invite flow first, because that is where the group of four you actually want falls apart.

NextCoffee Digest