Live checklists
Add a shared, checkable to-do list to any page with an <smp-checklist> block. Checks persist and sync across everyone who opens the link.
A page can hold a shared checklist. Drop an <smp-checklist> block into your
HTML and each item becomes a checkbox that everyone with access can tick off.
Checks are stored for you and shared across the whole team, so a page like a
launch plan becomes a live board where the remaining work visibly shrinks as
people complete it.
You do not need a backend, an API key, or any JavaScript of your own. The block is the whole contract.
This is shared team state, not a personal list: when anyone checks "Deploy to staging," it is checked for everyone. Checks are anonymous, the board shows what is done, not who did it.
A basic checklist
<smp-checklist id="launch">
<smp-item value="copy">Finalize homepage copy</smp-item>
<smp-item value="deploy">Deploy to staging</smp-item>
<smp-item value="qa">QA on mobile</smp-item>
</smp-checklist>id(required) is a stable key for this checklist. Keep it unique on the page and do not change it later, it is what the checks are filed under.- Each
<smp-item value="...">is one to-do. Thevalueis the stable key the check is stored under; the text inside the tag is the visible label.
When the page is viewed, each item becomes a checkbox. Ticking one records it for everyone; unticking clears it. Other people's changes appear on their own without a manual refresh (the board re-reads every few seconds and when you return to the tab).
If the markup is malformed (no id, or no valid items) the block is left as
plain text, so a broken block never breaks the page.
Styling it
The checklist renders into your page's own HTML with no built-in styling, so your page CSS fully controls the look. The hooks:
[data-smp-checklist="id"]on the container.[data-smp-item="value"]on each item; it getsdata-smp-checkedwhen done.data-smp-checked-countanddata-smp-totalon the container, for a progress readout like "3 / 8 done" or a progress bar, with no JavaScript of your own.data-smp-checklist-closedon the container when the list is closed.
[data-smp-item][data-smp-checked] span { text-decoration: line-through; opacity: 0.55; }
[data-smp-checklist]::after {
content: attr(data-smp-checked-count) " / " attr(data-smp-total) " done";
}Managing it
Open the page's settings, under Responses you can Close the checklist (freezes it read-only) or Reset it (clears every check for a fresh run).
Anyone who can view the page can check items off, the same as voting on a live poll. On a private page, that is exactly the people you invited.