Guide

Build your own expense tracker.
No ads, no subscription, no bank connection.

Ask Claude for the screen, keep the entries on a private page of your own, and open it from the same link on your phone and your laptop. Nothing to pay for, nothing from an app store.

Updated 2026-10-18 · by Hostus Team

Every budget app asks for the same three things before you can log a coffee: a subscription, your bank login, and your attention for the ads if you refused the subscription. For a lot of people that is the opposite of what they wanted, which was a small screen where they type what they spent and see the month add up.

You can build that yourself now, without learning to code. An AI writes the screen in one turn. The part most guides skip is where the entries go, because the page the AI writes by default keeps them in the browser and loses them the first time you clear it or pick up a different device. This guide fixes that part: the tracker becomes a private page on your own link, the entries are stored on the page, and it opens the same way on the phone and the laptop.

Where this guide comes from

The founder of Hostus built one of these for a family member who wanted to track personal spending and did not want an app with a bank login. Claude wrote the screen in a single turn: a form with amount, category and note, a list of this month's entries, and a total per category. Hostus hosts it as a private page, so only the owner can open it. The entries are stored on the document rather than in the browser, so they do not vanish when the browser is cleared, and the same link opens on the phone and on the laptop.

Choosing the categories took longer than making the app. The tracker is no longer the hard part; the only decision that matters is where the data lives.

What it looks like

Here is one, live: a pocket ledger. It is a demo page and the numbers on it are whatever readers typed, but the page is real and you can use it. Add a few expenses, switch months, watch the totals per category change. Then open the same link on your phone and your entries are there.

The demo runs in per reader mode, which means every visitor gets their own private notebook on the same page. What you type is visible to you and to the owner of the demo, and to nobody else who opens the link. That is the setup for two people who each keep their own list; for a tracker that is only yours, set the page to private and the data to owner only, as the sections below cover.

Why the page an AI writes loses your entries, and the fix

Ask ChatGPT or Claude for an expense tracker and you get a good one, and it will almost certainly store the entries with localStorage. That is the sensible default for a page with no server: it needs nothing, it works instantly, and it is wrong for this job.

localStorage lives inside one browser on one device. Clear site data and the entries are gone. Open the page on your phone and it is empty, because the phone's browser has its own storage. The page is not broken; it was never told where else to keep the records. Pages that export a file to download fix the loss but not the phone, and you end up emailing yourself a JSON file.

The fix is to give the page somewhere to write that is not the browser. On Hostus, that is hostus.data: when the HTML references it, the server injects a small SDK before your script runs, and the page can read and write records that belong to that document. They are stored on Hostus, against the page, and come back to whichever device opens the link.

const { data } = window.hostus;

data.watch("entries", render);                       // now, and on every change
await data.add("entries", { date, amount, category, note });
await data.remove("entries", key);                    // delete a mistake

There is no API key in the page and nothing to configure, because the server already knows which document this is and who is reading it. On a private page that is you, signed in to Hostus. On a page you share, a reader is identified by a signed cookie, or by a magic link sign-in if you want their entries to follow them across devices. Records are up to 32 KB each, far more than an expense needs, and a document holds up to 20 collections, so a second one for income or bills costs nothing.

The prompt

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

Make me a personal expense tracker: one HTML file, mobile first.

A form at the top with amount, category (Groceries, Eating out, Transport, Home, Fun, Other), a date that defaults to today, and an optional note. Below it, the entries for the selected month, newest first, with a delete button on each row, a total for the month and a total per category. A month selector to look back.

Use the hostus.data SDK so the entries live on the document: data.watch("entries", render), data.add("entries", { date, amount, category, note }) and data.remove("entries", key). No backend, no localStorage, no key in the page.

Publish it to Hostus, set the data mode to owner only, and give me the link.

The page is born private, which is what a tracker wants; Claude cannot change that, and you would not want it to. If two of you share it, change the last line to per reader mode, so each of you keeps your own entries and you, as the owner, can see both, then switch the page to email gated in the Hostus dashboard so your partner opens it with their email and no account. If you want one joint list instead, ask for shared mode. Change the categories to yours. Ask for a budget per category with a bar that fills, a dark theme, or a running yearly total: it is your app.

Keeping it private

Three settings, all on the document and none of them in the HTML. Visibility decides who can open the link: private means only you, signed in to Hostus; email gated means a reader types their email, with no account, and you see who opened it; public means anyone with the link, and public pages carry a noindex tag so they never show up in Google. Data mode decides who can write: owner only for a tracker that is yours, per reader when each person keeps a separate list you can see, shared when two people keep one list together.

For most people the answer is private plus owner only. Nobody else can open the page, and nobody else can write to it. You need the email gate only the day you invite a second person. Visibility is changed in the dashboard; the data mode can be changed there or by asking Claude.

Hostus first, then the apps: which one to pick

Hostus. Best if you want the app the AI wrote for you, on your link, with the entries kept. No ads, no subscription, no bank connection, and nothing from an app store: the page opens from the link on the phone and the laptop alike. The free plan has no clock and asks for no card, and you change the app whenever you like by asking for the next version.

YNAB, Monarch, Copilot. Pick one if you want bank sync and reports out of the box and are happy to pay for them. On their pricing pages today: YNAB is $14.99 a month or $109 a year, with a 34 day trial and no card; Monarch is $14.99 a month or $99.99 a year, ad free, with a 7 day trial; Copilot is $95 a year, which it shows as $7.92 a month, with a one month trial, on iPhone, iPad, Mac and web. All three are built around connecting your accounts.

Pocket Clear, Monefy, Spendee. Pick one if you want a simple manual tracker and prefer an app to a page. Pocket Clear's site says it is free with zero ads and no bank linking, with entries stored only on the device on the free plan; Pro, at $4.99 a month or $34.99 a year, adds cloud backup and sync. Monefy says its core app is free and needs no bank login, with a paid upgrade whose price is not on the page. Spendee has a free Basic plan limited to one cash wallet and one budget, Plus at $1.99 a month and Premium at $5.99 a month, with bank sync listed in every plan. None of the three lets you change what the app does.

A spreadsheet. Pick it if you only ever log expenses at a desk. It is free, it is yours, and the formulas are as flexible as you are. On a phone it is a grid you pinch at.

A localStorage page from ChatGPT. Pick it if the tracker lives on one device and you will never clear the browser. It is the default an AI produces, and for a single laptop it works well. The moment you want it on the phone too, or you clear site data, the entries are gone.

Side by side

OptionAdsSubscriptionBank connectionPhone and laptop from one linkEntries survive clearing the browserYou can change the app
Hostus, your own pageNoneNone, free plan with no clockNoneYes, the same linkYes, stored on the documentYes, ask for the next version
YNABNot stated on its site$14.99 a month or $109 a yearDirect import for select US, Canadian, UK and EU banks; file import otherwiseiOS, Android and web appsYes, in your accountNo
MonarchNone, per its site$14.99 a month or $99.99 a yearBuilt around connecting accountsWeb, iOS and AndroidYes, in your accountNo
CopilotNone, per its site$95 a yearBuilt around connecting accountsiPhone, iPad, Mac and webYes, in your accountNo
Pocket ClearNone, per its siteFree; Pro $4.99 a month or $34.99 a yearNoneiPhone, iPad, Mac, Android, Chromebook, plus a web appFree plan stores on the device only; Pro adds cloud syncNo
MonefyNot stated on its siteFree core app; paid upgrade, price not shownNoneiOS and AndroidCheck their siteNo
SpendeeNot stated on its siteFree Basic; Plus $1.99 a month; Premium $5.99 a monthOptional, listed in every planiOS and Android apps, web loginCheck their siteNo
SpreadsheetNoneNoneNoneYes, cramped on a phoneYesYes, in cells
localStorage pageNoneNoneNoneNo, one deviceNoYes

Prices and platforms 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.

Changing the app when you want something else

A month in, you want a budget per category. Ask Claude for it and the new file goes up on the same link; the entries stay, because they live on the document and not in the file. The previous versions stay in a history, so a change you regret is a step back, not a loss. No app gives you that.

Claude can also read the page back to you: with the connector on, ask what you spent on eating out in September and it reads the records on the document and answers. The Data tab on the document lists the records in a table, with search and a CSV or JSON export, so the entries are never locked inside the page.

Good to know before you switch

The entries are stored on Hostus servers, on your document. They are not end to end encrypted: you can read them, and so can Hostus. Treat the page like a notebook, not a vault. Amounts, categories and notes are fine; account numbers and card details are not. There is no bank sync and never a bank login, which is the point, and it also means every entry is typed by hand.

The free plan holds 1,000 records per collection, which is about three years of one entry a day, and 20,000 on paid. The storage works because the page is hosted on Hostus; a copy opened from your desktop shows nothing. And it opens from a link, like any web page: there is nothing to install, on either device.

Questions people ask

Can I build my own budgeting app without coding?

Yes. Ask Claude for the tracker with the prompt above and it writes the HTML in one turn, publishes it to Hostus and gives you the link. The only code you touch is the prompt.

Will my entries disappear if I clear my browser?

No. They are stored on the document on Hostus, not in the browser, so they come back the moment you open the link again. That is the difference between this and the localStorage page an AI writes by default.

Does it connect to my bank?

No. There is no bank sync on Hostus and the page never asks for a bank login. Every entry is typed by hand, which for a lot of people is the reason they wanted their own tracker.

Is it private?

A private document can only be opened by you, signed in to Hostus, and owner only mode means only you can write. The entries sit on Hostus servers and are readable by you and by Hostus, so keep account numbers out of it.

Does it work on my phone without an app store?

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

How many entries fit on the free plan?

1,000 records per collection, which is about three years of one entry a day, and 20,000 on paid. A second collection for income or bills has its own 1,000.

Can two people use one tracker?

Yes. Set the page to email gated so your partner opens it with their email and no account, then pick per reader mode for two separate lists you can both keep, or shared mode for one joint list. Both are settings on the document, not edits to the HTML.

The tracker you asked for, on your link, with the entries kept.

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