Guide

A client onboarding checklist
each client ticks from a link

No portal, no account for the client. Every client opens the same link, ticks their own steps from a phone, and you see how far each one is. One HTML file you own, with the 12 steps most studios need.

Updated 2026-10-18 · by Hostus Team

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_reader mode, 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

OptionEach client ticks their ownClient needs an accountYou see progress per clientClient can ask a question on a stepFree planPage is yours (HTML)
Hostus, one HTML pageYes, per_reader modeNo; an email on a gated pageYes, in the Data tabYes, Ask and ReplyYes, no clock, 1,000 records per collectionYes, one file
HubSpot templateNo, a document you sendNo; your details for the downloadNoNoFree, behind a formNo, a document
Notion pageDepends on how you share itCheck their siteA list of page viewers on FreeNoYes, $0No
Google Doc or SheetNo, one copy per clientDepends on the sharing settingsNoNoComes with a Google accountNo
TrelloA board per clientJoins your Workspace; check their siteYes, on the boardNoYes, 10 boards and 10 collaborators per WorkspaceNo
HoneyBookA portal per clientCheck their siteYes, in the portalNoNo; 30-day trialNo
DubsadoA portal per clientCheck their siteYes, in the portalNoNo; 21-day trialNo

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.

Questions people ask

How do I share a client onboarding checklist without a client portal?

Publish it as one HTML page whose ticks are stored on the document in per_reader mode, and send the link. Each client ticks their own steps with no account, and you see every client's rows in the Data tab.

Does the client need an account?

No. On a public page a client is a signed cookie the server issues when they open the link. On an email-gated page they type an email, still no account, and their ticks follow that email on any device.

Can I see which steps each client has done?

Yes. The Data tab lists one record per step per client, with the step as a column and, on a gated page, the client's email in the author column; the full key with the reader id is in the CSV or JSON export; Claude reads the same records through the connector.

What happens if the client switches from phone to laptop?

On an email-gated page, nothing: same email, same ticks. On a public page an anonymous reader is a cookie in one browser, so a new device or cleared cookies starts an empty list.

Can the client ask a question about a step?

Yes, two ways. Ask answers from what the page says, with the section cited, so "what format do you want the logo in?" gets the line you wrote under that step. Reply sends you a private note anchored to the group they were reading.

Can I use the same link for every client?

Yes, that is the point of per_reader mode: one page, one link, each client sees only their own ticks and you see all of them. If two kinds of clients need different steps, make two pages in a folder.

One link. Each client ticks their own steps.

Claude writes the checklist, Hostus hosts it. Free plan, no card, no clock.