A self-hosted subscription management application built with Go and HTMX. Track recurring expenses, visualize spending analytics, and get renewal reminders — all on your own server.
- Dashboard — Monthly/annual spending overview with category breakdown
- Subscription Tracking — Manage all recurring expenses with automatic logo fetching
- Calendar View — Visual renewal calendar with iCal export (RFC 7986 colors)
- Analytics — Spending trends by category, monthly projections, savings tracking
- Notifications — Email (SMTP) and push notifications via Shoutrrr
- Multi-Currency — 30+ currencies with automatic exchange rates from the European Central Bank (daily XML feed, EUR-based cross-rates, cached locally with offline fallback)
- 12 Themes — 6 color palettes with light/dark mode, accent colors, collapsible sidebar
- Data Export — CSV, JSON, iCal, and encrypted backup format
- REST API — Full CRUD API with key-based authentication
- i18n — English and German built-in, custom languages via locale files
- Mobile Responsive — Optimized for all screen sizes
- Self-Hosted — SQLite database, no external dependencies
# docker-compose.yml
services:
subvault:
image: ghcr.io/yakgravity/subvault:latest
ports:
- "8080:8080"
volumes:
- subvault_data:/app/data
restart: unless-stopped
volumes:
subvault_data:docker compose up -dOpen http://localhost:8080 — no initial setup required.
| Topic | Description |
|---|---|
| Configuration | Environment variables, Docker setup, notifications, reverse proxy |
| API | REST API endpoints, authentication, examples |
| Development | Local setup, building, project structure, code style |
| Migration | Migrating from SubTrackr |
| Component | Technology |
|---|---|
| Backend | Go 1.24, Gin |
| Database | SQLite (via GORM) |
| Frontend | HTMX, custom CSS design system |
| Auth | Session-based + API keys, CSRF protection |
| i18n | go-i18n (English, German + custom locales) |
| Container | Multi-arch Docker (amd64, arm64) |
This project is primarily developed using Claude Code (Anthropic's Claude). Architecture, implementation, debugging, and documentation are AI-generated with human direction and review. Every commit is co-authored by Claude — check the git history for full transparency.
SubVault is a fork of SubTrackr by Brian Scott. This fork extends the original with multi-currency support, an extended theme system, internationalization, encrypted backups, push notifications, calendar integration, and a production-ready Docker setup.







