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

All work