Billzzz: Self-Hosted Personal Finance Manager
I used to juggle my personal finances across a hodgepodge of tools: spreadsheets for bills, mental math for variable expenses, and online calculators for debt payoff strategies. It was fragmented, time-consuming, and frankly, exhausting. I wanted something unified, simple, and most importantly, something I controlled. So I built Billzzz.
The Problem with Existing Solutions
Most personal finance apps fall into one of two camps: they’re either overly complex budgeting systems trying to do everything (and requiring you to link your bank accounts), or they’re single-purpose tools that don’t talk to each other. I didn’t want to give a third-party service access to my financial data, and I didn’t want to pay monthly subscriptions for basic finance tracking.
What I needed was a lightweight, self-hosted application that could:
- Track recurring bills and payment history
- Manage variable spending with smart budget cycles
- Help me strategize debt payoff with real projections
- Keep everything in one place, under my control
The Solution: Billzzz
Billzzz is a full-stack web application built to solve exactly these problems. It’s a unified personal finance manager with four core systems that work together seamlessly, plus analytics to give you a complete financial picture.
Bills Management
The bills system lets you track all your recurring expenses in one place. You can:
- Organize by category with custom colors and icons (utilities, subscriptions, insurance, etc.)
- Set flexible frequencies (weekly, biweekly, monthly, quarterly, yearly)
- Store payment links for quick access when bills are due
- Log payment history to track what you’ve paid and when
- Integrate payday schedules to see how bills align with your income
No more hunting through emails or checking multiple websites to remember what’s due when. Everything is searchable, filterable, and organized exactly how you need it.
Smart Spending Buckets
This is where Billzzz really shines. The buckets system handles variable expenses like groceries, gas, dining out, and entertainment with an intelligent balance carryover system.
Here’s how it works:
- Create spending buckets for different categories with monthly allocations
- Log transactions as you spend (vendor, amount, notes)
- Budget cycles auto-generate based on your payday schedule
- Balances carry forward: If you underspend, the surplus rolls over to the next cycle. If you overspend, the deficit carries forward too.
This approach gives you the flexibility of cash envelope budgeting without the rigidity. Some months you’ll spend less on groceries and more on gas, and the system adapts. You get historical cycle analysis to see spending patterns over time, which helps refine your budgets.
Debt Payoff Calculator
The debt calculator helps you strategize your way out of debt with real projections and strategy comparisons.
- Track multiple debts with interest rates, minimum payments, and current balances
- Compare payoff strategies: snowball (smallest balance first), avalanche (highest interest first), or custom priorities
- Visual timeline projections show when you’ll be debt-free under each strategy
- Integration with bills system ensures minimum payments are accounted for in your cash flow
Seeing the actual timelines and total interest paid side-by-side makes it easy to commit to a strategy and track your progress.
Analytics & Cash Flow Forecasting
Beyond tracking, Billzzz provides forward-looking insights to help you plan ahead:
- 90-day cash flow projections showing your balance trajectory based on scheduled bills and spending patterns
- Key metrics dashboard with at-a-glance financial health indicators
- Real-time strategy recalculation as you adjust debt payoff approaches with no manual refresh needed
- Smart debt/bill integration prevents double-counting minimum payments in cash flow calculations
The forecasting system uses your actual spending patterns and scheduled bills to project where your finances are headed, giving you early warning of potential shortfalls or opportunities to accelerate debt payoff.
Import & Export
Billzzz supports importing transactions from financial institutions:
- OFX/QFX file support for importing bank and credit card transactions
- Automatic transaction categorization to bucket or bill assignments
- Data portability with export capabilities for backup or analysis
This bridges the gap between your bank data and your budget, eliminating manual entry for transaction-heavy months.
Dark Mode & Customization
The interface adapts to your preferences with system-aware dark mode that automatically switches based on your OS settings, or manual toggle if you prefer control. Custom colors and icons for categories help you visually organize your financial landscape.
How It’s Built
I built Billzzz with a modern stack that prioritizes type safety and developer experience, leveraging AI-assisted development to rapidly iterate from concept to working implementation. The frontend uses SvelteKit 2 with Svelte 5’s runes-based reactivity system, which has been excellent for managing complex state. TypeScript throughout means fewer runtime surprises, and Tailwind CSS 4 keeps the styling simple and maintainable. Chart.js handles visualizations for debt payoff timelines and cash flow projections.
The backend is SQLite with Drizzle ORM, which gives you type-safe database operations without the overhead of a full database server. SQLite is perfect for self-hosted applications like this - it’s fast, reliable, and your entire financial database is just a single file you can back up however you want.
The data model organizes four main systems (bills, buckets, debts, import/export) with normalized tables and foreign key constraints. SQLite runs in WAL mode for improved concurrency, and the schema supports soft-delete for data recovery. When you log a payment, it’s recorded in payment history and linked to the bill. When you add a transaction to a bucket, it’s associated with the current cycle. Everything connects naturally.
Deployment is Docker-based, so you can run it on any platform that supports containers. Your data lives in a mounted volume, completely under your control.
Why This Matters
Since building Billzzz, I’ve gone from scattered finance tracking to having a complete picture of my financial situation in one interface. I know exactly what bills are coming up, how my variable spending is trending, and what my debt-free date looks like under different strategies.
The smart budget cycles have been particularly valuable. Instead of stressing about monthly budget resets, the carryover system smooths out the natural variability in expenses. Some months I spend $80 on gas, other months $150. The system handles it without manual adjustments.
Try It Out
The code is open source under the MIT License and available on GitHub. If you want to run your own instance, deployment instructions are in the repository.
I built this because I wanted complete control over my financial tracking without giving data to third parties or paying subscriptions. If you’re in the same boat, maybe you’ll find it useful too.