Skip to content

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_EMAILS or in the platform_users table)

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 organization
  • admin: Can manage events within assigned organizations

Step 2: Create the event

Navigate to /platform/events/create and fill in:

FieldDescription
Display nameEvent title (e.g., "Atkins Family Reunion 2026")
SlugURL-friendly identifier (e.g., atkins-reunion-2026)
Admin emailInitial admin email for the event
Start/End dateEvent date range
LocationVenue or general location
TaglineShort subtitle
DescriptionEvent description
Primary/Accent colorTheme colors (hex)
OrganizationOptional organization grouping

Click create. The event is immediately available — the system:

  1. Inserts a platform_events record
  2. Creates a domain entry in platform_event_domains
  3. 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:

  1. Add the domain to platform_event_domains via the platform UI
  2. Configure DNS (CNAME or A record) pointing to the Worker
  3. Verify the domain resolves correctly

For Docker deployments

  1. Add the hostname to platform_event_domains
  2. Configure your reverse proxy to route the hostname to the container
  3. Add DNS records pointing to your proxy

Step 4: Configure the event

Once created, configure the event as an organizer:

  1. Visit the event's subdomain
  2. Sign in with the admin email
  3. Navigate to /admin/settings to refine settings
  4. Follow the recommended setup order

Managing events

From /platform/events, operators can:

ActionDescription
View detailsSee event metadata, status, and domains
EditUpdate event details (name, dates, admin email)
SuspendPut event in maintenance mode (503 for visitors)
ArchiveMove to read-only archive state
Manage domainsAdd or remove hostname mappings

Event status lifecycle

draft → active → post-event → archived

            suspended (can return to active)
StatusMeaning
draftCreated but not publicly routed
activeFully operational
post-eventRead-only (set via event admin)
suspendedTemporarily unavailable (503)
archivedPermanently read-only, not routed

Organizations

Events can be grouped into organizations for management purposes:

  1. Create an organization at /platform/organizations/create
  2. Assign events to the organization
  3. Add org members (users with admin role 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

SymptomFix
Event not accessibleVerify domain entry in platform_event_domains and DNS
Permission denied on platformConfirm email in PLATFORM_OPERATOR_EMAILS or platform_users
Event stuck in draftUpdate status to active in the platform event details
Domain not resolvingCheck DNS records and propagation (may take minutes to hours)
Wrong event loadingVerify hostname is unique in platform_event_domains

Released under the MIT License.