Good company. Clear tabs..
A friendly shared expense notebook that keeps the arithmetic out of good times. Equal splits, clear balances, simple settlements.
Open the app → · Explore the features · Run locally · Contribute
- Record shared expenses with payer, participants, category, and date.
- Split expenses equally using integer cents, including remainder allocation.
- Calculate each person’s net balance and a set of suggested transfers.
- Inspect payment history and group totals without sending actual payments.
- Yours from the first click. Explore the labeled sample workspace or start with an empty one.
- At home on your phone. Responsive navigation, original icons, and a standalone PWA window.
- Ready without a connection. Works offline after the initial successful online load.
- Your data stays with you. Browser-local storage, JSON backup and restore, no account or analytics.
|
A distinct visual identity, generous spacing, crisp typography, and small interactions that serve a purpose. Every illustration and logo is an original SVG asset included in the repository. The custom brandmark uses layered, filled geometry with an install-ready silhouette. See the identity guide. No external font or image service is required at runtime. The cards and controls are backed by working state. Create, edit, delete, navigate, and pick up where you left off. Use Settings & backup to export your workspace, import a backup, restore the sample, or start fresh. | ![]() |
Requires Node.js 22+ only for the local server and tests. There are no packages to install and no build step.
git clone https://github.com/Vertex-blip/splitkind.git
cd splitkind
npm run devOpen http://127.0.0.1:4173. Use HTTP rather than opening index.html directly: JavaScript modules and service workers need a proper origin.
npm testThe tests cover the product’s data contract, relevant calculations, text escaping, manifest scope, PNG dimensions, and precached files. GitHub Actions runs them on pushes and pull requests.
- Open the live app online once.
- Select Install app, or use your browser’s installation menu.
- On iPhone/iPad, open in Safari and choose Share → Add to Home Screen.
The app uses its own logo for 192px, 512px, and maskable installation icons. Installation UI depends on browser support; offline caching and local persistence do not require installing.
| File | Purpose |
|---|---|
product.js |
Product views, actions, schema, and example workspace |
app.js |
Navigation, editor, persistence, backup, installation |
core.js / ui.js |
Pure calculations and escaped UI helpers |
styles.css |
Responsive interface and visual identity |
manifest.webmanifest / sw.js |
Install identity and offline app shell |
tests/ |
Product behavior and PWA asset checks |
Read the architecture notes for data flow and update behavior.
Fork this repository, enable GitHub Pages → Deploy from a branch → main / root, and update the repository links in README.md, index.html, and app.js. All app asset paths are relative, including the PWA scope, so project subpaths are supported. Increment the cache version in sw.js when releasing runtime changes.
This is a focused, working v1.1 for a single person and browser. There is no server, account, synchronization, encryption, or hidden external API. Data in local storage can be cleared by the browser or device, so export backups of important work. Sample records are illustrative. Expense calculations are in USD, use equal shares, and do not send or track real payments.
Potential improvements, not current features: additional languages, more keyboard shortcuts, and richer import/export formats. Thoughtful contributions are welcome; see CONTRIBUTING.md.
MIT · Built by Vertex-blip.

