Skip to content

fix(workshops): the empty state told people to wait for something they could start - #393

Merged
github-actions[bot] merged 1 commit into
mainfrom
feat/workshops-honest
Aug 26, 2026
Merged

fix(workshops): the empty state told people to wait for something they could start#393
github-actions[bot] merged 1 commit into
mainfrom
feat/workshops-honest

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

/workshops is where pillar 4 — retraining for a labour market AI is rewriting — sends people, and it answered them with:

Aktuell sind keine Workshops geplant
Schau bald wieder vorbei!

…with a working "Workshop vorschlagen" button directly above it and another CTA below. The page was telling you to wait for something you could start yourself.

The pipeline is complete — I traced it before touching anything

Rather than assume the flow was broken because the page was empty:

  • POST /api/workshops/propose is withAuth and creates a proposal
  • the propose page checks the session and shows a login prompt, so nobody fills six form sections only to be 401'd on submit
  • submitting renders a confirmation naming the proposal, with a link back
  • the admin approve route inserts both a workshops row and a scheduled workshop_instance — so an approved proposal lands here with a date

"0 Workshops" means nobody has proposed yet, not that anything is broken.

(A previous session had already removed the one real dead end here: /admin/workshops/new was a form that validated, waited 1s and silently discarded everything. It redirects into the proposal flow now.)

What changed

The empty state leads with the action:

Noch ist kein Termin ausgeschrieben
Das Programm entsteht aus Vorschlägen. Schlag einen Workshop vor — als Thema, das du lernen willst, oder als Kurs, den du selbst geben möchtest. Wir schauen ihn an und schreiben ihn aus.

Both directions are named because the form supports both and only one of them was obvious from the button label. Nothing here claims a workshop exists.

Below it, two cards for what evig can teach today — the 43-entry open-source alternatives registry and the Linux setup guide with its distro matrix. They render only while the calendar is empty; once workshops exist, the workshops are the answer. Structure in a config array, strings under workshops.browse.meanwhile.<id>, paired by stable id.

Verification

npm run verify green: lint, umlauts, chrome, docs, compliance, typecheck, 7755 tests, production build.

🤖 Generated with Claude Code

…y could start

/workshops is where pillar 4 — retraining for a labour market AI is
rewriting — sends people, and it answered them with:

    Aktuell sind keine Workshops geplant
    Schau bald wieder vorbei!

with a working "Workshop vorschlagen" button directly above it and another
CTA below. The page was telling you to wait for something you could start
yourself.

The proposal pipeline is complete, and I traced it end to end before touching
anything rather than assuming it was broken:

  - POST /api/workshops/propose is withAuth and creates a proposal
  - the propose page checks the session and shows a login prompt, so nobody
    fills six form sections only to be 401'd on submit
  - submitting renders a confirmation naming the proposal, with a link back
  - the admin approve route inserts BOTH a workshops row AND a scheduled
    workshop_instance, so an approved proposal lands here WITH a date

"0 Workshops" therefore means nobody has proposed yet — not that anything is
broken. (A previous session had already removed the one real dead end here:
/admin/workshops/new was a form that validated, waited 1s and silently
discarded everything. It redirects into the proposal flow now.)

So the empty state leads with that action: "Das Programm entsteht aus
Vorschlägen. Schlag einen Workshop vor — als Thema, das du lernen willst,
oder als Kurs, den du selbst geben möchtest." Both directions are named
because the form supports both and only one of them was obvious.

Nothing here claims a workshop exists.

Below it, two cards for what evig can teach TODAY: the 43-entry open-source
alternatives registry and the Linux setup guide with its distro matrix. They
render only while the calendar is empty — once workshops exist, the workshops
are the answer. Structure in a config array, strings under
`workshops.browse.meanwhile.<id>`, paired by stable id.

npm run verify green: lint, umlauts, chrome, docs, compliance, typecheck,
7755 tests, production build.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@catomean
catomean force-pushed the feat/workshops-honest branch from f31ae12 to 1cbf13d Compare August 26, 2026 21:06
@github-actions
github-actions Bot merged commit 573601d into main Aug 26, 2026
9 checks passed
@github-actions
github-actions Bot deleted the feat/workshops-honest branch August 26, 2026 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant