FinanzPilot - Self-Hosted Personal Finance Manager
An open-source personal finance application built with Laravel and Vue.js, featuring AI-powered insights, smart bank import categorization, and a privacy-first architecture
Taking Control of Personal Finances with Open Source
FinanzPilot is a self-hosted personal finance web application that puts data ownership first. Built with Laravel 13 and Vue 3, it provides a modern, full-featured alternative to cloud-based finance tools — without subscription fees or third-party data sharing. All financial data stays on your own server, stored in a single SQLite file that’s easy to back up and migrate.
The Challenge
Existing personal finance tools present a difficult trade-off:
- Cloud lock-in: Popular apps store sensitive financial data on third-party servers with limited export options
- Missing German banking support: Most tools lack import support for German bank CSV formats from Sparkasse, PayPal, or other local institutions
- Subscription fatigue: Useful features are locked behind recurring payments for what is fundamentally a local data problem
- No AI integration: Traditional finance tools can’t leverage modern AI for spending analysis or financial insights
- Privacy concerns: Sending transaction-level financial data to external services raises significant privacy questions
Privacy-conscious users and developers want full sovereignty over their financial data without sacrificing a modern user experience.
The Solution
FinanzPilot combines a Laravel 13 backend with a Vue 3 frontend via Inertia.js, delivering a reactive single-page application experience with server-side rendering. SQLite eliminates database server complexity — the entire database is a single file. Docker Compose packaging makes deployment straightforward on any server or NAS. AI-powered insights are available through multiple providers (Claude, OpenAI, Ollama) with automatic data anonymization before any external API call.
Key Features
- Interactive Dashboard: ApexCharts-powered visualizations for income vs. expense trends, category breakdowns, account balance history, and savings rate tracking
- Bank CSV Import: Built-in parsers for Sparkasse and PayPal CSV formats, plus a generic CSV importer for other institutions
- Smart Categorization: Self-learning rule engine that improves with each manual categorization, automatically applying learned rules to future transactions
- Multi-Account Management: Track checking accounts, savings, credit cards, and cash separately with individual balance tracking
- Recurring Transactions: Templates for rent, salary, subscriptions, and other regular payments with automatic generation
- Loan Management: Track bank loans with amortization schedules and informal debts with payment history
- Excel Export: German-formatted .xlsx files ready for tax advisors, with proper number formatting and category summaries
- AI-Powered Insights: Financial analysis using Claude, OpenAI, or Ollama with privacy-first data anonymization — transaction details are stripped of identifying information before leaving the server
- MCP Server Integration: Model Context Protocol server that allows Claude Code or Claude Desktop to query account balances, transactions, and spending patterns conversationally
- Docker Deployment: Production-ready Docker Compose setup with nginx and PHP-FPM for simple self-hosting
Technical Implementation
The project demonstrates full-stack architecture decisions optimized for privacy and simplicity:
Backend Architecture:
- Laravel 13 on PHP 8.4 with SQLite for zero-configuration persistence
- Single-file database enables trivial backup and migration
- Scheduled task runner for automatic recurring transaction generation
- PHPOffice/PHPSpreadsheet for German-localized Excel export
Frontend Stack:
- Vue 3 with Inertia.js for SPA-like reactivity without a separate API layer
- PrimeVue component library for consistent, accessible UI elements
- Tailwind CSS for utility-first styling
- ApexCharts for interactive, responsive data visualizations
AI Integration:
- Adapter pattern supporting Claude (Anthropic API), OpenAI-compatible APIs, and Ollama for fully offline operation
- Automatic PII anonymization pipeline strips account names, transaction descriptions, and personal identifiers before sending data to external AI providers
- Configurable per-provider settings for model selection and API endpoints
MCP Server:
- Node.js-based Model Context Protocol server
- Exposes account balances, transaction queries, and spending analysis as MCP tools
- Enables natural language financial queries from Claude Code or Claude Desktop
Import Pipeline:
- Extensible CSV parser architecture with format-specific adapters
- Automatic field mapping for supported bank formats
- Duplicate detection to prevent re-importing existing transactions
Categorization Engine:
- Rule-based system that learns from user corrections
- Pattern matching on transaction descriptions, amounts, and counterparties
- Rules build up over time, reducing manual categorization to edge cases
Why Self-Hosted Matters
- Complete data sovereignty: Financial data never leaves your server unless you explicitly enable AI features — and even then, data is anonymized
- Zero recurring costs: MIT-licensed open source with no subscription fees or premium tiers
- German banking ecosystem: Native support for German bank CSV formats and German-formatted Excel export for tax compliance
- Privacy-first AI: Get intelligent financial insights without compromising transaction-level privacy through automatic anonymization
- Extensible architecture: Adding new bank import formats or AI providers requires only implementing a single adapter
- MCP integration: Bridges personal finance data into AI-assisted workflows, enabling conversational queries about spending patterns and account status