Guide

Split expenses with friends,
without making anyone install an app.

A trip expense splitter that is a link. Everyone adds what they paid from their phone, the balances update for the whole group, and nobody creates an account.

Updated 2026-10-18 · by Hostus Team

Someone pays for the car, someone else pays for the dinner, and by Sunday night there are eleven screenshots in the group chat and nobody is sure who owes what. The usual fix is an app. The app is fine. The problem is that six people now have to install it, create an account, confirm an email and accept an invite before the first expense goes in, and at least one of them never does.

This guide is the other way round: an expense splitter that is a link. Claude writes it as a single HTML file, Hostus hosts it, and everyone in the group opens the same page on their phone, types what they paid, and sees the balances change for all of them. No app, no account for the friends, and the numbers are still there after the trip when somebody clears their browser.

What it looks like

Here is one, live: a Lisbon weekend. Four friends, three days, the kind of trip where one person books the flat, another buys the groceries and a third keeps paying for taxis. The friends are fictional, the business behind the demo is fictional and the amounts are illustrative, but the page is real. Add an expense, pick who paid and who shares it, and watch the balances at the bottom move. Open the link in a second browser, or on your phone, and the expense you just added is already there.

It has the four parts a splitter needs and a group chat never produces: a list of members, a list of expenses with who paid and who is included, a balance per person, and a short list of who pays whom so the group can settle. It also has nothing else, which is why it fits in one file.

How a splitter with no app works

A single HTML page can draw the expense list and do the arithmetic. What it cannot do on its own is hold the list somewhere all six people can reach it. A page that keeps data in the browser with localStorage works for exactly one person on one device, until they clear it.

On Hostus the page gets storage of its own. If the file references hostus.data, the server injects a small SDK before the script runs, and the page can read and write records that belong to that document. In the default mode, called shared, every reader reads and writes everything, which is exactly what a group splitter wants.

const { data } = window.hostus;

data.watch("expenses", render);          // now, and on every change
await data.add("expenses", {
  note: "Groceries", amount: 48.20, payer: "Ana",
  split: ["Ana", "Bruno", "Carla", "Diogo"]
});

Nobody logs in. A visitor who opens the link gets a signed cookie from the server, which is enough for the page to mark the rows they added as theirs and show a quiet "you" next to them. The friends never see a sign-up form. The records live on the document, not in anyone's browser, so the list is the same on the phone, on the laptop and after a cache clear.

The prompt

With the Hostus connector on in Claude, this writes the page and publishes it in one turn.

Make me an expense splitter for a weekend trip with four friends: Ana, Bruno, Carla and Diogo.

Anyone with the link can add an expense: a note, the amount, who paid, and which of the four share it (default everyone, equal split). The page lists the expenses, shows a balance per person, and computes a short "who pays whom" list so the group settles in as few transfers as possible. All of that math happens in the page.

Use the hostus.data SDK so the expenses live on the document: data.watch("expenses", render) and data.add("expenses", { note, amount, payer, split }). Let a person edit or delete the rows they added and mark those rows with a quiet "you". No backend, no localStorage, no key in the page. One HTML file, mobile first. Then publish it to Hostus and give me the link.

The page is born private: in the Hostus dashboard, switch it to public (or email-gated) before you send the link to the group. Change the names and the occasion and it is your trip. For a shared flat, ask for a month selector and a running total per person instead of a settle-up list. Ask for a currency symbol, a dark theme or a receipt photo field if the group needs one. The next version goes up on the same link, and the expenses already entered stay where they are.

Hostus first, then the apps: which one to pick

Hostus. Best if you want a splitter that is a link and nobody installs anything. Claude writes the page, Hostus hosts it, every friend adds expenses from the same link on their phone, and the balances update for all of them. No account for the friends, no ads, and the data survives a cleared browser because it is stored on the document. The free plan has no clock and asks for no card.

Tricount. Pick it if you want a finished app and the group is happy to install one. Its site says "Free. No ads. No limits.", that there is no daily expense cap, and that you can try it without signing up. It is an iOS and Android app, and it ships with things a hand-written page will not have on day one, such as currency conversion and payment requests.

Splitwise. Pick it if the group already uses it. It is the incumbent, free for iPhone, Android and web, and its Pro page sells "No limits and no ads" and "Add as many expenses as you like each day, with no interruptions", which tells you what the free plan does: it limits how many expenses you add in a day and it shows ads. Splitwise does not publish the daily number, and the Pro price is not on the site either, so check their pricing page.

Settle Up. Pick it if you want a group app that also has a web app, so the one friend who refuses to install anything can still open the group in a browser. Its site says expenses are backed up and synced across the group. It does not state a price, a free tier, ads or whether members need an account, so check their site before you commit the group to it.

A shared spreadsheet. Pick it if the group is two people and both of you like spreadsheets. It works, the data is yours and there is no limit. But everyone edits everyone's rows, the formulas break the first time somebody sorts a column, and a spreadsheet on a phone is a small window onto a large grid.

Side by side

OptionFriends need an accountWorks on a phone from a linkDaily limitAdsWho owns the dataFree plan
Hostus, one HTML pageNo, a signed cookieYes, the same linkNoneNoneYou, on your documentYes, no clock, 1,000 records per collection
TricountNot to try it, per its siteiOS and Android appNone, per its siteNone, per its siteLives in their appFree, per its site
SplitwiseCheck their siteiPhone, Android and web appsYes on free, number not publishedYes on free, Pro removes themLives in their appYes, limited; Pro price not on the site
Settle UpNot stated on its siteWeb app, iOS and AndroidNot statedNot statedLives in their appCheck their site
Shared spreadsheetDepends on the sharing settingsYes, crampedNoneNoneYouYes

Prices and limits were read on each vendor's own site on 18 October 2026 and change without notice. Where a cell says "check their site", the vendor did not publish the fact on the pages we read, and we would rather send you there than guess.

Who pays whom: the math stays in the page

Balances are not stored anywhere. The page computes them from the expense rows every time it renders: for each expense, the payer is credited the full amount and each person in the split is debited their share. Add up the credits and debits per person and you have a balance. Then the settle-up list: line up the people who are owed against the people who owe, match the largest debt to the largest credit, and repeat until everything is zero. Four friends usually settle in two or three transfers.

Because the math lives in the page, there is nothing to migrate and nothing to drift out of sync. If somebody deletes a wrong expense, the balances follow. If you later ask Claude to change the split rule, say to percentages for the rent, the stored expenses stay as they are and only the rendering changes. One thing the page will not do is convert currencies: pick one currency for the trip and enter everything in it, or ask for a field for the original amount and keep the conversion in your head.

Closing the trip

When the weekend is over and everyone has paid up, you have two choices, and neither touches the HTML. Leave the page as it is: it stays online and readable, and the group can still look up who paid for the ferry. Or freeze it: ask Claude to close the data on the document, and the page keeps showing the list but stops accepting new rows. Nobody adds an expense in March to a trip that ended in January.

For the next trip, make a new page. One document is one page, and a folder groups them, so a year of trips sits together in your dashboard, each with its own members, its own list and its own link. If the group changes, nothing from the old trip follows into the new one.

Good to know before you switch

The page splits and computes; it does not move money. There is no payment button and no link to a bank, so the settle-up list is a list of transfers for people to make on their own. There is no currency conversion: one currency per trip. And the balances are computed in the page from the expense rows, which is simple and transparent, but it also means the page is the only place they exist.

Shared mode means shared. Any reader of the link can edit or delete any row, including rows they did not add, because that is what the mode is for. Keep the link inside the group. The storage works because the page is hosted on Hostus, which is what identifies each reader; open the file from your desktop and the list is empty. The free plan holds 1,000 records per collection, which is a lot of taxis, and 20,000 on paid.

Questions people ask

Can I split expenses with friends without an app?

Yes. Host a single HTML page on Hostus that uses the document's own storage, and everyone in the group adds expenses from the link on their phone. The balances are computed in the page and update for all of them.

Do my friends need an account?

No. A visitor is identified by a signed cookie the server issues when they open the link, which is enough to mark the rows they added as theirs. Nobody sees a sign-up form or a password.

Does it work on a phone?

Yes. The page opens from the link in the phone's browser like any web page, and the prompt asks for a mobile first layout. There is nothing to install and nothing from an app store.

What happens if someone clears their browser?

Nothing is lost. The expenses are stored on the document on Hostus, not in the browser, so the list comes back the moment they open the link again. They get a new cookie, so their old rows stop showing the "you" mark, but the rows and the balances are unchanged.

Can the page pay people back?

No. It computes who owes whom and shows the list; the transfers happen wherever your group usually sends money. There is no payment processing and no bank connection on Hostus.

How many expenses fit?

1,000 records per collection on the free plan and 20,000 on paid, with up to 20 collections per document. A weekend, a month in a shared flat and a long summer all fit inside the free tier.

Can someone outside the group see it?

Anyone with the link can open a public page, though public pages carry a noindex tag and do not appear in Google. If that is not enough, set the page to email gated: each friend types their email, still with no account, and you see who opened it.

Four friends, one link, and nobody installs anything.

Free plan, no card, no clock. Bring the HTML Claude just wrote.