Build Your Own Rocket Money Clone

Run broke locally, build a budget, and ask AI for private money insights.

Introduction

30 Second Summary

Money apps often ask you to hand over a full view of your finances before they can tell you anything useful. That tradeoff can feel too large for a simple monthly plan.

In this project, you will run broke on your computer to create a private monthly plan from a fictional bank statement. Its AI answers questions from a privacy-protected summary of the money stored in your own database.

What You'll Build

You open your local broke dashboard to a $3,075 monthly budget with $1,225 left to save.

By the end of this project, you'll have:

  • Your own local money dashboard that you can stop from Terminal or PowerShell. You can restart it whenever you want to inspect your money.
  • A private money picture stored in your own Supabase project. It shows 358 fictional transactions. The dashboard groups them into 8 spending categories. Your bank total reads $17,715. Your suggested budget lands at $3,075 per month. It leaves $1,225 to save.
  • An AI-assisted money check-in where you can ask questions through OpenRouter. The panel confirms that it Sees a summary of your money.
  • Secret Mission: Replace the CSV dataset with a Plaid Sandbox test bank. You will reveal linked-bank features such as upcoming bills.

Do I need coding experience?

No coding experience is required. You need a Mac or Windows computer with internet access and the sample bank statement. Open the broke sample statement, then choose File → Download → Comma Separated Values (.csv) to save it as a CSV file.

Before We Start

Before the hands-on work begins, take a moment to commit to the private money dashboard you are building. This gives you a clear reason for keeping its database under your control.

Install and Start broke

Your private money dashboard starts on your Mac or Windows computer. The broke installer needs a compatible Node.js runtime.

The installer also needs Git. Terminal on macOS or PowerShell on Windows lets you verify both tools before the setup page runs on localhost.

In this step, get ready to:
  • Confirm that Node.js version 22.18 or newer is available.
  • Confirm that Git is available in Terminal or PowerShell.
  • Install broke so its setup page runs locally.
Check or install Node.js

Node.js runs the broke app. The app requires version 22.18 or newer.

macOS

  • Press Cmd+Space to open macOS search.
  • Type Terminal into the search bar.
  • Press Enter to open Terminal.
  • Check your installed Node.js version by running this command:
node --version

What does this check do?

This command asks Node.js to print its installed version. It does not change anything on your Mac.

Windows

  • Press the Windows key to open Windows search.
  • Type PowerShell into the search bar.
  • Press Enter to open PowerShell.
  • Check your installed Node.js version by running this command:
node --version

What does this check do?

This command asks Node.js to print its installed version. It does not change anything on your Windows computer.

✔️ I see the required version

The first dependency is ready. Your Node.js runtime meets broke's minimum requirement of 22.18 or newer.

ⓧ I see an older version

An older runtime may not support broke's pinned dependencies. The current LTS release meets the required minimum.

macOS

You should see the installer download to your Mac.

  • Open the downloaded installer.
  • Complete the guided installation.

You should see the installer confirm that Node.js is installed.

  • Return to the Terminal window from earlier.
  • Confirm the new Node.js version by running this command:
node --version
What does this check confirm?

This second check confirms that Terminal can use the newly installed Node.js runtime.

You should now see version 22.18 or newer.

Windows

You should see the installer download to your Windows computer.

  • Open the downloaded installer.
  • Complete the guided installation.

You should see the installer confirm that Node.js is installed.

  • Press the Windows key to open Windows search.
  • Type PowerShell into the search bar.
  • Press Enter to open a new PowerShell window.
  • Confirm the new Node.js version by running this command:
node --version
What does this check confirm?

This second check confirms that PowerShell can use the newly installed Node.js runtime.

You should now see version 22.18 or newer.

ⓧ Command not found

Your terminal cannot find a Node.js runtime yet. Installing the current LTS release adds the runtime that broke needs.

macOS

You should see the installer download to your Mac.

  • Open the downloaded installer.
  • Complete the guided installation.

You should see the installer confirm that Node.js is installed.

  • Return to the Terminal window from earlier.
  • Confirm that Node.js is available by running this command:
node --version
What does this check confirm?

This second check confirms that Terminal can find the newly installed Node.js runtime.

You should now see version 22.18 or newer.

Windows

You should see the installer download to your Windows computer.

  • Open the downloaded installer.
  • Complete the guided installation.

You should see the installer confirm that Node.js is installed.

  • Press the Windows key to open Windows search.
  • Type PowerShell into the search bar.
  • Press Enter to open a new PowerShell window.
  • Confirm that Node.js is available by running this command:
node --version
What does this check confirm?

This second check confirms that PowerShell can find the newly installed Node.js runtime.

You should now see version 22.18 or newer.

macOS

Still seeing the wrong Node.js version?

  • Press Cmd+Space to open macOS search.
  • Type Terminal into the search bar.
  • Press Enter to open a fresh Terminal window.
  • Return to the version check above.

Help me diagnose my Node.js installation. Share the diagnosis with the NextWork community if your Mac needs environment-specific help.

Windows

Still seeing the wrong Node.js version?

  • Press the Windows key to open Windows search.
  • Type PowerShell into the search bar.
  • Press Enter to open a fresh PowerShell window.
  • Return to the version check above.

Help me diagnose my Node.js installation. Share the diagnosis with the NextWork community if your Windows computer needs environment-specific help.

Check or install Git

The broke installer needs Git to place the project on your computer. A version line confirms that Git is available.

macOS

  • Check Git in the same Terminal window by running this command:
git --version

What does this check do?

This command asks Git to print its installed version. macOS may offer to install its developer tools if Git is unavailable.

Windows

  • Check Git in the same PowerShell window by running this command:
git --version

What does this check do?

This command asks Git to print its installed version. Windows does not change anything during this check.

macOS

✔️ I see a Git version

Git is ready for the broke installer. A printed version line confirms that Terminal can use it.

ⓧ macOS offers developer tools

The dialog is macOS offering the developer tools package that includes Git.

  • Accept the developer tools installation in the macOS dialog.
  • Complete the guided installation.

You should see macOS confirm that the installation has finished.

  • Return to the Terminal window from earlier.
  • Confirm that Git is available by running this command:
git --version
What does this check confirm?

This second check confirms that Terminal can use Git from the installed developer tools.

You should now see a Git version line.

ⓧ Command not found

The next command asks macOS to open its developer tools installation dialog.

  • Start the developer tools installation by running this command:
xcode-select --install
What does this command do?

This command asks macOS to install Xcode Command Line Tools. That package provides Git.

  • Complete the installation in the macOS dialog.

You should see macOS confirm that the installation has finished.

  • Return to the Terminal window from earlier.
  • Confirm that Git is available by running this command:
git --version
What does this check confirm?

This check confirms that Terminal can use Git after the developer tools installation.

You should now see a Git version line.

Windows

✔️ I see a Git version

Git is ready for the broke installer. A printed version line confirms that PowerShell can use it.

ⓧ Command not found

PowerShell cannot find Git yet. Git for Windows adds the command that broke needs.

You should see the installer confirm that Git for Windows is installed.

  • Press the Windows key to open Windows search.
  • Type PowerShell into the search bar.
  • Press Enter to open a new PowerShell window.
  • Confirm that Git is available by running this command:
git --version
What does this check confirm?

This check confirms that the new PowerShell window can use Git for Windows.

You should now see a Git version line.

macOS

Still unable to use Git?

  • Finish any pending developer tools installation before rerunning the check.
  • Return to the tab that matches the result shown in Terminal.

Help me diagnose my Git installation. Share the diagnosis with the NextWork community if your Mac needs environment-specific help.

Windows

Still unable to use Git?

  • Finish any pending Git for Windows installation before rerunning the check.
  • Return to the tab that matches the result shown in PowerShell.

Help me diagnose my Git installation. Share the diagnosis with the NextWork community if your Windows computer needs environment-specific help.

Install and start broke

The installer turns your checked tools into a running local app. It handles the project files plus pinned dependencies for you.

macOS

The installer starts broke in this Terminal window. Keep the window open because closing it stops the app.

The installer prints its progress in Terminal, then opens a page in your browser.

  • Install broke by running this command:
curl -fsSL https://raw.githubusercontent.com/nextwork-projects/broke/main/install.sh | sh

What does this installer do?

  • The download step fetches the official broke installer.
  • The installer places the app in ~/broke.
  • It installs the pinned dependencies.
  • It prepares local configuration support through .env.local.
  • It adds broke as the restart command.
  • It starts the app on localhost.
  • It opens the setup page in your browser.
  • Keep this Terminal window open while broke is running.
  • Switch back to the browser window opened by the installer.

You should see Terminal print broke is running at http://localhost:....

You should also see the broke setup page open at that localhost address.

Windows

PowerShell downloads broke into your home folder. The first run can take a few minutes while it installs the pinned packages.

Run each command separately. The final command starts broke and keeps using this PowerShell window.

  • Move to your Windows home folder by running this command:
cd $HOME
  • Download the broke repository by running this command:
git clone https://github.com/nextwork-projects/broke
  • Move into the downloaded broke folder by running this command:
cd broke
  • Install the pinned packages and start broke by running this command:
npm run app

What do these commands do?

  • The clone command copies the official broke repository into $HOME\broke.
  • The start command installs the pinned dependencies.
  • It starts the app on localhost.
  • It opens the setup page in your browser.
  • Keep this PowerShell window open while broke is running.
  • Switch back to the browser window opened by broke.

You should see PowerShell print broke is running at http://localhost:3000/setup, or the same message with the next free port.

You should also see the broke setup page open at that localhost address.

macOS

Did broke fail to start?

  • Return to the matching check above if Terminal mentions missing Node.js or Git.
  • Install the current LTS release if Terminal reports a Node.js version older than 22.18.
  • Copy the localhost URL from Terminal into your browser's address bar if the setup page does not open.

Help me troubleshoot the broke installer. Share the diagnosis with the NextWork community if your Mac needs environment-specific help.

Windows

Did broke fail to start?

  • Return to the matching check above if PowerShell mentions missing Node.js or Git.
  • Install the current LTS release if PowerShell reports a Node.js version older than 22.18.
  • Copy the localhost URL from PowerShell into your browser's address bar if the setup page does not open.

Help me troubleshoot the broke startup. Share the diagnosis with the NextWork community if your Windows computer needs environment-specific help.

Your local broke app is live. Next, you'll connect it to a private database that can store sign-ins plus money data.

Connect Your Private Database

Your copy of broke is already running on localhost. It still has nowhere to save your money data.

Supabase gives you a database under your control. In this step, you connect that database through the Session pooler so broke can prepare its protected tables.

In this step, get ready to:
  • Create a free Supabase project with the default Data API settings.
  • Connect broke with the Project URL plus both project keys.
  • Turn on broke's tables through the Session pooler.
Create a Supabase project

A Supabase project becomes the private home for your sign-in details plus money data. Its database password is a live credential.

This credential deserves a careful start, so taking your time here is the safest path. Private storage keeps the password out of screenshots plus chat messages.

  • Switch back to the broke setup page in your browser.
  • Follow the Supabase link in the Create your free database card.
  • Create a free Supabase account using your preferred sign-in method if the sign-up page appears.
  • Start a new project on the Free plan.
  • Enter any project name in the project name field.
  • Create a strong database password.
  • Store the database password in your password manager.
  • Leave the Data API options at their defaults.

Why Keep the Data API Enabled?

The Data API lets broke reach your Supabase project. Your broke app creates its own tables through this connection.

Row-level security limits each signed-in user to their own data. Leaving the defaults in place lets broke apply those protection rules.

  • Submit the project creation form.

Supabase opens your new project's page after creation finishes. This confirms that your empty database is ready for broke.

Connect broke with your project keys

The setup page needs your Project URL to find the project. It uses a publishable key for client access.

The secret key gives broke powerful setup access. This part handles a sensitive value, so a careful transfer keeps it confined to your local app.

  • Return to your Supabase project.
  • Open the project's API Keys page.
  • Arrange the Supabase tab beside the broke setup tab.
  • Transfer the Project URL into broke's matching box.
  • Transfer the Publishable key beginning with sb_publishable_ into broke's matching box.
  • Keep the secret key out of screenshots plus chat messages.
  • Transfer the Secret key beginning with sb_secret_ into broke's matching box.
  • Click Save in broke.

Once broke accepts the values, the Create your free database card shows that it is connected. Good progress. Your broke app can now identify your project without redisplaying the saved secret.

Project Values Not Connecting?

  • Confirm that all three values come from the same Supabase project.
  • Check that the publishable key begins with sb_publishable_.
  • Check that the secret key begins with sb_secret_.

Help me check my Supabase project values without sharing any secret.

Turn on the database through the Session pooler

The Session pooler gives broke a persistent database connection that works on IPv4 home networks. Direct connection can fail on those networks.

The connection picker is a little fiddly because several methods appear together. The Method menu is where the Session pooler appears.

  • Return to your Supabase project tab.
  • Click Connect at the top of the project.
  • Choose Session pooler under Method.
  • Keep Direct connection unselected.
  • Copy the Session pooler connection string.
  • Switch back to the broke setup page.
  • Paste the connection string into the matching box.
  • Enter your stored database password into the password box.

Saving runs broke's database updates and checks both setup cards.

  • Click Save in broke.

The Create your free database card shows that it is connected. The Turn on your database card shows that the tables are up to date.

You made it through the most sensitive setup safely. Your broke app now has current tables plus row-level security rules in your own database.

Database Setup Still Failing?

  • Select Session pooler instead of Direct connection.
  • Recopy the Session pooler connection string from Supabase.
  • Re-enter the database password you chose during project creation.
  • Reset the database password in Supabase if you no longer know it.

Help me troubleshoot the Session pooler connection without exposing my password or secret key.

Next, you'll prove your connected Supabase database works by signing in to broke.

Sign In and Inspect the Empty App

Your local broke setup can now reach your Supabase database. Next, you'll prove that the complete sign-in path returns to your copy of broke on localhost.

Supabase uses an email sign-in link for this flow. The clean starting point also reveals what the dashboard can show before transaction history exists.

In this step, get ready to:
  • Set the Supabase Site URL to your current broke localhost address.
  • Complete the email sign-in flow in the same browser.
  • Reach the dashboard without adding money data so you can inspect its empty state.
Set the Supabase Site URL

The Site URL tells Supabase where to return your browser after sign-in. The localhost address is a little fiddly because broke can choose the next free port.

  • On the broke sign-in page, find the One step before your first sign-in prompt.
  • Record the localhost address shown in the prompt here: your broke localhost address.
  • Click the link in the prompt to open Supabase URL Configuration.
  • Paste your broke localhost address into the Site URL field.
  • Click Save.

You should see the Site URL field displaying the same localhost address as broke. You've cleared the first fiddly part of the sign-in flow.

Does the address look different?

Check the full address against the one shown by broke. The protocol and port must match.

Ask for help checking the redirect address.

Sign in with the email link

Supabase sends a sign-in email when you press Send code. Its default email contains a link that returns the same browser to broke.

  • Switch back to the broke sign-in page.
  • Enter your email address in the email field.
  • Click Send code once.

Your first email from Supabase is titled Confirm your email address, not a sign-in email. Its link signs you in the same way.

  • Open your email inbox in another tab of the same browser.
  • Open the newest email from Supabase.
  • Select Confirm email address, or the sign-in link, in that email.

You'll return to broke as a signed-in user. That's the delicate part done: your Supabase-backed account now reaches your local app.

Sign-in link not working?

  • Use the newest email because each sign-in link works once.
  • Follow the link in the same browser that requested it.
  • Avoid pressing Send code repeatedly because Supabase limits its hosted authentication emails.

Help me troubleshoot the Supabase sign-in link.

Continue without adding money data

The welcome flow offers ways to add transaction history. A clean baseline lets you test what the signed-in app can show with its database still empty.

  • Check the country broke guessed on Where do you live? and press Continue.
  • On Link your bank, leave Use made-up data alone. It would mix with the statement you import in Step 4.

Skipping the bank shows what broke looks like before it has any transactions.

  • Select Skip for now on Link your bank.
  • Select Continue on What are you working toward?, then Go to your dashboard.
  • Use broke's navigation to open the spending view.

You'll see no imported transactions. The dashboard has no useful spending picture yet.

What does the empty state prove?

This is the intended shortfall. Your sign-in and private database work.

The missing spending picture proves that broke needs transaction history before it can explain where money goes.

Your Supabase-backed sign-in works from start to finish. Next, you'll give the empty dashboard a consistent transaction history and watch the money picture take shape.

Import Transactions and Build a Budget

Your private Supabase-backed broke account is working. The empty dashboard proved that it still needs transaction history.

A useful money picture needs one consistent transaction source. This step imports the supplied fictional statement before turning its history into a monthly plan.

In this step, get ready to:
  • Import the supplied bank statement into a new account.
  • Confirm the imported money picture on the dashboard.
  • Accept the suggested monthly budget.
Import the sample statement

A CSV file stores table-like data as rows and columns. The import mapping tells broke which columns contain each transaction detail.

  • Select Accounts in broke's left sidebar, then Add account.
  • Scroll past the bank options to the other ways to add an account.
  • Select Import a statement.
  • Choose broke-sample-statement.csv in the file picker.

How does the mapping work?

Each mapping connects a column in the statement to a transaction field in broke. The money-out option preserves expenses as negative amounts.

  • Check that Date is already mapped to Date.
  • Check that the preview shows dates in the mapped date column.
  • Check that Description is already mapped to Description.
  • Check that the preview shows readable transaction descriptions.
  • Check that Amount is already mapped to Amount.
  • Check that Amounts says One column, money out is negative.
  • Confirm that the preview reports 358 transactions.
  • Type Checking as the account name and select Import 358 transactions.

That closes the empty-dashboard gap: your private account now holds 358 fictional transactions.

Preview not showing 358 transactions?

  • Confirm that you selected broke-sample-statement.csv.
  • Check each mapping against the values shown above.
  • Confirm that money out uses the negative-value option.

Help me fix the statement import.

Inspect the money picture

The dashboard turns imported transactions into totals and spending categories. These exact values confirm that you imported the supplied dataset cleanly.

  • Return to the Dashboard.
  • Confirm that your bank balance shows $17,715.
  • Open broke's spending view.
  • Check how much you spent this month, and on which categories.
  • Check the Coming up area.

You will see no upcoming recurring bills from this import. The statement contains completed transactions without linked-bank recurring-payment data.

Why Is Coming Up Empty?

Statement imports provide completed transaction rows. A linked bank provides the recurring-payment data that can populate upcoming bills.

The exact balance and category count are your checkpoint for one clean import.

Seeing Doubled Totals or Two Rents?

The supplied fictional file makes clearing this imported dataset reversible.

  • Avoid adding made-up data before reimporting the statement.
  • Select Settings in broke.
  • Select Database.
  • Choose Clear my data.
  • Confirm the deletion.
  • Reimport broke-sample-statement.csv once using the mapping from the previous substep.
  • Recheck the dashboard totals.

Help me restore the expected totals.

Accept the suggested monthly budget

Personal budgeting turns transaction history into planned category limits. Broke uses the fictional spending history to prepare a monthly suggestion.

  • Select Budgets in broke.
  • Check that broke suggests 8 categories and shows This leaves $1,225 to save.
  • Select Use these · $3,075/mo.

The Summary now shows $1,726 spent of $3,075.

  • Scroll down to the Summary.
  • Read the line under Unbudgeted this month.

You will see Income about $4,300/mo. Your budgets leave $1,225 to save. The exact result confirms that the import and budget suggestion match the supplied dataset.

You have turned a blank dashboard into a complete monthly money plan with a visible savings margin.

Your transaction history now supports a working budget. Next, you will connect AI to ask flexible questions about a privacy-protected money summary.

Connect AI to Your Money Summary

Your 358 imported transactions now produce a $3,075 monthly budget with $1,225 left to save. That plan answers fixed questions about your spending.

Flexible money questions need an AI connection. In this step, you'll connect OpenRouter through OAuth PKCE.

Your broke app limits the cloud model to a summary of your money. Individual transactions stay out of the request.

In this step, get ready to:
  • Connect OpenRouter with Free models selected.
  • Approve the connection after checking its localhost address.
  • Ask broke AI about your imported money summary.
Connect OpenRouter with free models

OpenRouter gives broke access to cloud AI models through one connection. The Free models option keeps this project at $0.

Connecting an account can feel sensitive. This flow never asks you to copy an API key into broke.

  • Select More in broke's left sidebar, then Connect your AI.
  • Find the OpenRouter card at the top of the page.
  • Read the note under the button. Free models only get a summary of your money.
  • Select Connect OpenRouter.
  • Complete the free OpenRouter account flow if prompted.

You'll arrive at OpenRouter's approval page. The page identifies the app as running on your computer.

Approve the localhost app

Authorization screens deserve a careful check. The localhost address confirms that the approval returns to the copy of broke running on your computer.

  • Check that the address shown on OpenRouter's page contains localhost.
  • Approve the connection using OpenRouter's approval control.
  • Wait for OpenRouter to return you to broke.
  • Confirm that broke shows OpenRouter as connected.
  • Check that the model picker in the OpenRouter card shows Free models.

Your signed-in broke user now has an OpenRouter connection. You have not copied or exposed an API key.

How does OAuth PKCE help?

OAuth PKCE moves authorization to OpenRouter's page. Your broke app receives access after you approve the localhost app.

You do not paste an API key into broke. That removes a secret-copying step from the project.

Ask about your money summary

Your broke app applies a summary privacy gate before each cloud request. The AI receives a money overview that supports broad questions.

What reaches the AI?

  • The summary includes monthly totals.
  • The amounts are rounded.
  • The names use placeholders.
  • Individual transaction details stay out of the request.
  • Select Ask broke ai in broke.
  • Confirm that the panel displays Sees a summary of your money.
  • Enter Where did most of my money go this month? in the question field.

The answer comes from the summary, not from your individual transactions.

  • Submit the question with the panel's send control.

An answer arrives about the imported money picture. Its wording can vary because OpenRouter can choose a different free model.

The panel continues to display Sees a summary of your money. The footer keeps Not financial advice.

That's the full privacy-protected loop working. Your broke app turns your database summary into a flexible answer without sending individual transactions.

No AI answer?

  • Wait one minute if you see Too many requests. Free models get busy, so try again in a minute.
  • Ask the question again after waiting.
  • Stop the connection if OpenRouter returns to an unexpected address.
  • Confirm that broke is still running at its localhost address in Terminal or PowerShell from earlier.

Help me troubleshoot my OpenRouter connection.

Secret mission

Connect a Plaid Test Bank

Plaid Sandbox supplies mock linked-bank data. Clear the CSV dataset first. Then connect a test bank so Coming up can use recurring-payment data.

Clean Up Your Resources

Clean Up Your Resources

Your copy of broke runs on your Mac or Windows computer, so its local process has no ongoing cost. The connected Supabase Free project, OpenRouter free models, and Plaid Sandbox can remain at $0.

Resources you used:

  • A running broke process in Terminal on macOS or PowerShell on Windows that serves the app on localhost.
  • A local broke folder in your home directory containing pinned dependencies and .env.local.
  • A Supabase Free project connected through the Session pooler.
  • An OpenRouter OAuth PKCE connection for summary-based AI questions.
  • A Plaid Sandbox test-bank connection with imported accounts and recurring-payment data for Coming up.

Keep everything running

No action needed. Choose this if you want to keep using your private money workflow on your Mac or Windows computer.

macOS

  • Keep the Terminal window from earlier open to leave broke available on localhost.
  • Keep Free models selected in broke.
  • Keep Test banks selected in Banks settings.

Windows

  • Keep the PowerShell window from earlier open to leave broke available on localhost.
  • Keep Free models selected in broke.
  • Keep Test banks selected in Banks settings.

Your Supabase project keeps the imported Plaid Sandbox data. OpenRouter remains connected for summary-based questions.

Pause - I'll come back to this later

Pause the local process while preserving your database and service connections for later.

macOS

  • Return to the Terminal window from earlier.
  • Stop broke by pressing Ctrl+C.

Windows

  • Return to the PowerShell window from earlier.
  • Stop broke by pressing Ctrl+C.

Your localhost app stops. Your Supabase data and external service connections remain available.

macOS

  • Press Cmd+Space when you are ready to return.
  • Type Terminal into macOS search.
  • Press Enter.
  • Restart broke by running this command:
broke
What does this command do?

The installer alias starts the copy in ~/broke and opens its localhost page.

You'll see broke start in Terminal. Its local website opens in your browser.

Windows

  • Press the Windows key when you are ready to return.
  • Type PowerShell into Windows search.
  • Press Enter.
  • Move to your Windows home folder by running this command:
cd $HOME
  • Move into the downloaded broke folder by running this command:
cd broke
  • Restart broke by running this command:
npm run app
What do these commands do?

The first two commands return PowerShell to your local broke folder. The final command starts the app and opens its localhost page.

You'll see broke start in PowerShell. Its local website opens in your browser.

You're back where you left off. Your saved service connections are ready to use again.

Delete - I don't want to use this again

Deleting several connected resources can feel drastic. This option removes the project's stored test data, service connections, and local app files.

  • Switch back to the running broke app.
  • Open Settings.
  • Select Database.
  • Choose Clear my data.
  • Confirm the deletion.

Your imported Plaid Sandbox accounts and transactions are removed from Supabase. The linked-bank recurring-payment data is removed too.

  • Open Connect your AI in broke.
  • Disconnect OpenRouter.
  • Return to Banks settings in broke.
  • Remove the Plaid test connection if it still appears.

The AI connection and test-bank link are now detached from broke.

  • Return to the same Supabase project from earlier.
  • Open its project settings.
  • Choose the project deletion option.
  • Complete the confirmation prompt.

The Supabase project no longer stores the broke tables or signed-in user data.

macOS

  • Return to the Terminal window from earlier.
  • Stop broke by pressing Ctrl+C.
  • Remove the local ~/broke folder by running this command:
rm -rf ~/broke
What did this remove?

The command removes ~/broke, including .env.local and the pinned dependencies. Your supplied broke-sample-statement.csv remains untouched wherever you saved it.

Windows

  • Return to the PowerShell window from earlier.
  • Stop broke by pressing Ctrl+C.
  • Remove the local $HOME\broke folder by running this command:
Remove-Item -Recurse -Force $HOME\broke
What did this remove?

The command removes $HOME\broke, including .env.local and the pinned dependencies. Your supplied broke-sample-statement.csv remains untouched wherever you saved it.

Your provider accounts remain available for future projects.

Nice Work!

Nice Work!

Great work! You now have a locally run broke app backed by your own Supabase project. Your final setup combines Plaid Sandbox test data with privacy-protected questions through OpenRouter.

What you learned:

  • Used self-hosting to run broke on localhost. Connected the app to your Supabase project through the Session pooler. Confirmed row-level security was in place for the app's tables.
  • Imported 358 fictional transactions from broke-sample-statement.csv. Verified a $17,715 balance across 8 categories. Built a $3,075 monthly budget with $1,225 left to save before safely clearing that dataset.
  • Connected OpenRouter through OAuth PKCE without copying an API key. Asked questions using a privacy-protected summary. Kept Not financial advice. visible in the AI panel.
  • Secret Mission: Replaced the CSV dataset with a Plaid Sandbox test bank. Unlocked linked-bank recurring-payment data for Coming up without mixing datasets.

Ready to quiz yourself?