Tidepool

A calm money dashboard that reads your bank exports

Ida LundLaunched yesterdayWeb appWorking · checked 3 hours ago
0:42

About

Tidepool turns the CSV files every bank lets you download into a dashboard you can actually read. It sorts transactions into categories, spots subscriptions you forgot about and shows where the month went, without connecting to your bank or sending your data anywhere.

I'm a designer, not an engineer, so the whole thing was built in conversation with Claude Code. The interesting part was teaching it the quirks of 14 Nordic bank formats. Every parser has tests, and the test files are real (anonymised) exports from people in the community.

It's open source under MIT. Fork it, add your bank, and send a pull request.

How it was made

Shared by the maker. Numbers are their own estimate.

Build time
3 weekends
AI spend
$46
Prompts
~182
Written by AI
92%

Agents

  • Claude Code

    72% of the work

    Architecture, CSV parsers, tests and the deploy pipeline

  • v0

    18% of the work

    First pass of the dashboard UI

  • ChatGPT

    10% of the work

    Category rules and onboarding copy

MCP servers3

  • Supabase

    Schema, migrations and seed data straight from the agent

  • Playwright

    End-to-end tests and the demo recording

  • GitHub

    Issues and pull requests from contributors

Build log

  1. Weekend 1

    Sketched the dashboard in v0, exported it and moved to Claude Code to wire up uploads.

  2. Weekend 1

    First parser (Danske Bank). Asked the agent to write the tests before the parser, which saved me twice.

  3. Weekend 2

    Added Supabase through the MCP server. The agent wrote the migrations and the row level security policies.

  4. Weekend 2

    Community sent 9 bank exports. 14 formats supported by Sunday.

  5. Weekend 3

    Playwright MCP for end-to-end tests. The same run records the demo video you see above.

Build recipe

The code is on GitHub. If you’d rather build it yourself than fork it, paste this into your own agent.

Written by Claude Code

From the project’s code and history · 442 words

Build a web app called Tidepool: a calm money dashboard that reads your bank exports.

What it does

Tidepool turns the CSV files every bank lets you download into a dashboard you can actually read. It sorts transactions into categories, spots subscriptions you forgot about and shows where the month went, without connecting to your bank or sending your data anywhere.

Stack

Use Next.js, Supabase, Tailwind, shadcn/ui, Vercel. The original was built with Claude Code and v0 and ChatGPT in 3 weekends, for about $46 in AI usage.

How it fits together

  • A server-rendered web app with a small API layer
  • A database for user data, with row level security on every table
  • Sign-in so each person only sees their own data

Build it in this order

  1. Set up the project, the database and sign-in, and deploy an empty page
  2. Build the main screen with realistic sample data
  3. Connect it to real data and add the one action the app exists for
  4. Add the empty states and error messages a new user will hit
  5. Write tests for anything that touches money, dates or other people's data

Tools to connect

  • Supabase MCP: schema, migrations and seed data straight from the agent
  • Playwright MCP: end-to-end tests and the demo recording
  • GitHub MCP: issues and pull requests from contributors

A prompt that worked: Teach the agent a new bank format

Here is an anonymised CSV export from a bank we don't support yet (attached as fixtures/new-bank.csv).

1. Work out the column mapping, date format, decimal separator and how refunds are shown.
2. Write a parser in lib/parsers/ that follows the same interface as lib/parsers/nordea.ts.
3. Write tests first using the fixture. Cover refunds, foreign currency rows and the summary line at the bottom.
4. Run the tests until they pass. Do not change other parsers.

When you're done, list anything in the file you weren't sure about.

Watch out for

  • Don't build settings, teams or billing before the main screen works
  • Keep the first screen useful with sample data, so the app makes sense before anyone has set it up

Done when

  • A new user can sign in and get value in under two minutes
  • Everything works on a phone
  • Tests pass for the core logic

Before writing code, ask me up to five questions about who this finance web app is for and what the first version must do. Then work in small steps: after each one, tell me how to try it and wait for my feedback.

Built from this 1

Versions people built from Tidepool, by forking it or from its recipe.

Discussion

8 comments · 2 built their own

  • Noah FischerBuilt one5 hours ago

    Built my own from the recipe for Swiss bank exports in an afternoon, and it got 96% of categories right on the first pass. The ‘tests first’ step for new banks is the best part. I've already stolen it for Patchnotes.

    • Ida LundMaker4 hours ago

      Thank you! The remaining 4% are almost always transfers between your own accounts. That's next on the list.

  • Amara Okafor8 hours ago

    How did you get the Supabase MCP to write row level security that you trust? That's the part I'm always nervous about letting an agent do.

    • Ida LundMaker7 hours ago

      I didn't trust it at first either. I asked it to write a test per policy that tries to read another user's rows and expects to fail. Those tests run in CI now.

    • Priya Raman6 hours ago

      Same approach here. Adding: ask it to explain each policy in one sentence. If it can't, the policy is probably too clever.

  • Mateo RuizBuilt one1 day ago

    Forked it for couples (Tidepool Duo). The codebase was easy to extend, everything under features/ made it painless to keep merging upstream.

  • Sofie Krag1 day ago

    As someone who doesn't code: is there a way to use this without setting up Supabase myself?

    • Ida LundMaker1 day ago

      Yes, the hosted version at tidepool.money is free. Your files are parsed in the browser and never uploaded.