Relic is a beautiful, premium, fully offline, self-hosted personal finance and net worth tracking application. Built with absolute data privacy in mind, Relic helps you aggregate your asset allocation, track liabilities, log transactions, configure category budgets, and analyze your wealth progression without any telemetry, trackers, or external network requests.
- Dynamic Net Worth Counter: A large, prominent net worth banner featuring an animated count-up on interface load.
- Obsidian Trend Sparkline: A local, responsive sparkline tracking your 12-month net worth trajectory right at the top.
- Metrics Cards: At-a-glance cards showing total assets, total debts, current month's income, and current month's expenses.
- Due This Week: A prioritized panel highlighting upcoming recurring bills or active subscriptions due within the next 7 days.
- Recent Entries: A compact ledger listing your latest 10 transactions.
- Asset Tracking: Organizes cash, investments, real estate, vehicles, crypto, and custom categories.
- Liability Tracking: Manage mortgages, car loans, credit cards, student loans, personal loans, and custom categories.
- Manual FX Conversions: Multi-currency support! Denominate foreign assets in their native currencies (e.g., EUR, BTC) and input manual exchange rates to translate values into your base currency.
- Historical logs: Logging value changes appends timestamps and maps complete historical progression lines per account.
- Comprehensive CRUD: Manually log income or expenses with date, amount, currency, category, merchant, and notes.
- Auto-Recurring Schedules: Flag any transaction as recurring (weekly, monthly, or yearly) to establish templates that auto-generate future instances when due.
- RFC-Compliant CSV Import Wizard: Drag and drop your banks' ledger CSVs. Our intelligent client-side parser auto-detects date, amount, and category columns, supports quoted text containing commas, and executes bulk inserts in a single transaction.
- Filterable CSV Export: Build custom tables using category, type, or search queries, and instantly export the filtered list to a clean CSV.
- Monthly Comparison: Grouped bar chart comparing income against expenses over the last 12 months.
- Category Breakdown: Donut charts illustrating expenditures per category for any selected month.
- Net Worth Progression: Line graph visualizing historical asset lines, debt lines, and overall net worth.
- Savings Rate Trends: Evaluates your monthly savings rate percentage computed as
((Income - Expense) / Income) * 100. - Exportable Reports: Export any chart as a clean PNG image file with a single click.
- First-Launch Initialization: On boot, if no PIN exists, Relic secures the vault by forcing the setup of a 4-digit PIN.
- Bcrypt Protection: Your 4-digit PIN is salted and hashed using
bcryptbefore storage. - Cookie-Based Sessions: Authentication cookie sessions are verified via JSON Web Tokens (JWT) signed with a persistent secret, maintaining active states for 7 days.
- 100% Offline & Telemetry-Free: Zero CDN scripts, zero tracking pixels, and zero outbound network telemetry. Your financial files never leave your machine.
- Frontend: Clean Semantic HTML5, Vanilla JavaScript, and Premium Glassmorphic Vanilla CSS.
- Charts: Chart.js (downloaded locally for offline use).
- Backend: Node.js + Express REST API.
- Database: SQLite via
better-sqlite3(single-file persistence). - Authentication:
jsonwebtoken,bcryptjs, andcookie-parser.
Ensure you have Node.js installed (v18 or higher recommended).
git clone https://github.com/[your-username]/relic.git
cd relicnpm installStart the production server:
npm startOr start the development server with automatic file hot-reloading:
npm run devOpen your browser and navigate to:
http://localhost:3000
Follow the screen prompts to set up your 4-digit PIN.
Relic is optimized for high-speed manual data logging:
- Press N from anywhere in the app to immediately open the New Transaction Ledger Form. (Disabled while actively typing in input fields).
Because Relic values data sovereignty, all settings, historical entries, transactions, and budgets can be exported or recovered inside the Settings menu:
- JSON Export: Download your entire database in a structured JSON payload to safeguard or archive your data.
- JSON Recovery: Upload your JSON archive file to immediately restore your ledger state on any other self-hosted host (WARNING: This overwrites active data).
Distributed under the MIT License. See LICENSE for more information.