Skip to content
carlssonemilPublic

About

Split bills and track shared expenses with friends. Kvitt makes it easy to see who owes what and settle up.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Kvitt logo

Kvitt

Split bills and track shared expenses with friends. Kvitt makes it easy to see who owes what and settle up.

Features

  • Split any expense your way — equally, by exact amounts, or by percentage
  • Balances that stay current — update the moment an expense or settlement is added
  • See where the money goes — spending broken down by category and month
  • Any currency, converted automatically at today's rate
  • Create groups and invite members via link
  • Record settlements to clear debts
  • Expense history with filtering and infinite scroll
  • English and Swedish, with more locales easy to add
  • Light/dark mode

Stack

  • Framework: Next.js 16 (App Router)
  • Database: Neon Postgres
  • Auth: Neon Auth
  • UI: shadcn/ui + Tailwind CSS
  • i18n: next-intl (English, Swedish)
  • Animation: Framer Motion
  • Charts: Recharts
  • Testing: Vitest
  • Deployment: Vercel

Local Development

Prerequisites: Node.js 22.13+ (see .tool-versions; asdf install picks it up automatically), a Neon database

  1. Clone the repo and install dependencies:
npm install
  1. Copy the environment variables and fill them in:
cp .env.example .env.local
Variable Description
DATABASE_URL Neon connection string
NEON_AUTH_BASE_URL Neon Auth base URL
NEXT_PUBLIC_BASE_URL Public URL (e.g. http://localhost:3000)
  1. Set up the database:
psql $DATABASE_URL -f schema.sql
  1. (Optional) Seed with sample data:
psql $DATABASE_URL -f seeds.sql
  1. Start the dev server:
npm run dev

Open http://localhost:3000.

Testing

npm test          # run once
npm run test:watch  # watch mode

About

Split bills and track shared expenses with friends. Kvitt makes it easy to see who owes what and settle up.

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages