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

Laravel 13 PHP 8.4 Vue 3 Inertia.js PrimeVue Tailwind CSS ApexCharts SQLite Docker AI/LLM MCP

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