Duitr is an open-source personal finance manager built with React, TypeScript, Vite, and Supabase. It helps users track transactions, manage wallets and budgets, review financial trends, and use the app as a Progressive Web App on desktop or mobile.
Live app: https://www.duitr.my.id
- Transaction tracking for income, expenses, and wallet transfers
- Wallet management with real-time balance updates
- Budget tracking, wishlist items, and loan management
- Dashboard analytics and charts
- English and Indonesian localization with i18next
- Theme switching and responsive UI
- PWA support with installable offline-capable experience
- Data export utilities
- React 19
- TypeScript
- Vite
- Tailwind CSS
- shadcn/ui and Radix UI
- TanStack Query
- React Hook Form and Zod
- Supabase and PostgreSQL
- Vitest and Testing Library
- Bun 1.x or newer
- A Supabase project
git clone https://github.com/julianromli/duitr.git
cd duitr
bun installCopy .env.example to .env and fill in your Supabase values.
Required variables:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_keybun devThe app runs at http://localhost:8080 by default.
bun dev
bun run lint
bun run test:run
bun run build
bun run previewAdditional scripts:
bun testfor watch modebun run test:coveragefor coveragebun run build:pwafor a production PWA buildbun run security:checkfor dependency audit checks
Duitr uses Supabase for authentication, storage, and PostgreSQL data.
Suggested local setup flow:
- Create a Supabase project.
- Apply SQL files from
supabase/migrations/in order. - Review
supabase_schema.sqlfor the current schema reference. - Start the app and sign in with a test account.
src/
├── components/
├── config/
├── context/
├── features/
├── hooks/
├── integrations/
├── lib/
├── locales/
├── pages/
├── services/
├── test/
├── tests/
├── types/
└── utils/
docs/DEVELOPER_GUIDE.mdfor local development notesdocs/technical_overview.mdfor architecture contextdocs/API_DOCUMENTATION.mdfor Supabase-facing detailsAGENTS.mdandCLAUDE.mdfor AI-assisted development workflows
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request.
Before submitting changes, run:
bun run lint
bun run test:run
bun run buildPlease read SECURITY.md for how to report vulnerabilities responsibly.
This project is licensed under the MIT License. See LICENSE for details.