Repository navigation
Epic: get new organizers from a draft to a shared link #498
Description
This tracks the plan. Each sub-issue carries its own pipeline:proposed label and needs your OK on its own.
The problem
Most new organizers who stop do so before they publish, and in their first session:
- AI drafts: people open the draft and leave without editing it.
- Hand-built drafts: people stall after the first slot or two.
- Publish: it's easy to miss, especially on a phone.
- Coming back: nothing brings an organizer back to an unfinished draft.
- Sharing: some published signups never get their link shared.
Participants who reach a page mostly sign up fine.
This comes from a funnel review of production data and a check of drafts that were never published. The figures stay out of this public repo.
The plan
New drafts land on a short page, "Check your signup, then share it", instead of the Build tab. The page:
- shows the signup the way people will see it;
- points out problems the code can prove, with a one-tap fix for each;
- puts Publish front and centre.
A share step after publishing and a one-time reminder email about unpublished drafts cover the two ends.
Design
The design is on a canvas: https://claude.ai/artifact/RqcjzCcdSTw5JhbXjm2x5y. It's private until it's shared from its Share menu. Row C is this plan:
- C · Check and publish: an AI draft with two problems: the review page. It's clickable.
- C · After the two fixes, editing one slot
- C · The same card on four common shapes (made-up data)
- C · Share step (phone)
- C · Same-day draft email
The "Today" row has screenshots of the current flow. Rows A, B and D are other directions and aren't part of this plan.
Order
- Make Publish hard to miss, and say when it fails #499 Make Publish hard to miss, and say when it fails (with One click on "Close signup" closes a signup for good, from the spot where Publish was #457).
- Record link copies, failed AI drafts and refused publishes #500 Record link copies, failed AI drafts and refused publishes. Ship this before Land new drafts on a "Check your signup, then share it" page #502, so its effect can be measured.
- Magic Compose: one slot with N spots, not N copies of a row #501 Magic Compose: one slot with N spots, not N copies of a row.
- Land new drafts on a "Check your signup, then share it" page #502 Land new drafts on a "Check your signup, then share it" page.
- Find fixable problems in a draft and offer one-tap fixes #503 Find fixable problems in a draft and offer one-tap fixes.
- Edit slots from the review page #504 Edit slots from the review page.
- After publishing, help the organizer share the link #505 After publishing, help the organizer share the link.
- Email organizers once about a draft they haven't published #506 Email organizers once about a draft they haven't published. It has three decisions for you.
#499, #500 and #501 don't depend on each other and can be built in parallel. #503 and #504 need #502.
How we'll know
Compare before and after on:
- the share of new drafts published within a day;
- review-page notices shown against notices accepted, by kind (Record link copies, failed AI drafts and refused publishes #500);
- link copies after publishing.
Not in this plan
- A better start for hand-built signups. Direction D on the canvas: days × shifts × people. Empty drafts need this more than any review.
- Change a draft by asking. Direction A, available when an LLM is configured. It's for organizers who re-create the same signup again and again.
- A dashboard hint when several drafts look like the same event.
- Rejected along the way: generating a custom editor from each signup's shape. It needed nine layout combinations and still couldn't correct a single value.
Planned in https://claude.ai/code/session_01AkZbMUc4ej4ed7o5uh6nqr
Activity
richshaw commentedon Oct 20, 2026
Building this epic as a stack of PRs, at the owner's request, in https://claude.ai/code/session_01BTvMvHZ4i4FWQFAsxcr5Zm. I've moved #457 and #500 from
pipeline:readytopipeline:buildingso the conductor doesn't start a second build of them. Each sub-issue gets its own PR (some get two, to keep them small), opened against the PR before it.Generated by Claude Code
richshaw commentedon Oct 21, 2026
The stack for this epic is up. Each PR has been reviewed, its review findings fixed, and checked by hand in the running app; each has a tophat comment. Merge in this order. GitHub retargets each one as the one below it merges.
(tabs)route group. No visible change.Not built yet:
Both change the header buttons that #507 rewrites, so they wait for #507 to merge. Notes on both issues.
Budgets raised, each with its reason in its PR:
/app/signups/[id]: 112 → 115 kB.SlotEditoris now shared with the review page's lazy editor./login: 109 → 110 kB. Webpack runtime entry.Generated by Claude Code
richshaw commentedon Oct 22, 2026
The review-page stack is closed; a redesign comes next
After trying it for real, the stack is closed without merging. The intent is right, but the separate review page and the full-page share step felt heavy. The next step is a design pass. In outline:
Still going ahead
main.Closed, with branches kept for reuse
src/lib/draft-checks.ts), the fixes and their undo (src/services/draft-fixes.ts), merging copies (src/services/slot-merge.ts), removing a day and setting every slot's spots at once (deleteDraftSlots,updateSlotCapacities), and the share step's message, QR code and share sheet.Issues
main. Email organizers once about a draft they haven't published #506 stays here for "Email me a link to finish later".pipeline:buildingfrom them, since nothing is building them now.Generated by Claude Code
richshaw commentedon Oct 24, 2026
Redesign: one "Publish and share" button (row I)
The design pass from the last comment is done. Along the way I tried a checklist beside the page, steps under the title, a single next-step line, and todos that point at the real buttons. The version that held up is the simplest: no new page and no task list, just one button that publishes and then hands over the link. It's row I on the canvas linked above.
The canvas now holds only row I. The Today, A, B and C boards that this epic, #499, #502 and #505 point to have been removed. They're still in the canvas's version history if anyone needs them back.
What it does
One primary button, "Publish and share". It sits top right on the Build page, and in a full-width bar at the bottom on a phone, not inside the ⋯ sheet.
It publishes at once when nothing's wrong. No "are you sure?".
A check appears only when the code can prove a problem:
Publishing opens a share panel next to the button, or a sheet on a phone, rather than a separate page. It has:
On a phone, "Share…" (
navigator.share) comes first. The panel closes with ✕, Escape or a click outside, and focus returns to the button.After publishing, the same button says "Share" and reopens the panel. The public link keeps its one-click Copy and shows "0/21 signed up". On a phone, the count sits in the bar.
Close signup moves into the ⋯ menu and asks first. It never takes Publish's spot.
A draft says "Only you can see this draft until you publish it." instead of showing a public link.
Nothing here needs an AI model.
How it maps onto this epic
?error=still apply as written.src/lib/draft-checks.tscould feed it. Problems show when Publish is pressed, not as a list.Why this one (public sources)
Open decisions
Tested in a local copy of the canvas runtime: 47 desktop checks at 1440, 1024 and 820 px, and 32 phone checks at 390 px. axe reports no WCAG A/AA violations in the draft, check, editing and share states.
Designed in https://claude.ai/code/session_0178uwy8TNrYZBerYDJLwERL
Generated by Claude Code