The CatAgree New workshop screen, with fields for the workshop name and description above a participant list and buttons to save a draft or launch the workshop
Personal ProjectsWork in Progress

Update: CatAgree, from mockups to working software

November 4, 2026

CatAgree is a tool I’m building for running card sorting workshops with a team, at their own pace. Instead of handing people a fixed list of cards to sort, the participants write the cards and name the categories themselves. An admin guides the group through four phases, and the workshop ends with a map the whole team agrees on. This can be applied to content or any type of sorting with a group.

When I shared a first look at CatAgree in April, everything you saw was a design. Since then I've been building it, and the admin side now works end to end. You can set up a workshop, launch it, and send every participant a personal link. Here's what's new, with a few screens I haven't shown before.

Setting up a workshop

A workshop starts as a draft. You give it a name and a short description, then add participants with an email, name, and role. Nothing goes out until you launch, so you can save the draft and come back as the list fills in.

You also choose whether contributions are anonymous or attributed to the person who made them. Anonymous is the default.

Launching

The CatAgree launch confirmation dialog summarizing the workshop name, three invites, the sender address, and a link expiry date 30 days out, with Cancel and Launch & send invites buttons

Launching is the one step you can't undo, so it gets a confirmation. The dialog sums up what's about to happen: how many invites go out, who they come from, and when the links expire, 30 days after launch.

After launch you can still add participants, but the anonymity setting and the invite email are locked, so nobody's experience of the workshop changes partway through.

Invite emails go out the moment you launch. If one fails to send, the cockpit flags it and you can retry that single invite without resending to everyone else.

The participant's side

The CatAgree participant welcome page greeting Alice Rodriguez, showing the workshop name, a Phase 1 of 4 Active badge, a four-step progress bar, and a note that the contribution editor is still being built

Participants don't create accounts. Each invite carries a personal link, and opening it lands you on a welcome page for your workshop. It shows which of the four phases is active and what you're being asked to do.

This screen also shows where the build stands. Phase 1, where participants add their own cards, is what I'm building next. For now the page explains that the editor is on its way, and the link will keep working when it arrives.

Every state of a link

The CatAgree participant page for a finished workshop, with a check mark, the heading This workshop has ended, and a note to contact the person who sent the invite with questions

A lot of the participant work went into the less glamorous cases. A link can point to a workshop that hasn't launched yet, one that's running, or one that has ended. It can also have expired, or not exist at all. Each case gets its own page in plain language, so someone clicking an old email never lands on an error screen. If an admin deletes a workshop, participants see the same "workshop has ended" page.

Under the hood

The app runs on Next.js with Convex as the backend, which handles the data, sign-in, and sending invites through Resend. The participant link logic has automated tests covering each of those link states, since that's the part real people will hit first.

What's next

Next up is the part the whole tool is built around: Phase 1, where participants add their own cards. After that come the remaining phases and the export of the final content map.

If you've run content workshops and would like to try CatAgree with your team once Phase 1 is live, I'd love to hear from you.

More soon!