Skip to content

Epic: get new organizers from a draft to a shared link #498

Open
4 of 8 issues completed
Open

Description

@richshaw

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

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. Find fixable problems in a draft and offer one-tap fixes #503 Find fixable problems in a draft and offer one-tap fixes.
  6. Edit slots from the review page #504 Edit slots from the review page.
  7. After publishing, help the organizer share the link #505 After publishing, help the organizer share the link.
  8. 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:

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

  1. richshaw commented on Oct 20, 2026

    @richshaw
    OwnerAuthor

    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:ready to pipeline:building so 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

  2. richshaw commented on Oct 21, 2026

    @richshaw
    OwnerAuthor

    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.

    # PR Issue What it does
    — #526 #501 Magic Compose: one slot with a capacity, not a row per person. Independent; merge any time. Run the eval first, as its body says.
    1 #525 #500 Telemetry: link copies, failed AI drafts, refused publishes, phone/computer.
    2 #527 #502 Moves the signup tabs into a (tabs) route group. No visible change.
    3 #528 #502 "Check your signup, then share it": the review page for drafts.
    4 #530 #503 Points out fixable problems in a draft.
    5 #531 #505 Publish lands on a share step: copy, share, message, QR.
    6 #532 #506 One email about an unpublished draft, with an off switch. Has three owner decisions with defaults; see the PR.
    7 #533 #503 One-tap fixes with Undo (empty field, blank slots, unnamed field, ungrouped dates).
    8 #534 #503 Merge copied slots into one, with Undo. Closes #503.
    9 #535 #504 Tap a slot on the review page to change it.
    10 #536 #504 Remove day, with Undo.
    11 #537 #504 People for each slot, with Undo. Closes #504.

    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.
    • Build tab: 151 → 153 kB. SlotEditor is now shared with the review page's lazy editor.
    • /login: 109 → 110 kB. Webpack runtime entry.

    Generated by Claude Code

  3. richshaw commented on Oct 22, 2026

    @richshaw
    OwnerAuthor

    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:

    • the fixes probably live in the Build page;
    • a new draft still gets clear next steps;
    • the organizer can accept, dismiss or undo each change;
    • sharing after Publish feels part of the site.

    Still going ahead

    Closed, with branches kept for reuse

    Issues


    Generated by Claude Code

  4. richshaw commented on Oct 24, 2026

    @richshaw
    OwnerAuthor

    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:

      • Nothing to sign up for (an empty first slot): can't be published. "Fill it in" or "Not now".
      • Placeholder text such as "TBD": can be published. "Name it first" or "Publish anyway", and the slot is marked on the page.
      • After "Name it first", Done (or Enter) puts focus back on the button.
    • Publishing opens a share panel next to the button, or a sheet on a phone, rather than a separate page. It has:

      • Copy link;
      • a ready message with the dates and spots, which the organizer can edit;
      • Email it;
      • a QR code.

      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

    Why this one (public sources)

    Open decisions

    • The panel says "We'll email you when the first person signs up". That email doesn't exist yet. Build it, or drop the line.
    • There's no confirmation when nothing's wrong, even though a published signup can't go back to being a draft. The reasoning: nobody sees the page until the link is sent.
    • "Delete draft" is in the draft's ⋯ menu on the mock-up, but it isn't designed.

    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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions