Back
Company
Contas da Semana
Year
2026

Contas da Semana, a household finance app that thinks in weeks

  • Product strategy
  • Interaction design
  • Motion
  • Usability testing
  • Claude Code
  • Supabase

Contas da Semana (“this week’s bills”) runs a household’s money on weeks instead of months. Each week, Monday to Sunday, holds what came in and what’s due; whatever is left rolls into the next one. When a week goes negative, the app shows the overdraft and plans the week it gets paid back.

It began as a Google Docs spreadsheet my wife and I filled in by hand. The app keeps its logic and does the part we kept getting wrong: the math, and the warning before the money runs out.

Open the invite
The test house opening with the welcome tour on the month's income

Accounts are created only by invite, so the invite is everyone’s first screen and had to feel like an occasion. The envelope arrives sealed. You write your name on it, the wax seal breaks and a steel card rises with your name engraved.

Readers of this case get an open invite: the same envelope, then a test house with a year of sample data and the guided tour every new member sees. Nothing is saved.

The month on desktop: income, spending, final balance and overdraft, above the weeks with their leftovers and bills

Process

I’m a product designer, not a developer. I designed and built the whole product with Claude Code: React without a build step, Supabase for data and sign-in, Vercel for hosting.

Before features, I wrote the rules. A product spec describes every calculation (weeks cut at the end of the month, leftovers, overdraft payback, the amount safe to spend) and is updated with every change, so the spec, not memory, decides how the money behaves.

References came from Mobbin (Monarch, Origin, Front). The invite card was modelled and lit in Blender and exported as layers the site animates.

Até domingo: the daily amount safe to spend, after setting aside what the next four weeks need
Balance horizon: each day of the year coloured by whether money is left, at zero or in overdraft
Shared notes with reminders, delivered in the app and on WhatsApp

Testing

  • Automated checks run the rules against a copy of our real data, so a change to the overdraft logic can’t silently move a number.
  • Every flow was tried on the phone first, where the app is used most: logging an expense takes seconds, from a quick-add page or a Siri shortcut.
  • Statement import was tested with real exports from three banks (CSV, password-protected PDFs and OFX), and every import can be undone.
  • The invite and the setup wizard are tracked step by step in Hotjar (step names only, no financial data) to see where new people drop off.

Results

  • The weekly spreadsheet is retired. Our household runs on the app every week.
  • From the first commit to an invite-only product with separate households, roles, reminders and statement import in under two weeks: 119 commits.
  • New people join through a link, set up their house in a few questions and get a guided tour, without help from me. You can try the same path, with a test house instead of a real one.
Open your invite

Learnings

  • AI wrote the code, but it didn’t decide what was worth building. Taste chose what to keep and what to cut, and craft kept a detail on the table until it held, like the envelope that took several rounds before it felt like an occasion.
  • Writing the rules down first was the most valuable design work. Every ambiguity found in the spec was a bug that never reached the app.
  • A finance app is judged on trust. Showing the math (what rolled over, what’s set aside, why today’s number is zero) mattered more than any visual polish.
  • Building it myself turned the loop between an idea and a real test on my own phone from weeks into minutes. I simply loved making it, and I keep improving it as I feel the need and as feedback comes in from the friends and family who use it. It also made one thing clear: I need to build more products of my own.

Need a Hands-On Designer?

Let’s chat!

Schedule a conversation

Or feel free to email me at: