2026, swift
HamJoli, small shared apps for a circle of friends
One SwiftUI app for iPhone, iPad and Mac that holds mini-apps for a group of friends. The first, Trips, is a shared packing list with expenses, balances and settle-up. It works offline and syncs through a small self-hosted server, with no accounts.
Every trip with friends ends up spread across a group chat, a notes app and a spreadsheet of who paid for what. HamJoli (Hindi and Urdu for a companion, a friend your own age) puts that in one app, built so more small tools for the same group can be added beside it later.
Trips, the first mini-app
- A packing list that says who brings what, with "everyone" items each person ticks for themselves
- Friends can be added by name before they install the app, and claim their place when they join
- Expenses split equally, running balances, and the fewest payments that settle everyone up
- Joining is one invite link, with no sign-up and no account
How it is built
- The domain lives in a Swift core with no UI: trips, items, expenses and balances are an operation log that every device folds into the same state, so edits made offline merge cleanly later
- A small sync server, built on Hummingbird with SQLite, stores the operations and checks membership. It never interprets a trip
- One SwiftUI interface shared across iPhone, iPad and Mac, where a new mini-app is one folder and one line in a registry
- The core, the sync layer and the server are all covered by tests
The site
It has a product site built with Astro, with live demos of the app's own splitting rules, and a short launch video.
swiftswiftuiiosmacossyncoffline-first