Pocket Ledger — your money, your device.
A personal finance app that keeps your financial data on your machine. No cloud sync, no telemetry, no external connections. Envelope budgeting that assigns every dollar a job.
Privacy
Zero telemetry · Zero cloud · Your data stays local
Stack
.NET 8 · WinUI 3 · SQLite · Clean Architecture
Build
dotnet build && dotnet test
Philosophy
What Pocket Ledger believes in.
Local-First
Your financial data stays on your device. SQLite database in AppData. No cloud sync required — ever.
Privacy by Design
Zero telemetry, zero external connections unless you opt-in. No analytics, no tracking, no data harvesting.
Envelope Budgeting
Proven methodology that assigns every dollar a job. Allocate, spend, and track what remains — per category.
Planned Features
What's coming to Pocket Ledger.
Transaction Tracking
Categorized transactions with recurring management. Multi-account support for checking, savings, and credit.
Savings Goals
Visual progress toward what you're saving for. Goal-oriented budgeting that keeps you motivated.
Insights & Export
Spending reports and visual breakdowns. CSV import/export for portability. Dark and light theme support.
Architecture
Clean Architecture — separation of concerns at every layer.
Domain Layer
Core entities (Account, Transaction, Envelope, Goal), value objects, domain events, and business rules. No external dependencies.
Application Layer
Use cases like CreateTransaction, TransferFunds, AllocateBudget. Service interfaces and DTOs for clean boundaries.
Infrastructure + UI
SQLite persistence with repository pattern. WinUI 3 presentation with MVVM and CommunityToolkit.Mvvm.
Tech Stack
Modern, native, and maintainable.
Development
Prerequisites
# Requirements
Windows 10/11
Visual Studio 2022 (17.8+) or VS Code + C# Dev Kit
.NET 8 SDK
Windows App SDK Build & Test
# Build the solution
dotnet build
# Run tests
dotnet test
# Domain tests — pure unit tests, no mocking
# Application tests — mock repositories
# Infrastructure tests — in-memory SQLite