Fintrack is a privacy-first, self-hostable personal finance tracker built by Sannty. Designed for individuals who want to take full control of their income, expenses, budgets, and financial goals without relying on third-party services.
email: admin@example.com
password: fintrack
- π Track income and expenses with ease
- π§Ύ Add custom categories and tags
- π View transactions by day, week, or month
- π Budget planning and progress tracking
- π 100% self-hosted β your data, your server
- π¦ Export data as CSV or JSON
- π€ Multi-user support (optional)
- π Light/Dark mode UI
- π± Responsive design (mobile + desktop)
- π API-first architecture
- π§±
/api/v1/finance/*finance domain with double-entry ledger, envelope budgeting primitives, reports, exports, imports, and encrypted backup bundles
- Framework: React 18
- Styling: TailwindCSS
- State Management: Zustand
- Build Tool: Vite
- Package Manager: pnpm
- Framework: Django + Django REST Framework
- Database: PostgreSQL
- Package Manager: Poetry
- Authentication: JWT-based
- Containerization: Docker & Docker Compose
- Development: Hot-reload enabled for both frontend and backend
fintrack/
βββ api/ # Django backend
β βββ app/ # Django project settings
β βββ pft/ # Main Django app
β βββ manage.py # Django CLI
βββ web/ # React frontend
β βββ app/ # Application source
β βββ public/ # Static assets
β βββ schema/ # API schema
βββ README.md
# Clone the repository
git clone https://github.com/ashishkapoor/fintrack.git
cd fintrack
# Copy environment files
cp api/.env.example api/.env
cp web/.env.example web/.env
# Start the services
docker compose up --buildThe application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/api/docs/
- Clone the repository:
git clone https://github.com/ashishkapoor/fintrack.git
cd fintrack- Setup API (Backend):
cd api
# Install poetry if not already installed
curl -sSL https://install.python-poetry.org | python3 -
# Install dependencies
poetry install
# Setup environment variables
cp .env.example .env
# Run migrations
poetry run python manage.py migrate
# Start the development server
poetry run python manage.py runserver- Setup Web (Frontend):
cd web
# Install dependencies
pnpm install
# Setup environment variables
cp .env.example .env
# Start the development server
pnpm dev# api/.env
DEBUG=True
SECRET_KEY=your_secure_secret_key
DATABASE_URL=postgres://user:password@localhost:5432/fintrack
ALLOWED_HOSTS=localhost,127.0.0.1
CORS_ALLOWED_ORIGINS=http://localhost:5173# web/.env
VITE_BASE_DOMAIN=http://localhost:8000make bootstrapmake test-apimake test-api-allThe budgeting-core audit artifacts and prioritized roadmap live in:
docs/feature-audit/README.mddocs/feature-audit/feature-matrix.jsondocs/feature-audit/prioritized-roadmap.mddocs/feature-audit/parity-report.mddocs/feature-audit/test-plan.md
Run the audit validator and parity report generator:
make feature-auditThe API documentation is available at:
- Swagger UI: http://localhost:8000/api/docs/
- ReDoc: http://localhost:8000/api/redoc/
/api/v1/*: core auth/profile and compatibility endpoints/api/v1/finance/*: finance domain resourcesbudget-files,accounts,category-groups,categories,payees,tagstransactions,postings,scheduled-transactions,rulesbudget-months,envelope-assignments,reportsexports,imports,backups
Contributions, issues, and feature requests are welcome!
Feel free to fork and submit a pull request.
MIT License Β© 2025 Sannty
FinTrack was built to give privacy-conscious users a simple but powerful way to manage their finances independently, free of subscription fees or vendor lock-in.
If you find FinTrack useful, consider giving a β on GitHub or sharing it with others!