Skip to content

simplesuite/simplebudget

Repository files navigation

simpleBudget screenshot

simpleBudget

A simple, open-source budgeting app built with React, TypeScript, and Supabase. Track expenses, share budgets, and manage your money.

License Stars Issues Made with Supabase


What is simpleBudget?

simpleBudget is a free, open-source alternative to EveryDollar and YNAB for personal budgeting. It's a mobile-first progressive web app (PWA) you can install on iOS, Android, or desktop — or self-host with Docker.

Built for people who want a straightforward way to manage their money without subscriptions or ads.

Features

  • Multiple budgets — Create and switch between separate budgets
  • Sections & categories — Organize spending however you want
  • Transaction tracking — Log income and expenses with split-transaction support
  • Budget sharing — Share budgets with other users via QR code
  • Analytics — Pie charts for income and expense breakdown
  • Copy budgets — Duplicate a month's budget outline to another month
  • CSV export — Download your data anytime
  • Notifications — Daily browser reminders for upcoming transactions
  • Dark & light mode — Respects your preference
  • Offline support — Works without internet, syncs when reconnected
  • Installable PWA — Add to home screen on any device
  • Self-hostable — Run on your own server via simplesuite-selfhost

Screenshots

Budget & Transactions

Budget page Transactions Search transactions
Budget page Transactions page Transactions search
Edit category Category helpers View category (expense)
Edit category Edit category helpers View category expense

Analytics

Budget vs Spent Expense distribution Income distribution
Budget vs Spent Expense distribution Income distribution

Sharing & Export

Share budget QR code Export CSV
Sharing input Sharing QR code Export CSV

Data notice

Your data is protected by RLS policies within Supabase. Only you and those you share it with can view it.

Your data will never be sold, marketed, given away, whatever. It STAYS in simpleTracker and will never leave. If you are extra concerned about data privacy / security, please self-host the backend - and the front end if you want.

Background of this Project / Disclaimers

This has thus far been a solo project. I started this in 2022 and using all traditional development. I have only used AI for some small features this year. 95% of the code was written by me.

I did NOT make this to make money. Hear me - I made this to have an easy to use budgeting app.

The subscription model is ONLY there to cover hosting fees from supabase and vercel. If you self-host the backend, everything is free - FOREVER.

I really like a few of the big budgeting apps (EveryDollar and YNAB specifically) but everything I've tried is either too complicated for me to keep up with, or too simple to be functional. I also want full control of my data. And I don't have the discipline for the bank-connected apps to actually help me - I want it manual.

So, I took my favorite budgeting apps, pared them down, smooshed them together, and tried to keep it simple. I call it simpleBudget.

From there, I went through and added some nice-to-have features.

You may notice there aren't any issues in here. Feel free to add some if you wish. I just typically keep my list elsewhere. If people start actually using this, I will transfer to issues for tracking.

An Open-Source Alternative To

  • EveryDollar
  • YNAB (You Need a Budget)
  • Mint
  • Goodbudget
  • Copilot Money

Tech Stack

Layer Technology
Frontend React 19, TypeScript, Vite
UI MUI 7 (Material UI)
State Zustand
Backend Supabase (auth, database, real-time)
Routing react-router-dom v7
PWA vite-plugin-pwa
Testing Vitest
Deployment Vercel

Getting Started

Quick Start (Development)

# Clone the repo
git clone https://github.com/simplesuite/simplebudget.git
cd simplebudget

# Install dependencies
npm install

# Start dev server (http://localhost:3000)
npm run dev

Self-Hosting

To self-host simpleBudget (along with the other simpleSuite apps and the Supabase backend), see the simplesuite-selfhost repository. It has everything needed to run each frontend and the backend on your own infrastructure.

Environment Variables

The app works out of the box with the default Supabase project. To connect your own:

cp .env.example .env.local

Set VITE_SUPABASE_URL and VITE_SUPABASE_KEY in .env.local.

Project Structure

src/
├── components/
│   ├── modals/          # Dialog components (AddTransaction, EditCategory, etc.)
│   ├── subcomponents/   # Shared UI (AppToolbar, BudgetSection, etc.)
│   └── extras/          # Utilities (api_functions, GrabBudgetData, etc.)
├── store/               # Zustand stores (globalStore, tableStore, notificationStore)
├── lib/                 # Supabase client, notifications, offline sync
└── test/                # Unit tests

Scripts

Command Description
npm run dev Start development server
npm run build Production build
npm run preview Preview production build locally
npm test Run unit tests

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

License

This project is licensed under the GNU AGPL v3.

About

A simple, self-hostable budgeting app built with React, TypeScript, and Supabase. Track expenses, share budgets, and manage your money.

Topics

Resources

License

Contributing

Stars

22 stars

Watchers

0 watching

Forks

Sponsor this project

Contributors

Languages