Yaffa is a self-hosted personal finance web application built with Laravel, designed for users who prioritize data privacy and long-term financial planning. Unlike cloud-based budgeting tools, Yaffa ensures your financial data remains entirely under your control by running on your own server. It emphasizes intentional spending and budgeting through manual transaction entry, with smart suggestions to reduce friction without compromising awareness. The app supports multiple currencies, accounts, investments, and recurring transactions, making it ideal for individuals who want to track wealth growth over time without relying on bank data imports.
Yaffa’s philosophy centers around mindfulness in financial management—rejecting automatic bank feeds to encourage deliberate review of expenses. It includes optional AI-powered receipt processing via OpenAI and investment price tracking through AlphaVantage, both requiring external API keys. The application is optimized for desktop use with responsive design, and while it lacks a native mobile app, its web interface works adequately on mobile browsers.
What You Get
- Multi-currency support - Yaffa allows tracking of transactions in multiple currencies with daily automatic updates via the free Frankfurter service, no API key required. The dashboard and charts display data in your default currency.
- Multiple accounts and groups - Organize bank accounts, cash, and other financial assets into logical groups for better overview and reporting.
- Transaction recording with suggestions - As you enter transactions, Yaffa suggests categories and payees based on past entries to accelerate data input without automation.
- Receipt processing via OpenAI (optional) - Parse receipt details from emails to auto-fill transaction amounts, vendors, and categories. Requires email access on your server and an OpenAI API key.
- Scheduled and recurring transactions - Define future income or expenses (e.g., rent, salaries) that auto-generate entries on set dates to aid forecasting.
- Budget planning (plans) - Create monthly or annual budgets per category and compare actual spending against targets to identify overspending trends.
- Investment tracking with AlphaVantage - Add stocks, ETFs, or other assets and automatically fetch real-time prices using a free AlphaVantage API key to calculate gains/losses.
Common Use Cases
- Building a privacy-first personal finance dashboard - A user who avoids cloud-based apps due to data sensitivity uses Yaffa to track income, expenses, and investments on their home server without exposing financial data to third parties.
- Long-term wealth planning for early retirees - An individual with multiple income streams and investment portfolios uses Yaffa’s budgeting and forecasting features to model retirement cash flows over 20+ years.
- Problem → Solution flow: Manual entry enables financial awareness - A user tired of automated apps that obscure spending patterns switches to Yaffa because its deliberate transaction entry process helps them recognize unnecessary subscriptions and impulse buys.
- Team/workflow scenario: Family financial oversight - A household with shared expenses uses one Yaffa instance (though multi-user support is planned) to track joint accounts, child allowances, and savings goals without relying on external services.
Under The Hood
Kantorge-Yaffa is a personal finance management application built with Laravel and Vue, designed to handle complex transaction tracking, account balancing, and investment monitoring. It offers a comprehensive suite of tools for users to manage their financial data with features like multi-currency support, scheduled transactions, and detailed reporting.
Architecture
The project follows a traditional Laravel MVC architecture with clear separation between domain models, API controllers, and frontend components. It leverages Eloquent ORM for database interactions and utilizes Laravel’s service container for dependency injection.
- Modular organization with dedicated directories for models, controllers, commands, and components
- Clear separation between API and web routes with distinct controller hierarchies
- Use of traits for shared functionality like flash messages and model ownership
- Component interactions managed through well-defined controllers and API endpoints with extensive use of Laravel’s built-in services
Tech Stack
Built on the Laravel PHP framework with Vue.js for frontend, this application integrates modern web development practices.
- Primary backend language: PHP with Laravel framework and Eloquent ORM
- Frontend: Vue.js with Blade templating for server-side rendering
- Database operations using raw SQL queries and Eloquent relationships
- Extensive use of Laravel console commands for background processing and data calculations
Code Quality
The codebase demonstrates solid engineering practices with consistent structure and clear naming conventions.
- Comprehensive use of Eloquent relationships and database query builders
- Strong typing with PHPDoc annotations throughout the codebase
- Consistent use of traits for shared logic and middleware for authentication
- Extensive command-line interface with progress indicators and batch job handling
What Makes It Unique
This project stands out through its integration of financial data processing with a robust caching layer and specialized handling for investment tracking.
- Specialized models like AccountMonthlySummary that encapsulate complex financial calculations
- Custom console commands for batch processing of financial data with progress tracking
- Unique approach to handling investment value calculations through dedicated database queries
- Integration of email processing for financial data import with user verification checks