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!