https://github.com/alcibiadesc/happy-balance
π The Private, Self-Hosted Alternative to Fintonic, Mint & YNAB - Take control of your financial data with this privacy-focused personal finance tracker
https://github.com/alcibiadesc/happy-balance
budgeting csv-import docker expense-tracker finance money-management multi-language n26 open-source personal-finance postgresql privacy self-hosted sveltekit typescript
Last synced: 2 months ago
JSON representation
π The Private, Self-Hosted Alternative to Fintonic, Mint & YNAB - Take control of your financial data with this privacy-focused personal finance tracker
- Host: GitHub
- URL: https://github.com/alcibiadesc/happy-balance
- Owner: alcibiadesc
- License: other
- Created: 2025-09-07T12:41:55.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-04-01T20:37:53.000Z (2 months ago)
- Last Synced: 2026-04-02T06:47:55.349Z (2 months ago)
- Topics: budgeting, csv-import, docker, expense-tracker, finance, money-management, multi-language, n26, open-source, personal-finance, postgresql, privacy, self-hosted, sveltekit, typescript
- Language: TypeScript
- Homepage: https://github.com/alcibiadesc/happy-balance
- Size: 8.36 MB
- Stars: 6
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: docs/SECURITY.md
Awesome Lists containing this project
README
# π° Happy Balance - Personal Finance Tracker







**π The Private, Self-Hosted Alternative to Fintonic, Mint & YNAB**
_Take control of your financial data. No cloud, no tracking, no compromises._
**β οΈ EXPERIMENTAL PROJECT - NOT PRODUCTION READY β οΈ**
[Features](#-features) β’ [Screenshots](#-screenshots) β’ [Quick Start](#-quick-start) β’ [Docker](#-docker) β’ [Development](#-development) β’ [License](#-license)
---
## π― Why Happy Balance?
Unlike Fintonic, Mint, or other cloud-based finance apps that monetize your data, Happy Balance runs entirely on your own infrastructure. Your financial data never leaves your control.
### π Compare with Popular Apps
| Feature | Happy Balance | Fintonic | Mint | YNAB |
|---------|--------------|----------|------|------|
| π Self-Hosted | β
| β | β | β |
| π΅οΈ Zero Tracking | β
| β | β | β |
| π° Free Forever | β
| Freemium | Ads | Paid |
| π Open Source | β
| β | β | β |
| π Data Ownership | 100% Yours | Their Servers | Their Servers | Their Servers |
| π« No Ads | β
| β | β | β
|
Happy Balance is an open-source personal finance tracker designed with simplicity and privacy in mind. Track expenses, manage budgets, and gain insights into your financial habits without compromising your data privacy.
### π Key Principles
- **Privacy First**: Your data stays yours - self-hosted solution
- **Minimalist Design**: Clean, distraction-free interface
- **No Tracking**: Zero telemetry, zero external analytics
- **Open Source**: Transparent, auditable, and community-driven
## β¨ Features
### Core Functionality
- π **Expense Tracking** - Categorize and track all your expenses
- π **Visual Analytics** - Beautiful charts and insights
- π·οΈ **Smart Categorization** - AI-powered transaction categorization
- π± **Multi-Currency** - Support for multiple currencies
- π **Multi-Language** - English and Spanish support
- π **Dark Mode** - Eye-friendly dark theme
- π± **Responsive** - Works on desktop, tablet, and mobile
### Technical Features
- π **JWT Authentication** - Secure user sessions
- π₯ **Multi-User Support** - Role-based access control (Admin, User, Viewer)
- π **CSV Import** - Import transactions from your bank (N26 compatible)
- π **Real-time Updates** - Instant UI updates
- π³ **Docker Ready** - Easy deployment with Docker Compose
- π **High Performance** - Built with SvelteKit and TypeScript
### π¦ Bank Import Compatibility
Happy Balance currently supports CSV import from:
- **N26** - Full support for N26 CSV export format
- **Generic CSV** - Customizable import for other banks
Want support for your bank? [Create an issue](https://github.com/alcibiadesc/happy-balance/issues) with a sample CSV format (with dummy data) and we'll implement it!
## πΈ Screenshots
### π° Dashboard Overview
Track your income, expenses, and financial health at a glance

### π Transaction Management
Categorize and track every expense with powerful filtering

### π·οΈ Smart Categories
Organize your expenses with customizable categories

### π± Mobile Responsive
Manage your finances on the go

### βοΈ User Settings
Customize your experience with comprehensive settings

## π Quick Start
### Option 1: Docker (Easiest) π³
```bash
# Clone the repo
git clone https://github.com/alcibiadesc/happy-balance.git
cd happy-balance
# Start everything with one command
docker-compose up -d
```
Access at: `http://localhost:5173`
- Username: `admin`
- Password: `admin123`
That's it! π Everything is automatically configured.
### Option 2: Development Setup
```bash
# Clone the repository
git clone https://github.com/alcibiadesc/happy-balance.git
cd happy-balance
# Install dependencies
pnpm install
cd backend && pnpm install
# Setup database
npx prisma migrate dev
# Start development
pnpm dev # Frontend on :5173
cd backend && pnpm dev # Backend on :3004
frontend:
build: .
environment:
VITE_API_URL: http://localhost:3004/api
ports:
- "5173:5173"
```
### Using Portainer
1. Create a new stack in Portainer
2. Use the repository URL: `https://github.com/alcibiadesc/happy-balance.git`
3. Set the compose path to `docker-compose.yml`
4. Configure environment variables
5. Deploy the stack
[Full Docker documentation β](./DOCKER_INSTALL.md)
## π οΈ Development
### Tech Stack
**Frontend:**
- SvelteKit 2.0
- TypeScript 5.0
- Vite
- TailwindCSS (via custom CSS variables)
**Backend:**
- Node.js + Express
- Prisma ORM
- PostgreSQL
- JWT Authentication
### Project Structure
```
happy-balance/
βββ src/ # Frontend (SvelteKit)
β βββ lib/ # Components and utilities
β βββ routes/ # SvelteKit routes
β βββ app.html # HTML template
βββ backend/ # Backend API
β βββ src/
β β βββ domain/ # Business logic
β β βββ infrastructure/# Database, external services
β β βββ application/ # Use cases
β βββ prisma/ # Database schema
βββ docker-compose.yml # Docker configuration
βββ package.json # Frontend dependencies
```
### Development Commands
```bash
# Frontend
pnpm dev # Start dev server
pnpm build # Build for production
pnpm preview # Preview production build
pnpm lint # Run linter
pnpm format # Format code
# Backend
cd backend
pnpm dev # Start dev server
pnpm build # Build TypeScript
pnpm start # Start production server
pnpm db:migrate # Run migrations
pnpm db:seed # Seed database
```
### Environment Variables
Create a `.env` file in the root:
```env
# Backend
DATABASE_URL=postgresql://user:pass@localhost:5432/happy_balance
JWT_ACCESS_SECRET=your-secret-key-min-32-chars
JWT_REFRESH_SECRET=another-secret-key-min-32-chars
ADMIN_USERNAME=admin
ADMIN_PASSWORD=secure_password
# Frontend
VITE_API_URL=http://localhost:3004/api
```
## π€ Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### How to Contribute
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
### Code of Conduct
Please read our [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.
## π License
This project is licensed under the **GNU General Public License v3.0** - see the [LICENSE](LICENSE) file for details.
### What this means:
- β
You can use this software for personal and commercial purposes
- β
You can modify and distribute the software
- β οΈ Any modifications must be released under GPLv3
- β οΈ If you distribute this software, you must provide the source code
- πΌ For commercial licensing options, please contact us
## π Security
- **No telemetry or tracking**
- **All data stored locally or on your server**
- **Encrypted passwords (bcrypt)**
- **JWT tokens for authentication**
- **CORS protection**
- **SQL injection prevention (Prisma ORM)**
Found a security issue? Please open a security issue on GitHub.
## πΊοΈ Roadmap
- [ ] Enhanced transaction categorization
- [ ] Advanced reporting and insights
- [ ] Data export in multiple formats
- [ ] Multi-workspace support
- [ ] Advanced budgeting rules
## π Acknowledgments
- Built with [SvelteKit](https://kit.svelte.dev/)
- Database ORM by [Prisma](https://www.prisma.io/)
- Icons by [Lucide](https://lucide.dev/)
- Inspired by minimalist design principles
## π Support
- π [Issue Tracker](https://github.com/alcibiadesc/happy-balance/issues)
- π¬ [Discussions](https://github.com/alcibiadesc/happy-balance/discussions)
## β οΈ Disclaimer
This is an **experimental project** under active development. It may contain bugs and is not recommended for production use without thorough testing. Use at your own risk.
---
**Made for the open-source community**
[β¬ Back to top](#-happy-balance---personal-finance-tracker)