Financial Freedom is an open-source alternative to commercial personal finance tools like Mint and YNAB, designed for users who want full control over their financial data without sacrificing privacy. Built with Vue.js and Laravel, it allows individuals to self-host the application on any Docker-compatible environment — from cloud providers like AWS and DigitalOcean to low-cost hardware like a Raspberry Pi. The project was initiated as a side endeavor but gained rapid traction, prompting its creators to pursue sustainable self-funding rather than venture capital or data monetization. As of now, the project is on hold during a major refactor, and installation is not recommended until further notice. However, the codebase remains publicly accessible for review, forks, and community contributions.
This tool is ideal for privacy-conscious individuals, developers, and tech-savvy users who want to avoid third-party financial platforms that track spending habits or sell data. It emphasizes transparency, local control, and ethical monetization — aligning with the values of those who believe personal finance tools should serve users, not shareholders.
What You Get
- Self-host Anywhere - Run Financial Freedom on any system that supports Docker, including AWS, DigitalOcean, or a Raspberry Pi — ensuring your financial data never leaves your infrastructure.
- Private Synchronization - All financial data is stored locally; no third-party servers or cloud syncing means your transactions, budgets, and balances remain entirely under your control.
- Works with Any Bank - Designed to import financial data via standard file uploads (e.g., CSV, OFX) with future plans for direct bank integrations — no API keys or credentials shared externally.
- Tagging and Splitting - Categorize transactions with custom tags and split single expenses across multiple categories (e.g., 60% groceries, 40% personal) for granular budgeting.
- Cash Flow and Budgets - Visualize income versus expenses over time with customizable budget goals and monthly cash flow reports.
- Global Currency Support - Handle multiple currencies natively, making it suitable for international users or those with cross-border income and expenses.
Common Use Cases
- Building a private household budget - A family wants to track spending without exposing transaction data to Mint or YNAB; they install Financial Freedom on a home server and import bank CSVs weekly.
- Developing a secure financial tool for non-tech users - A nonprofit teaches low-income communities how to manage money without relying on commercial apps; they use Financial Freedom’s open codebase to build a custom, offline-capable version.
- Problem → Solution flow: My bank data is being sold — I want to own it - A user discovers their Mint account has been used for targeted ads; they switch to Financial Freedom, import data via CSV, and eliminate third-party tracking entirely.
- Team/workflow scenario: DevOps teams managing personal finance automation - A developer uses Docker Compose to deploy Financial Freedom alongside their home monitoring stack, automating monthly bank statement imports with scripts and cron jobs.
Under The Hood
This project is a full-stack financial management application built using PHP and Laravel for the backend, paired with a Vue.js frontend powered by Inertia.js. It emphasizes modular development and modern web practices, aiming to provide a clean, extensible platform for handling financial data with an automated onboarding experience.
Architecture
The application adopts a modular architecture using Laravel modules, ensuring well-defined boundaries and encapsulation of features such as transactions, accounts, and categories. It follows a layered structure that separates concerns between controllers, services, models, and data transfer objects.
- The modular design allows for clear separation of business logic from presentation and data handling.
- Service classes and command pattern are consistently applied to encapsulate complex operations and manage console tasks.
- Dependency injection and service providers support loose coupling between components.
Tech Stack
The tech stack centers around PHP 8.x with Laravel as the core backend framework, complemented by Vue.js 3 and Inertia.js for a dynamic frontend experience. It leverages modern tools and libraries to support scalable development.
- The backend is built on Laravel, while the frontend uses Vue.js with Inertia.js for a seamless single-page application flow.
- Key frontend libraries include @inertiajs, Tailwind CSS, and various UI components from the Vue ecosystem.
- Development is supported by Vite, Docker, and a structured testing approach using PHPUnit.
Code Quality
The codebase reflects a balanced approach to testing and follows standard conventions for PHP and Vue development. It includes reasonable test coverage for core functionality, with consistent naming and structure throughout.
- A comprehensive testing suite covers authentication and user management flows.
- Error handling is implemented in key areas such as module loading, though not universally across all paths.
- The code maintains consistent naming and structure, although some technical debt exists in model relationships and service layer organization.
What Makes It Unique
This project stands out through its innovative approach to financial data simulation and automated setup, abstracting complexity into reusable modules and console commands.
- A demo initialization system encapsulates entire financial data setup into a single console command with cascading dependencies.
- Morph relations and Eloquent models are creatively used to handle polymorphic account types with shared behavior.
- The service container and module-based architecture decouple financial data creation from core business logic, enhancing extensibility.