Skip to content

dim4k/kimpay

Repository files navigation

Logo Kimpay

Kimpay

A modern, containerized expense-sharing web application.
🌐 https://kimpay.io

SvelteKit TailwindCSS PocketBase TypeScript

FeaturesQuick StartTech Stack


Kimpay is a modern, containerized expense-sharing web application (similar to Tricount/Splitwise) designed to be simple, fast, and delightful to use.

Kimpay Screenshot

✨ Features

  • No Login Required: Start immediately—no account creation needed
  • Cross-Platform: Optimized for both mobile and desktop browsers
  • Quick Setup: Create a group in seconds with an emoji and a name
  • Easy Sharing: Invite friends via a short 6-character code or direct link
  • Expense Management: Add expenses specifying who paid and for whom
  • Smart Balance: Intelligent algorithm to minimize reimbursements ("Who owes whom")
  • Real-Time: Updates align instantly across devices
  • Multilingual: Available in English 🇬🇧 and French 🇫🇷
  • Multi-Currency: Support for 8 currencies (EUR, USD, GBP, JPY, AUD, CAD, CHF, CNH) with real-time exchange rates
  • Dark Mode: Elegant interface supporting both light and dark themes
  • Delightful UX: Smooth animations, emojis, and polished design
  • PWA Ready: Install as a Progressive Web App on any device
  • AI Receipt Scanner: Scan receipts with Gemini AI to auto-fill expense details, amount, date, and category

🛠️ Tech Stack

  • Runtime: Node.js 24 (LTS)
  • Frontend: SvelteKit (SSR/CSR) + TailwindCSS
  • Backend: PocketBase (Real-time SQLite database + Auth)
  • Language: TypeScript 5 (Strict Mode)
  • Infrastructure: Docker Compose (Production & CI environments)

🚀 Quick Start

The entire project is containerized. You only need Docker installed.

1. Start the application (Production Mode)

make start

This builds and runs the application in production mode.

2. Stop the application

make stop

🔧 Development Workflow

We provide a set of make commands to streamline development and ensure consistency across environments.

🏃‍♂️ Running in Development Mode

To start the app with hot-reloading (HMR):

make start-dev

🛡️ Code Quality & Testing

We use an isolated CI container to ensure linting and type-checking run in a consistent Node 24 environment, regardless of your local setup.

Command Description
make check Run Svelte check (Type Safety)
make lint Run ESLint (Code Style)
make lint-fix Auto-fix ESLint issues

🌍 Environment Variables

Configuration is handled via docker-compose.yml.

  • PUBLIC_POCKETBASE_URL: PocketBase API URL (default: http://localhost:8090)
  • ORIGIN: Application origin URL (default: http://localhost:3000)

📝 License

This project is open source and available under the MIT License.


Made with ❤️ to simplify your group expenses.