mirror of
https://github.com/spliit-app/spliit.git
synced 2025-12-06 01:19:29 +01:00
improve-caching
Spliit is a free and open source alternative to Splitwise. You can either use the official instance at Spliit.app, or deploy your own instance:
Features
- Create a group and share it with friends
- Create expenses with description
- Display group balances
- Create reimbursement expenses
- Progressive Web App
- Select all/no participant for expenses
- Split expenses unevenly (#6)
- Mark a group as favorite (#29)
- Tell the application who you are when opening a group (#7)
- Assign a category to expenses (#35)
- Search for expenses in a group (#51)
- Upload and attach images to expenses (#63)
Possible incoming features
Stack
- Next.js for the web application
- TailwindCSS for the styling
- shadcn/UI for the UI components
- Prisma to access the database
- Vercel for hosting (application and database)
Contribute
The project is open to contributions. Feel free to open an issue or even a pull-request!
If you want to contribute financially and help us keep the application free and without ads, you can also:
Run locally
- Clone the repository (or fork it if you intend to contribute)
- Start a PostgreSQL server. You can run
./scripts/start-local-db.shif you don’t have a server already. - Copy the file
.env.exampleas.env - Run
npm installto install dependencies. This will also apply database migrations and update Prisma Client. - Run
npm run devto start the development server
Run in a container
- Run
npm run build-imageto build the docker image from the Dockerfile - Copy the file
container.env.exampleascontainer.env - Run
npm run start-containerto start the postgres and the spliit2 containers - You can access the app by browsing to http://localhost:3000
Opt-in features
Expense documents
Spliit offers users to upload images (to an AWS S3 bucket) and attach them to expenses. To enable this feature:
- Follow the instructions in the S3 bucket and IAM user sections of next-s3-upload to create and set up an S3 bucket where images will be stored.
- Update your environments variables with appropriate values:
NEXT_PUBLIC_ENABLE_EXPENSE_DOCUMENTS=true
S3_UPLOAD_KEY=AAAAAAAAAAAAAAAAAAAA
S3_UPLOAD_SECRET=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
S3_UPLOAD_BUCKET=name-of-s3-bucket
S3_UPLOAD_REGION=us-east-1
License
MIT, see LICENSE.
Languages
TypeScript
97.9%
JavaScript
1.1%
CSS
0.5%
Dockerfile
0.3%
Shell
0.2%
