Admin Tools

One Cloudflare Worker and one small SPA that give a handful of volunteers a safer way to publish content and keep contact lists tidy.

What it does

Design decisions

Under the hood

Screenshots

Taken from a local copy with invented events, contacts and drafts; no real member or organisation data is shown.

Events tab after pasting an event URL: an editable review form with title, host, region, date, venue, price and tag pills
Events: the importer's review form, filled from a pasted link.
Suggestions and queue tab: a processing queue with a working and a failed job, and Slack-found links with Accept and Reject buttons
The paced link queue and links found in Slack.
Registrations tab listing five registrants for an event with an Export CSV button
Registrations: a read-only lookup that can be granted on its own.
Reconcile tab showing a field mismatch to resolve and tag mismatches as a grid of checkboxes for Wix and EmailOctopus
Reconcile: drift between the site and the email provider, fixed one contact at a time.
Slack tab listing label mismatches, a deactivated member and a Slack-only account
Slack: membership drift against the site's contact labels.
A Facebook post draft with a Check before approving warning box, editable post text, first comment and card fields
Social: a draft with fact-check warnings, waiting for approval.
A rendered post card preview with an orange headline band, a placeholder photo area and a teal script band
The rendered post card preview.
First comments queue showing waiting, posted, partly posted and expired entries
First comments: queued, posted, partial and expired entries.
Admin tab with the admin allowlist and a per-user tab access grid
Admin: the allowlist and per-user tab access.