Repolode
eitchtee

eitchtee/WYGIWYH

A self-hosted personal finance tracker for multi-currency transactions, accounts, net worth and dollar-cost averaging, built on Django.

Open-source alternative to:Mint

Stars
910
Forks
47
Open issues
19
Last commit
yesterday

What is it?

WYGIWYH is a self-hosted finance tracker for people who want to record income and expenses without setting budgets. It follows a simple rule: spend this month's income this month, and treat savings as untouchable for future months. Transactions, accounts such as banks, wallets and investments, and balances are organized in one web interface.

The tracker supports multiple currencies, including custom currencies for crypto or reward points. Transaction rules can automatically adjust entries, for example to handle credit card billing cycles. A built-in dollar-cost averaging tracker covers recurring investments in crypto and stocks, and an API lets other services sync transactions.

The app runs with Docker Compose and uses PostgreSQL as its database. It supports OpenID Connect login, user-bound API tokens for automation, and an MCP OAuth setup for connecting AI clients.

Key features

  • 01Records income and expenses in one place across multiple accounts.
  • 02Supports multiple currencies and user-defined custom currencies.
  • 03Automatically adjusts transactions with customizable rules.
  • 04Includes a built-in dollar-cost averaging tracker for recurring investments.
  • 05Provides an API and user-bound tokens for automation.
  • 06Supports OpenID Connect login.

Use cases

  • Tracking personal spending and savings without strict budget categories.
  • Managing income and expenses across several currencies.
  • Monitoring recurring crypto or stock purchases with dollar-cost averaging.
  • Syncing transactions from other tools through the API.

Quick start

  1. 1

    Install Docker with docker-compose

  2. 2

    Create docker-compose.yml and .env from the README's linked templates and fill in your settings

  3. 3

    Start the app

    docker compose up -d
  4. 4

    Create the first admin account

    docker compose exec -it web python manage.py createsuperuser

Things to know

  • Requires you to provide your own PostgreSQL database.
  • Self-hosting requires manual setup of Docker, environment variables and an admin account.
  • The latest code on main or the nightly tag may contain undocumented breaking changes.
  • Licensed under AGPL-3.0, a copyleft license that requires sharing modified source code when offered as a network service.

In collections

Topics

FAQ

What is WYGIWYH?
A self-hosted personal finance tracker for multi-currency transactions, accounts, net worth and dollar-cost averaging, built on Django. WYGIWYH is a self-hosted finance tracker for people who want to record income and expenses without setting budgets. It follows a simple rule: spend this month's income this month, and treat savings as untouchable for future months. Transactions, accounts such as banks, wallets and investments, and balances are organized in one web interface.
Is WYGIWYH free to use? What license does it have?
WYGIWYH is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
Is WYGIWYH still maintained?
Actively maintained. The last commit to WYGIWYH was on Nov 6, 2026.
What can I use WYGIWYH for?
Tracking personal spending and savings without strict budget categories. Managing income and expenses across several currencies. Monitoring recurring crypto or stock purchases with dollar-cost averaging. Syncing transactions from other tools through the API.
How do I install WYGIWYH?
Install Docker with docker-compose Create docker-compose.yml and .env from the README's linked templates and fill in your settings Start the app: docker compose up -d Create the first admin account: docker compose exec -it web python manage.py createsuperuser
Where can I get WYGIWYH?
The source code and installation instructions are on GitHub: https://github.com/eitchtee/WYGIWYH

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects