Overview
Discover what makes OpenBudgeteer powerful
OpenBudgeteer is a self‑hosted financial management platform that implements the Bucket Budgeting Principle. From a developer’s standpoint it is a **full‑stack .NET solution** that couples a Blazor Server front‑end with a robust MVVM‑based back‑end. The application exposes a rich set of domain entities—accounts, categories, buckets, transactions—and offers an extensible API surface that can be consumed by third‑party tools or integrated into existing ERP stacks.
Back‑end
Front‑end
Containerization
Database
Overview
OpenBudgeteer is a self‑hosted financial management platform that implements the Bucket Budgeting Principle. From a developer’s standpoint it is a full‑stack .NET solution that couples a Blazor Server front‑end with a robust MVVM‑based back‑end. The application exposes a rich set of domain entities—accounts, categories, buckets, transactions—and offers an extensible API surface that can be consumed by third‑party tools or integrated into existing ERP stacks.
Technical Stack & Architecture
- Back‑end: C# 11 on .NET 8, following the Model‑View‑ViewModel (MVVM) pattern. Business logic is encapsulated in services, while persistence uses Entity Framework Core with a MariaDB provider. The choice of EF Core allows LINQ‑based queries and code‑first migrations that are easy to version control.
- Front‑end: Blazor Server, leveraging SignalR for real‑time UI updates. Components are strongly typed and reuse the same ViewModel classes that the server exposes, ensuring a single source of truth for UI state.
- Containerization: Docker images are published to GitHub Packages and Docker Hub, with CI pipelines that build both pre‑release and latest tags. The image is lightweight (≈ 400 MB) thanks to the multi‑stage build and Alpine base.
- Database: MariaDB (or MySQL) is the only supported relational store, with a dedicated
OpenBudgeteerschema. The application ships with SQL scripts for initial setup and supports automated migrations on container start.
Core Capabilities & Developer APIs
- REST‑like API: While the primary interface is Blazor, the application exposes a set of JSON endpoints for CRUD operations on accounts, buckets, and transactions. These endpoints are authenticated via JWT tokens that can be generated by the web UI or programmatically.
- Webhooks: Developers can register webhook URLs to receive event notifications (e.g., new transaction, bucket rollover). This is useful for synchronizing with external accounting systems.
- Plugin System: The application exposes a simple plugin contract (
IPlugin) that allows additional UI components or background jobs to be injected at runtime. Plugins are discovered via a convention‑based assembly scan and can ship as separate Docker images that mount into the plugin folder. - Scripting: An embedded scripting engine (C# Roslyn) lets advanced users write custom validation rules or automated budget adjustments that run on the server side.
Deployment & Infrastructure
- Self‑hosting: A single Docker Compose file (available in the docs) orchestrates the web service and MariaDB. The container exposes port 80 by default, but can be mapped to any host port or behind a reverse proxy.
- Scalability: Because Blazor Server relies on SignalR, scaling horizontally requires a shared backplane (e.g., Redis). The application is already configured to accept an optional
RedisConnectionStringenvironment variable for this purpose. - Persistence: All user data resides in MariaDB; backups can be performed with standard
mysqldumpor Docker volumes. The application also supports read‑replica configurations for reporting workloads.
Integration & Extensibility
- OAuth/OpenID Connect: Optional integration with external identity providers (e.g., Keycloak, Azure AD) is supported via ASP.NET Core authentication middleware.
- Custom Themes: CSS variables and Razor component overrides allow UI theming without touching the core codebase.
- CLI Tools: A lightweight command‑line interface (CLI) can be used to seed data, run migrations, or trigger background jobs from CI pipelines.
Developer Experience
- Documentation: The project hosts comprehensive, autogenerated docs on GitHub Pages. API reference pages are generated from XML comments.
- Community: The project is listed in awesome‑selfhosted and has an active GitHub issue tracker. Pull requests are reviewed promptly, and the maintainers encourage contributions to both core features and plugin examples.
- Licensing: MIT license ensures no licensing constraints, making it ideal for both commercial and open‑source projects.
Use Cases
- Personal Finance Platform: A solo developer can deploy OpenBudgeteer behind a reverse proxy, integrate it with their bank’s API via webhooks, and expose budgeting dashboards to family members.
- Small Business Accounting: Companies can embed OpenBudgeteer into their existing .NET microservice ecosystem, using the plugin system to generate automated expense reports and sync with accounting software.
- Educational Tool: Universities can host a multi‑tenant instance for finance courses, leveraging the bucket model to teach budgeting concepts while providing an API for student projects.
Advantages
- Performance: Blazor Server’s SignalR model keeps UI latency low, while EF Core optimizes queries for MariaDB.
- Flexibility: The MVVM architecture decouples UI from business logic, enabling developers to swap front‑ends (e.g., Blazor WebAssembly) with minimal code changes.
- Scalability: Docker images and optional Redis backplane make it straightforward to scale horizontally for high‑traffic scenarios.
- Extensibility: The plugin contract and webhook support allow rapid integration with external systems without modifying core code.
- Open Source: MIT licensing and active community mean developers can tailor the application to niche requirements without legal overhead.
OpenBudgeteer blends modern .NET practices with a proven budgeting methodology, offering developers a turnkey platform that can be extended, scaled, and integrated into almost any self
Open SourceReady to get started?
Join the community and start self-hosting OpenBudgeteer today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Joomla!
Build dynamic websites and web applications
Calibre-Web
Web‑based eBook library manager and reader

MediaGoblin
Open source, decentralized media hosting platform
Calibre
All‑in‑one e‑book manager and converter
Precis
AI‑powered RSS reader with instant notifications
Azimutt
Explore, design, and document complex database schemas
