Open Source · AGPL v3

Your finances,
your server.

Self-hosted personal finance dashboard. Connect your banks via Plaid, track spending, set budgets — on infrastructure you own.

View on GitHub Live Demo
Demo login: testuser@automatos.ca / pass_good
exmint-app-stg.automatos.ca/dashboard
Connected Banks
Scotiabank+$4,821
RBC Royal Bank+$1,203
American Express-$392
Net Balance
$5,632
This Month
-$1,847
Transactions
95
DateDescriptionCategoryAmount
Mar 20 Amazon Payments Shopping -$39.54
Mar 18 Tree W Restaurant Dining -$138.08
Mar 19 Payroll Deposit Income +$1,823
Mar 17 Dollar Tree Shops -$5.93
Features

Everything you need, nothing you don't

Built for people who want full control over their financial data without handing it to a SaaS company.

🏦

Bank Connectivity

Link accounts at thousands of institutions via Plaid Link. Real-time updates through webhooks, manual sync on demand.

🏷️

Custom Categories

Create color-coded categories and auto-apply rules. Override individual transactions. Split one charge across multiple buckets.

📊

Spending Reports

Pivot spending by year → month → category. Click any category row to jump straight to those filtered transactions.

📈

Cash Flow Chart

12-month net income vs. expense line chart, filterable by category to track any budget item over time.

🎯

Budgets

Set monthly targets per category. See 6-month averages and current-month actuals side by side to stay on track.

🔒

Private by Design

Your data never leaves your server. Plaid tokens encrypted at rest with Fernet. Deploy via Docker in minutes.

Get Started

Up in under five minutes

All you need is Docker, a database, and a free Plaid sandbox account.

bash Docker Quickstart
# 1. Clone the repo
git clone https://github.com/manuelravila/ExMint.git
cd ExMint

# 2. Configure your environment
cp .env.example .env.dev
#    → Fill in DB credentials, Plaid keys, and SECRET_KEY

# 3. Run migrations
docker-compose --env-file .env.dev -p exmint-dev run --rm flask-app flask db upgrade

# 4. Start the app
docker-compose --env-file .env.dev -p exmint-dev up -d --build

# Open http://localhost:5000 → register → connect a bank ✓
Tech Stack

Built on solid foundations

No exotic dependencies. Standard tools you already know.

Python 3.13
Flask 3
SQLAlchemy
Vue.js
Bootstrap
Chart.js
MySQL / MariaDB
Alembic
Plaid API
Docker
Gunicorn
Support the Project

Keep ExMint free & open

ExMint is built and maintained in spare time. If it saves you money on a finance app subscription, consider buying the dev a coffee.

Buy Me a Coffee

One-time or monthly support via Buy Me a Coffee

💙

PayPal

Send a one-time contribution via PayPal