Event Runner
A white-label event CMS for conferences and gatherings. Each client event gets its own Firebase project. The Center for Cooperative Media deploys and operates it. Client staff run the site from the admin CMS. They never touch the code.
License: Apache-2.0. The code is free. The trademark is the exclusivity lever: nobody else can market hosting under this name.
Status: Public extraction in progress. The v1 architecture spec and feature triage are the contract. Work is tracked on the roadmap and the project board. Milestones 1 to 4 and the public-site parity milestone are complete. Packaging (M5) and the parity milestones M8 to M12 are open. The design vocabulary is expanding in six waves (#249); wave 1 has merged.
Site: centercoopmedia.github.io/eventrunner Documentation: centercoopmedia.github.io/eventrunner/docs Handbook: wiki
Demos#
Static visitor preview#
Open the static visitor preview. It is an NC Local past-event mock-up of the March 27, 2026 NC News & Information Summit in Raleigh. Its selected historical program includes eight named sessions, 25 public speakers, and documented partner roles. It does not reproduce the full agenda or represent an official NC Local site, endorsement, or future event. See the historical content and sources.
The preview is read-only, needs no account, and has no admin panel. Sign-in, registration, ticket claims, email actions, the attendee directory, and calendar exports are disabled. Compare all six site styles in light or dark mode, or open the specimen book for interface components.
Hosted admin/client demo#
Open the hosted client demo or its admin panel. This separate Firebase-hosted deployment demonstrates client and admin workflows. Admin screens require an authorized account; opening the link does not grant access. The admin guide explains the staff editing screens.
The hosted demo was reseeded with the NC Local historical content on October 9, 2026 (#346). Its content and release can differ from the static preview. Hosted-demo verification remains tracked in #35.
Who it is for#
Nonprofit and journalism organizations, universities, and event producers who want a staff-run event site: schedule, speakers, registration, materials, and a block-based CMS.
The reference implementation is the 2026 Collaborative Journalism Summit site (jamditis/cjs2026). That repo stays the live production event. This repo is a new extract, not a fork. Features cut from v1 stay in the summit repo.
What v1 includes#
- Block-based CMS with draft/publish
- Schedule, sessions, bookmarks, ICS/calendar links
- Speaker invite, accept, profile, and approval
- Attendee directory and profiles
- Sponsors and organizations
- Google sign-in and emailed 6-digit OTP codes
- Session materials with embargo
- Media library
- Eventbrite plus manual/CSV ticketing adapters
- Per-event theming: six site styles, each with a light and a dark palette, and a specimen book in the demo that draws every device in every style and mode
- An admin CMS on its own editorial desk, in the event's own colours
- Transactional email through a provider adapter (Postmark is the reference)
- Announcement email from the admin panel to registered attendees, approved attendees, or speakers, with a preview, a test send, a confirmation of the recipient count, a separate broadcast stream, and one-click unsubscribe
What v1 does not include is listed in the triage record. Video generation, social feeds, and speaker chat stay out. Sponsor invoicing was cut in the triage and is back in scope (ADR 0001 §4.2 amendment, #208). Airtable is in scope for session pitch intake only: a read-only refresh from one approved table into the private review queue (ADR 0005). Other Airtable sync stays out. Announcement email goes only to the event's attendees and speakers; it is not a marketing list tool.
Operating model#
One Firebase project per client event. A client with a second event, or a new edition, gets a new
project. scripts/export-event-template.cjs carries the approved branding, page templates and
selected static settings into it, and nothing else; see "Reuse a past event as a template" in
docs/CLIENT_ONBOARDING.md. Configuration is two tiers:
- Deploy-time environment variables (project id, providers, public URL). Documented in
.env.example. - Runtime Firestore
config/*documents that client admins edit: name, dates, venue, theme, badges.
See spec §2.
Repo layout#
apps/web Vite frontend: the public site, the admin CMS, the demo, the specimen book
functions Cloud Functions by domain module
packages/shared Config schema, theme, lifecycle clock, time, registration, badges
scripts Operator tools, generators, and the CI checks
design/tokens The three token tiers, the six site styles, the admin's own set
docs Spec, roadmap, design records, and the GitHub Pages site
packages/shared is CommonJS with hand-written ESM shims so the same module serves Vite and Cloud Functions with no transpile step.
Develop#
Node 22 (22.12 or later), Node 24, or Node 26 and later. Vitest 5 does not run on Node 23 or 25.
npm test
That runs the shared-package suite on Node's built-in test runner. No install step and no credentials. The emulator loop (npm run dev:emulators) lands with the web app and functions.
Rules that apply to every PR:
- No hardcoded event name, city, hex color, or domain. Event identity comes from config.
ticket_sync_queueis the only queue in the system.- CI must stay credential-free so fork PRs can run every check.
See CONTRIBUTING.md.
License and trademark#
Copyright 2026 Center for Cooperative Media. Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.
Apache-2.0 does not grant trademark rights. "Event Runner" as a product name is reserved to the Center for Cooperative Media.
Security#
Do not open a public issue for a vulnerability. Use private vulnerability reporting or email info@eventrunner.org. See SECURITY.md.
Operator-run client deployments are out of scope for public reports. Email the operator of that deployment.
Support#
| You are… | Start here |
|---|---|
| Attendee or event staff with a how-to | Q&A |
| An organization that wants a hosted event | General |
| Reporting a product bug | Bug form |
| CCM already hosts your site | info@eventrunner.org |
| Changing the code | CONTRIBUTING.md |
The wiki is the handbook for attendees, staff, and clients. GOVERNANCE.md is who decides.
An initiative of the Center for Cooperative Media at Montclair State University.