Creating Events
Events are created through the platform management UI — no config files, no deploy steps, and no CLI commands.
Prerequisites
- The app is deployed and running (Cloudflare or Docker)
- You have platform operator access (your email in
PLATFORM_OPERATOR_EMAILSor in theplatform_userstable)
Step 1: Sign in to the platform
Navigate to /platform and sign in with your operator email. The platform UI is served from the same Worker as event sites.
Operator roles:
super_admin: Can create and manage any event or organizationadmin: Can manage events within assigned organizations
Step 2: Create the event
Navigate to /platform/events/create and fill in:
| Field | Description |
|---|---|
| Display name | Event title (e.g., "Atkins Family Reunion 2026") |
| Slug | URL-friendly identifier (e.g., atkins-reunion-2026) |
| Admin email | Initial admin email for the event |
| Start/End date | Event date range |
| Location | Venue or general location |
| Tagline | Short subtitle |
| Description | Event description |
| Primary/Accent color | Theme colors (hex) |
| Organization | Optional organization grouping |
Click create. The event is immediately available — the system:
- Inserts a
platform_eventsrecord - Creates a domain entry in
platform_event_domains - Sets the initial status to
active
No build, no deploy, no queue. It's a database insert.
Step 3: Configure the domain
Each event needs a hostname. The default domain is {slug}.{PLATFORM_DOMAIN_SUFFIX} (e.g., atkins-reunion-2026.tripplan.ing).
For Cloudflare deployments
If using wildcard DNS (*.tripplan.ing → Worker), the subdomain works immediately.
For custom domains:
- Add the domain to
platform_event_domainsvia the platform UI - Configure DNS (CNAME or A record) pointing to the Worker
- Verify the domain resolves correctly
For Docker deployments
- Add the hostname to
platform_event_domains - Configure your reverse proxy to route the hostname to the container
- Add DNS records pointing to your proxy
Step 4: Configure the event
Once created, configure the event as an organizer:
- Visit the event's subdomain
- Sign in with the admin email
- Navigate to
/admin/settingsto refine settings - Follow the recommended setup order
Managing events
From /platform/events, operators can:
| Action | Description |
|---|---|
| View details | See event metadata, status, and domains |
| Edit | Update event details (name, dates, admin email) |
| Suspend | Put event in maintenance mode (503 for visitors) |
| Archive | Move to read-only archive state |
| Manage domains | Add or remove hostname mappings |
Event status lifecycle
draft → active → post-event → archived
↓
suspended (can return to active)| Status | Meaning |
|---|---|
draft | Created but not publicly routed |
active | Fully operational |
post-event | Read-only (set via event admin) |
suspended | Temporarily unavailable (503) |
archived | Permanently read-only, not routed |
Organizations
Events can be grouped into organizations for management purposes:
- Create an organization at
/platform/organizations/create - Assign events to the organization
- Add org members (users with
adminrole can manage org events)
Legacy migration
The legacy npm run new-event and npm run use-event commands are retired. Events are now created exclusively through the platform UI.
Troubleshooting
| Symptom | Fix |
|---|---|
| Event not accessible | Verify domain entry in platform_event_domains and DNS |
| Permission denied on platform | Confirm email in PLATFORM_OPERATOR_EMAILS or platform_users |
| Event stuck in draft | Update status to active in the platform event details |
| Domain not resolving | Check DNS records and propagation (may take minutes to hours) |
| Wrong event loading | Verify hostname is unique in platform_event_domains |
Related pages
- Cloudflare Workers — DNS and domain setup for Cloudflare
- Docker — hostname routing with reverse proxy
- Organizer Guide — event configuration after creation
- Event Settings — fine-tune event settings