What I built

An app for people who share a house, and everything behind it.

It splits bills, keeps track of chores and holds a shared calendar. Alongside it there's a discussion forum, personal expense tracking, and two small tools anyone can use without an account. It's running rather than mocked up, and it goes all the way down: the website people see, the back end that does the work, and the databases underneath.

Why it's here: listing technologies is easy; showing what you can build with them is not. This is the same kind of system I work on professionally, except it's running in public and you're welcome to try it. The rest of this page follows one ordinary evening through the app — no jargon, and nothing you need a technical background to follow. If you want the engineering decisions instead, that's a separate page.

Open it with demo dataNo signup — a fully stocked house opens in seconds

What it is

A working app, not a prototype

Everything described on this page is something you can go and do right now, with real data in a real database.

How it's put together

One program per area

Signing in, the money and the forum each run separately with their own database, rather than as one large application.

Written in

C#, TypeScript, Postgres

Ordinary, boring choices on purpose. It deploys itself whenever a change is pushed.

Try to break it

It resets overnight

The demo house is throwaway. Delete anything you like and it's back by morning.

Three months earlier

Setting the house up takes about a minute

It happens once, and it's the only setup there is. Everything in the evening below depends on these three steps having happened.

  1. 01

    Maya starts the house

    She names it, picks a currency and a timezone, and she's the owner. Nothing else is required to start using it.

  2. 02

    Dev and Priya join with a code

    She sends them an eight-character invite code. They enter it, and they're in — no account approvals, no waiting on Maya to confirm anything. 7F3K9QA2

  3. 03

    Everyone has a role

    Owner, admin or member. It decides who can invite people, split a bill on someone else's behalf, and hand the house over when they move out.

One Thursday evening

Maya, Dev and Priya live together. Here's how a normal evening goes.

A single evening runs through most of the app, so it's the quickest way to see what it actually does. Every moment below is one of them using it for real.

6:02The house

Maya checks the house before the shop

She's in the car park with a list on her phone. It's the first thing on the screen — what the house has spent this month, what her share of it is, and the one payment that would even everyone up.

6:41The house

She pays at the till and adds it there and then

$100 for the week's food. She taps Dev and Priya, splits it three ways, and puts her phone back in her pocket before she's out the door. That's her end of it — neither of them has to accept anything.

6:41Maya is done

That was ten seconds of Maya's evening.

Everything after this happens while she's making dinner. Nothing is waiting on her, or on Dev, or on Priya. That's most of why people are still using it six months later.

6:41The books

Everyone's balance shifts by $33

Each share goes down as its own line, like a bank statement — nothing gets quietly overwritten. So when someone asks in March why they owe what they owe, you can point at the shop that caused it.

6:42Dev and Priya

Dev and Priya each get one message

Dev's at the gym with his phone face-down, so it's there when he picks it up. Priya already has the app open, and watches her number move.

9:15The forum

Dev asks a cooking forum about his smoke alarm

Nothing to do with the house — the forum just shares his login. Six people answer him, and the one that actually helps ends up at the top.

11:58The bank

The rent goes out of Priya's account

The app notices and ticks the rent off. It also spots a subscription she'd never got round to adding, and asks about it next time she's in. It can read her transactions and nothing else — it can't move a penny, and it never sees her bank password.

11:59The network drops

Nobody wakes up owing twice what they should.

Maya double-tapped the button on a bad signal. The overnight bank check fell over and ran again. One message arrived twice. None of it moved anyone's balance by a cent, which is the whole point — an app that counts money twice is worse than no app at all.

Each part is responsible for one thing

None of the three of them had to know any of this existed. Each area runs as its own program with its own database, so a change to how the forum ranks answers can't break how the rent is split. Deciding where those dividing lines go is a large part of the work, and the wrong lines are expensive to move later.

6:02

Signing in

Accounts, staying signed in, two-step verification, and getting back in when you've forgotten your password. Written from scratch rather than bought in.

6:41

The house

Who lives where, the chores, the shared calendar. When someone moves out, the record of the months they were there stays intact — otherwise old bills would silently change.

6:41 · 11:58

Money

Splitting bills, the running balances, the read-only bank connection, and working out what someone actually takes home. The only part with real accounting rules in it.

9:15

The forum

Posts, replies, voting, and moderators who only have power inside their own community. Completely walled off from anything to do with a household.

6:41:03

Telling people

Emails, the bell in the corner, and the figures that change while you're looking at them. It watches everything else happen and never interferes.

not this evening

Two small tools

A weather lookup and a unit converter, usable without an account. Neither stores anything, deliberately — not every part of a system needs a database, and pretending otherwise is how systems get heavy.

Wondering how any of that works?

How the parts talk to each other, what happens when one of them is down, and why the balances can't drift — that's all on the engineering page, written for engineers.

How it's built →

Have a look around. Everything resets overnight.

One click opens a house with three housemates, a month of bills and a forum with people arguing in it. Add a bill and watch the balances move.