Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/soker90/finper/llms.txt

Use this file to discover all available pages before exploring further.

Finper is a self-hosted personal finance management application built as a TypeScript monorepo. It gives you full control over your financial data — accounts, transactions, budgets, loans, subscriptions, debts, saving goals, pensions, stocks, and utility supplies — all stored locally in SQLite with no third-party cloud dependency.

Quickstart

Get Finper running locally in minutes with the recommended dev setup.

Configuration

Configure environment variables, JWT secrets, and optional integrations.

Architecture

Understand the monorepo structure, request flow, and technology stack.

API Reference

Explore all REST endpoints with parameters, request bodies, and responses.

What Finper covers

Finper is organized into focused modules, each with its own REST API and frontend views:

Accounts & Transactions

Manage bank accounts, income, expenses, and transfers between accounts.

Budgets & Categories

Set monthly spending targets by category and track actual vs. budgeted amounts.

Loans

Track loans with French amortization, extraordinary payments, and payoff simulation.

Subscriptions

Manage recurring charges with automatic transaction candidate detection.

Debts & Goals

Track money owed to/from others and monitor savings goal progress.

Pensions & Stocks

Record pension plan snapshots and investment portfolio movements.

How it works

1

Clone and install

Clone the repository and install all workspace dependencies with pnpm.
2

Configure environment

Copy .env.example to .env and set your JWT_SECRET and SALT_ROUNDS.
3

Build and start the API

Run make build-types && make build-db && make start-api. Drizzle migrations are applied automatically on startup.
4

Start the frontend

In a second terminal, run make start-client. The React SPA connects to the API at http://localhost:3008.
No external database required. Finper uses SQLite — a single file on disk, managed entirely by Drizzle ORM with automatic migrations at startup.

Build docs developers (and LLMs) love