An open source and minimalistic alternative to SplitWise. This tool provides basic functionalities for groups to track and simplify expenses without the complexity of user accounts or payment integrations.
Groups are managed by simple 6-character codes - no login required. Anyone with the code can manage the group's expenses and members.
The easiest way to run SplitFool is with Docker:
# Development mode with hot reload
make dev
# Production mode
docker-compose up --build
# View available commands
make helpSee DOCKER.md for detailed Docker setup instructions.
The web frontend in packages/web/ is built with:
- Svelte: Reactive UI framework
- TypeScript: Type-safe development
- Vite: Fast build tool
- Tailwind CSS: Utility-first CSS framework
- Cloudflare Pages: Free hosting with global CDN
The API in packages/api/ is built with:
- Hono: Lightweight web framework
- ElectroDB: Type-safe DynamoDB client
- Zod: Runtime validation
- DynamoDB: Exclusive database for all environments
- DynamoDB Local: Full AWS DynamoDB compatibility
- Hot Reload: Automatic restart on code changes
- Web Frontend: http://localhost:5173
- API: http://localhost:3000
- Lambda Functions: API endpoints with automatic scaling
- DynamoDB: NoSQL database with single-table design
- EventBridge: Scheduled cleanup of old groups
See DEPLOYMENT.md for detailed deployment instructions.
After the basic functionalities are complete I want to add an alternative LLM-powered chat interface that will allow full control of the group as described above through natural language. This makes expenses described in group chats very easy to import via copy paste or even screenshots. This will make use of Gemini's free tier, in particular Gemini 2.5 Flash (gemini-2.5-flash) which is multimodal.
Some examples: - Import group members from a screenshot of group chat members - Add expense from a receipt - Add expenses from chat messages - Rebalance simplification to change who needs to pay who