A personal budgeting app inspired by YNAB.
Bany is an envelope budgeting application built for individuals and households who want full control over their financial data. It supports multi-currency budgets, real-time UI updates via Phoenix LiveView, and importing existing YNAB export files.
- Create named budgets with a currency selection (20+ supported currencies)
- Share plans across multiple users
- Organize spending into groups (e.g. Housing → Rent, Utilities)
- Per-category totals: assigned, spent, and available
- Inflow categories for tracking income sources
- Assign money to categories per month (YNAB-style envelope budgeting)
- "Ready to Assign" calculation: all-time inflows minus all-time allocations
- Full-text search across memo, payee, and amount
- Multi-filter panels: category, account, tag, and date range
- Inline editing for single rows and batch multi-row edits
- Column sorting with URL-persisted pagination
- Track financial accounts (checking, savings, etc.)
- Scoped per user and plan
- Auto-created from imports or manual transaction entry
- Searchable payee input on transaction forms
- Color-coded labels (21 color options) for transactions
- Filter transactions by one or multiple tags
- Import existing YNAB export files
- Auto-creates plans, accounts, category groups, categories, and payees
- Row-level error reporting with import statistics
| Layer | Technology |
|---|---|
| Backend | Elixir / Phoenix 1.8 |
| UI | Phoenix LiveView 1.0 — real-time interactive UI without writing JS |
| Large lists | LiveView Streams — efficient DOM diffing for large transaction lists |
| Database | PostgreSQL via Ecto |
| Styling | Tailwind CSS |
| Icons | Heroicons |
| Currency | money — multi-currency support |
| CSV parsing | nimble_csv — YNAB CSV import |
| Auth | bcrypt_elixir — password hashing |
| Dev environment | devenv — reproducible Nix-based setup |
devenv shelldevenv upmix setupThe app will be available at http://localhost:4000.
devenv shellactivates the Nix environment with Elixir and all dependenciesdevenv uplaunches both the Phoenix server and a local PostgreSQL instance — no manual role or database creation needed- PostgreSQL connection is configured automatically via environment variables in the devenv shell