Onboarding a client is mostly waiting for the client. The contract comes back signed, then nothing happens for nine days because nobody sent the logo files or the hosting login, and the kickoff call is spent listing what is missing. The checklist exists, in a welcome email or a Google Doc, and once sent you do not know whether they opened it, let alone where they stopped.
This guide is a checklist that is a link. Claude writes it as one HTML page with 12 steps in four groups, Hostus hosts it, and every client opens the same link on their phone and ticks their own steps; you see all of them in one table. Hostus is the option we put first, and the category matters: best if each client gets the checklist as a link, ticks their own steps from a phone with no account, and you see how far each one is.
What the client sees
Here is one, live: the onboarding checklist of a fictional two-person brand studio. The studio does not exist and the steps, names and dates are illustrative, but the page is real. Tick a step and the progress bar moves; open the same link in another browser and the boxes are empty: a different reader, their own list.
The client gets a short welcome, four groups of steps, and under each step one line on what you need and why. Nothing to sign up for. Two things a Google Doc does not have: the client can ask the page a question and get an answer from what the page says, with the section cited, no account; and they can reply on a group of steps, and the reply reaches you by email, anchored to that part of the page.
The 12 steps, in four groups
This is the template. Twelve steps is about what a client will read on a phone, and four groups give the page headings with ids for reading by section and replies. Change the wording; keep the shape.
- Before kickoff. Contract signed. Deposit paid. Kickoff call booked.
- Access. Logo and brand files sent. Website and hosting access shared. Social and analytics access shared.
- Content. Photos and copy sent. Brief approved. Three example sites listed.
- Launch. First draft reviewed. Final version approved. Launch date confirmed.
Every step gets a stable id in the HTML, such as step-logo; the tick is stored under that id plus the client's reader id, so you can reword or move a step later and the progress stays. The one-line note under each step is where most of the value is: "forward us the welcome email from your hosting provider" saves a week more often than the checkbox does.
How each client gets their own ticks
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 reads and writes records that belong to that document.
The storage has three modes, set by the owner. This page uses per_reader: each reader sees only their own records, and the owner sees everyone's. A client who opens the link is identified by a signed cookie the server issues, no account, no login. The page asks data.me() once for that reader's id and whether they may write, and saves each tick as one record whose key is the step id plus the reader id, step-contract@<reader id>, because keys are unique per document and two clients will tick the same step. When it draws the list it keeps only the records marked as its own, takes the step from the part of the key before the @, and ignores unknown steps and anything that is not exactly done: true. The shared checklist is the same idea in the default mode, shared, where everyone sees the same ticks: right for a team's launch list, wrong for onboarding, where client A must never see that client B has not paid the deposit.
Then set the page to email-gated in the dashboard. The client types an email before the page opens, still no account, and two things follow: the gate shows you who opened the page and when, so you know which client is which; and the reader id is derived from the email they typed, so their ticks follow that email on any device.
The prompt
With the Hostus connector on, this writes the page, publishes it and sets the data mode.
Make me a client onboarding checklist page for Fieldnote Studio, a two-person brand design studio. A short welcome in the first person, then 12 steps in 4 groups, each group a section with a heading and an id: Before kickoff (contract signed, deposit paid, kickoff call booked), Access (logo and brand files sent, website and hosting access shared, social and analytics access shared), Content (photos and copy sent, brief approved, three example sites listed), Launch (first draft reviewed, final version approved, launch date confirmed). Each step is a row with a checkbox, a one-line note on what we need and why, and a stable id like "step-contract". A progress bar at the top.
Store the ticks on the document with the hostus.data SDK: const { data } = window.hostus; const me = await data.me() once, and disable the checkboxes unless me.can.write === true; the reader id is me.id. When a box changes, data.set("steps", stepId + "@" + me.id, { done, at, step: stepId }) with done as a boolean, at as an ISO timestamp and the step id repeated inside the record so it shows as a column in the Data tab, because record keys are unique per document and two clients will tick the same step. data.watch("steps", render) returns every record this reader may see: count only items where item.mine === true, take the step id from key.split("@")[0], and ignore unknown step ids and anything where done !== true. Catch errors and show a short message by err.code: forbidden, closed, quota, rate_limited. No backend, no localStorage, no key in the page. One HTML file, mobile first.
Publish it to Hostus, set the document's data mode to per_reader so each client sees only their own ticks, and give me the link.The page is born private: switch it to email-gated in the Hostus dashboard before you send the link, so each client's progress follows the email they type and you know which client is which. Ask and Reply are already on; the data mode is a document setting Claude sets with hostus_update.
What you see while the work goes on
The Data tab on the document lists every record in a table: one row per step per client, with the step as a column, the author column showing the email the client typed on an email-gated page (an anonymous reader shows as anonymous), and the full key, step plus reader id, in the CSV or JSON export and in what Claude reads. That table is how you see each client's progress; there is no dashboard with a bar per client, but a search by step id or by email shows that client A has nine steps done and none under hosting access. Claude reads the same records through the connector.
Three other signals arrive without a tick: reading by section shows which group each client opened and for how long; Ask lists every question clients put to the page, and the ones it could not answer are what the next version should say; replies arrive by email, anchored to the group the client was reading, private between that client and you.
When the steps change, upload the new file to the same document: every client's link shows the new page, ticks under unchanged ids stay, and the previous version sits in the history.
HubSpot, Notion, Google Docs, Trello, HoneyBook, Dubsado: pick it if
Facts were read on each vendor's own site on 2026-10-18; where a page did not say, this guide says "check their site".
- Hostus. Best if each client gets the checklist as a link, ticks their own steps from a phone with no account, and you see how far each one is. The ticks live on the document in
per_readermode, the client can ask the page and reply on it, and the free plan has no clock and no card. - A HubSpot template. Pick it if you want documents to fill in and send, not a page the client ticks. HubSpot's offer page lists eight customer onboarding templates, "17 pages" in all, free ("Is this really free?" "Absolutely!") and behind a form, your details given "in exchange for a valuable resource". The format is not stated.
- A Notion page. Pick it if your checklist already lives in Notion. Free is $0; guests are free and "can only access individual pages they are invited to", up to 10 on Free; a page can be published to the web; basic analytics "includes a list of page viewers". Plus is $10 per seat a month. Whether a guest needs an account is not stated.
- A Google Doc or Sheet. Pick it if the client will only read it and you are happy duplicating a file per client. It comes with a Google account; ticks in a shared document are everyone's ticks.
- Trello. Pick it if you want a board with cards and the client will join your workspace. Free is $0 with "Up to 10 boards per Workspace", unlimited cards and "Free for up to 10 collaborators per Workspace"; Standard is $6 per user a month, $5 billed annually. Whether a collaborator needs an account is not stated.
- HoneyBook. Pick it if onboarding means contract, invoice, payment and a client portal in one product. No free plan; "All plans start with a free trial", 30 days, no card. Starter is $29 a month billed yearly with a client portal, proposals and contracts, invoices and payments; Essentials $49, Premium $109, billed yearly.
- Dubsado. Pick it if you want a client portal with forms, invoices and payment schedules behind it, on a yearly bill. Starter is $335 a year, Premier $525; no monthly price is printed. Both include a client portal and invoices with payment schedules; Starter allows one active lead capture form. A 21-day trial, no free plan.
Side by side
| Option | Each client ticks their own | Client needs an account | You see progress per client | Client can ask a question on a step | Free plan | Page is yours (HTML) |
|---|---|---|---|---|---|---|
| Hostus, one HTML page | Yes, per_reader mode | No; an email on a gated page | Yes, in the Data tab | Yes, Ask and Reply | Yes, no clock, 1,000 records per collection | Yes, one file |
| HubSpot template | No, a document you send | No; your details for the download | No | No | Free, behind a form | No, a document |
| Notion page | Depends on how you share it | Check their site | A list of page viewers on Free | No | Yes, $0 | No |
| Google Doc or Sheet | No, one copy per client | Depends on the sharing settings | No | No | Comes with a Google account | No |
| Trello | A board per client | Joins your Workspace; check their site | Yes, on the board | No | Yes, 10 boards and 10 collaborators per Workspace | No |
| HoneyBook | A portal per client | Check their site | Yes, in the portal | No | No; 30-day trial | No |
| Dubsado | A portal per client | Check their site | Yes, in the portal | No | No; 21-day trial | No |
Read on each vendor's own site on 18 October 2026; "check their site" means the vendor did not publish it.
Good to know before you switch
Per reader means per browser unless the page is gated: an anonymous client who clears cookies or switches from phone to laptop starts from zero. Email-gate the page and their ticks follow the email they type. The gate is by email, not password, and the address is just typed; an allowlist of addresses or a @domain only limits which ones can be typed in. The storage works only while the page is hosted on Hostus.
The free plan holds 1,000 records per collection, shared by every client of the same link, far from twelve steps times your clients; paid is 20,000. Anyone with a public link can write records, so a visitor who is not a client could fill that quota; an email-gated page narrows who can. The SDK's watch returns at most 200 records per call, so once many clients have ticked, your own view of the page as the owner can be incomplete; the Data tab is the full view, and clients, who see only their own dozen records, are unaffected. One document is one checklist on one link; a folder groups them. The page does not remind the client: no email to them when a step is overdue or ticked, so the follow-up is still yours. The link is your-slug.hostus.page, with no custom domain on any plan; the file is yours and goes on your own domain with any host, without the storage. Every page carries a small "Published with Hostus" pill in the bottom-right corner, free and paid, and public and gated pages carry a noindex meta.