Turn household money chaos into a clear, shared financial system.
Flowy is a self-hosted finance platform built for people who are tired of juggling spreadsheets, disconnected banking apps, and shared Google Sheets that nobody agrees on.
One place. All your accounts. Everyone in the loop.
Create a family space and work on the same financial picture together. Invite your partner or family members β everyone sees what you share with them.
Manage checking, savings, credit, cash, investment, and custom account types from a single dashboard. No more switching between apps to get the full picture.
Classify each transaction with merchants and categories you define. Build your own catalog, adapted to how you actually spend money β not some generic preset list.
Flowy is self-hosted. You control the deployment, the database, and who has access. No third-party sync, no subscription required, no data harvested.
Couples and families who want a shared view of spending without emailing each other CSV exports.
People leaving spreadsheets who need structure without sacrificing flexibility.
Self-hosters who want financial tooling without handing their data to a third party.
Households with multiple accounts that need consistent categorization month after month.
Get started fast β register, sign in, pick your onboarding path, and start tracking in minutes.
Build your household β create a family workspace or join one through an invite link.
Track real money movement β add accounts, monitor balances, and record transactions as they happen.
Organize your spending β structure data with reusable categories and merchants for visibility that actually improves over time.
Manage everything from settings β update your profile, family details, and references. Admins can configure instance-level behavior.
| Flowy | Spreadsheet | |
|---|---|---|
| Onboarding | Guided setup and family invites | Manual tab setup |
| Collaboration | Shared household context | File links and version confusion |
| Structure | Accounts, categories, merchants, transactions | Free-form cells |
| Consistency | Reusable references, standardized entries | Ad hoc naming |
| Scale | Built for long-term history and multi-user workflows | Fragile growth |
Features currently planned or in progress. Scope and order may evolve.
Define recurring income and expenses, visualized on a calendar view so you always know what's coming and when.
Export your financial data at any time in open formats β CSV and PDF. Every account, transaction, category, and merchant you've created can be downloaded from your profile settings. Flowy also includes a full account deletion flow: remove your data from the instance completely, with no residual records left behind.
Allow multiple family members to access and manage the same account collaboratively β with explicit permission levels (read-only or read+write) and an activity feed that logs every change. Designed for couples and households where expenses are genuinely shared.
Connect your bank accounts through a supported third-party aggregator. Transactions are automatically imported and matched against your existing categories and merchants β reducing manual entry without compromising your self-hosted setup. Flowy never handles your banking credentials directly.
Track active loans β personal, mortgage, or other β with repayment schedules, remaining balances, and interest visibility. Integrate them into the overall household financial picture.
Monitor investment portfolios alongside everyday accounts. Track asset performance, contributions, and allocation β without leaving Flowy.
An optional Model Context Protocol server that exposes your Flowy data to a compatible LLM. When enabled, your assistant can answer questions about your finances, surface spending patterns, and help you understand where your budget stands β using your actual data. Nothing is sent to any external model unless you explicitly configure and activate it.
A reworked visual layer with multiple themes to choose from β because a tool you use daily should feel like yours.
Flowy ships as a Docker Compose stack. Pull, configure, run.
docker compose -f docker-compose.yaml up -dFor full deployment instructions across all environments (standard, dev, Coolify), see DEPLOYMENT.md.
- Runtime / tooling: Bun 1.3+, Node 20+
- Frontend: Nuxt 4, Vue 3, Tailwind CSS 4, Pinia, shadcn-nuxt
- Backend: NestJS 11, Fastify, Swagger, JWT, class-validator
- Database: PostgreSQL + Prisma
web/ # Frontend application
server/ # Backend API and business logic
docker-compose.yaml # Production stack (prebuilt images)
docker-compose.dev.yaml # Local dev stack (Docker builds)
docker-compose.coolify.yaml # Coolify-oriented deployment
DEPLOYMENT.md # Full deployment guide
- Bun
1.3.x - Node
20+ - Docker + Docker Compose v2 (for containerized workflows)
- PostgreSQL (if running without Docker)
# Install workspace dependencies
bun install
# Copy environment files
cp server/.env.example server/.env
cp web/.env.example web/.envConfigure required variables in server/.env:
| Variable | Description |
|---|---|
DATABASE_URL |
PostgreSQL connection string |
APP_NAME |
App name used by JWT issuer and docs |
APP_SECRET |
Secret for JWT/cookies (required) |
NODE_ENV |
development | production | test |
PREFIX |
Global API prefix (optional) |
CORS_ORIGINS |
Comma-separated allowed origins (optional) |
Frontend (web/.env):
| Variable | Description |
|---|---|
NUXT_PUBLIC_API_BASE |
Public API base URL |
# Generate Prisma client and run migrations (from server/)
bunx prisma generate
bunx prisma migrate dev --name init
# Start backend (from server/)
bun run dev
# Start frontend (from web/)
bun run devDefault local URLs:
- Frontend:
http://localhost:3000 - API:
http://localhost:4000 - Swagger:
http://localhost:4000/api
# Build and run the full local stack
docker compose -f docker-compose.dev.yaml up --build -d
# Follow logs
docker compose -f docker-compose.dev.yaml logs -f
# Stop the stack
docker compose -f docker-compose.dev.yaml downRoot
bun run lintβ run oxlint + oxfmt checkbun run lint:fixβ auto-fix lint and formatting
Frontend (web/)
bun run devβ start Nuxt dev serverbun run buildβ production buildbun run previewβ serve production build locallybun run generateβ generate static output
Backend (server/)
bun run devβ run API in hot-reload modebun run startβ start Nest via Bunbun run buildβ bundle app intodist/bun run start:prodβ run compiled app fromdist/app
# From server/
bunx prisma generate
bunx prisma migrate dev --name <migration_name>
bunx prisma db seedThe server Docker image runs
prisma migrate deploythenprisma db seedat startup. Seed includes default instance config and development data whenNODE_ENV=development.
Licensed under CC-BY-NC-SA. See LICENSE.md for details.
