← Back to side projects
Case study · Yourt

Which artist are you going to see?

Yourt is a festival app that syncs the lineup, your friends and the shared weekend budget. It started as a personal challenge — solve the one question that keeps coming up on every festival, and build the whole thing with AI in the loop.

Solo — product, design & codeIdea to working app in 3 weeksZero to one with AIiOS · Android · Web
01 / The build

A personal challenge, shipped.

Aligning which sets you and your friends want to attend used to be a tedious job: screenshots of the timetable, a group chat, and someone always ending up at the wrong stage. I wanted to fix that — and to find out how far AI-assisted development actually gets you on a real, multi-user product rather than a demo.

  • Took Yourt from idea to a working multi-user app in three weeks, next to a full-time job.
  • Designed the data model first — festivals, sets, marks, friendships, groups, expenses — because every social feature stands or falls with the schema.
  • Used Claude Code and Cursor as the implementation layer, and kept product decisions, scope and review on my side.
  • Built on Supabase for auth, realtime sync and row-level security, so the privacy rules live in the database rather than in the UI.
  • Shipped to iOS, Android and the web from a single React Native and Expo codebase.
  • Cut everything that was not the core loop: mark a set, see your friends, plan the weekend together.
Stack & tools
React NativeExpoTypeScriptSupabasePostgreSQLClaude CodeCursor
The team shape

A team of one, with agents doing most of the typing. That shifts the job rather than shrinking it: less time writing code, far more time deciding what should exist, reviewing what came back, and keeping the architecture coherent.

02 / The app

Six screens, one weekend.

App screenshot: home screen with a “Recommended now” card for a live act and a “Friends right now” row showing which friend is at which stage.
What is on right now, and where the crew is standing.
App screenshot: festival timetable by stage and day, with marked sets highlighted and friend avatars on the acts they are attending. Headline on the image (English): “Same festival, same plan.”
Mark a set, and see who else in the crew marked it.
App screenshot: map of the festival site with stages, food courts, shared pins and live friend positions. Headline on the image (English): “Lost your friends?”
Friends, stages and shared pins on the actual festival grounds.
App screenshot: shared shopping list with a progress bar, items still needed and items already bought, each showing who paid. Headline on the image (English): “How much do I owe you?”
One shopping list the whole group edits.
App screenshot: expenses tab showing your balance, total spent, group total, a “Settle up” button and per-person balances.
Group balances and a settle-up flow at the end of the weekend.
App screenshot: rating screen for a single set with star ratings for music, energy and show plus an optional comment field. Headline on the image (English): “Best set of the weekend?”
Rate each set on music, energy and show.

Use the left and right arrow keys to scroll through the screenshots.

03 / Features

What the app can do.

Core

Shared lineup planning

Every act on the timetable, by stage and by day. Mark the sets you want to see and the app immediately shows who else in your crew marked the same one — the negotiation that used to happen over screenshots now happens inside the schedule itself. Clashes are visible while there is still time to decide, not once you are standing in front of the wrong stage.

Live

Live map of the grounds

Stages, food courts and facilities on a map of the actual site, with your friends’ live positions on top. Shared pins and status notes carry the rest — “meeting at the flag”, “we moved to Mainstage” — so a lost crew is a glance rather than a phone call that will not connect on festival reception.

Social

Friends, groups & QR invites

A full social layer: friend requests, crews and groups, and QR code invites so joining a group at the gate takes one scan instead of a username somebody has to spell out over the bass.

Control

Granular privacy

Location, marked sets and lists are shared per person and per group, so you decide what each circle sees. Sharing your position with your crew for an afternoon should not mean broadcasting it to everyone you ever added.

Money

Expense tracker

Who paid for the camping gear, who owes what, and one balance per person at the end. Group totals, individual shares and a settle-up flow, so the weekend does not end in mental accounting.

Planning

Shared shopping list

The supply run as one list the whole group edits — what is still needed, who added it, who bought it, with progress across the crew. Nobody comes back with the third pack of the same thing.

Fun

Set ratings

Rate every set on music, energy and show, drop a comment, and settle the only argument that matters on the way home: which act actually won the weekend.

Platforms

One codebase, three platforms

React Native and Expo put the same app on iOS, Android and the web, with Supabase behind it for auth, data, realtime sync and row-level security.

04 / Zero to one with AI

Building a real product with AI in the loop.

Work in progress

The detailed case study is still being written.

What follows is the short version: the three-week arc and the first learnings. The full write-up — every challenge, every dead end, and what AI was genuinely good and genuinely bad at — will replace this section.

The three weeks

Week 1 — schema & skeleton

Data model, auth and the festival/lineup core. The first week decided how far the rest could go: get festivals, sets and marks wrong and every social feature after it inherits the mistake.

Week 2 — the social layer

Friends, groups, QR invites, privacy rules and live locations — the part where a single-player planner turns into something worth opening with other people.

Week 3 — money, polish & platforms

Expenses, shopping lists and set ratings, then the pass that makes it feel like an app: navigation, empty states, and the same build running on iOS, Android and the web.

Early learnings

Scope is the bottleneck, not code

When implementation stops being the constraint, deciding what not to build becomes the whole job. The three weeks were spent on judgement far more than on syntax.

Own the data model yourself

Agents happily produce a schema that works for the screen in front of them. Privacy rules, group membership and shared expenses need one that works for every screen after it — that part stayed mine.

Reviewing beats typing

The quality of the product tracked the quality of my review loop, not the quality of the prompts. Reading every diff carefully was the actual work.