Skip to content

What is tripplan.ing?

tripplan.ing is an open source platform for creating private event websites — family reunions, group trips, retreats, weddings, and similar gatherings. A single deployment serves multiple events, each with its own subdomain, branding, and attendee list.

What you get

Each event website includes:

  • Homepage with event details, schedule, and custom content sections
  • RSVP system with attendee types, pricing tiers, custom fields, and dietary collection
  • Payments via Stripe or PayPal with per-attendee pricing and optional add-ons
  • Schedule with multi-day agendas, locations, maps, and access controls
  • Photos — authenticated gallery with upload and moderation
  • Documents — permission-controlled file sharing (itineraries, maps, guides)
  • Polls — single/multiple choice and availability polls
  • Announcements — email blasts and site banners
  • Admin dashboard — full management UI for organizers

After the event ends, the site transitions to a post-event mode where attendees can still access photos, documents, and polls.

How it works

tripplan.ing is a SvelteKit application deployed as a single worker/container. Multiple events share one deployment:

  1. Each event is assigned a subdomain (e.g., reunion.tripplan.ing)
  2. The server resolves the hostname to an event at request time
  3. All data is isolated by event_id in a shared database
  4. Organizers manage events through the admin UI at /admin
  5. Platform operators manage events and users through the platform UI at /platform

The app runs on two runtimes:

  • Cloudflare Workers (production): D1 database, KV sessions, R2 storage
  • Node.js (local dev / Docker): SQLite database, in-memory sessions, filesystem storage

Who this is for

RoleWhat to read
Event organizer — setting up and running an eventOrganizer Guide
Platform operator — deploying and managing the platformDeployment
Developer — contributing code or extending featuresDeveloper Guide
Anyone — getting started quicklyQuickstart

Key design decisions

  • No per-event deploys: Events are created instantly via the platform UI. One worker serves all events.
  • No auth library: Custom email OTP authentication (~130 lines) using Web Crypto APIs for Cloudflare compatibility.
  • No external SDKs: Mailgun emails via raw fetch(), Stripe with fetch-based HTTP client. Everything runs on V8.
  • Database-driven config: Event settings live in the database, not config files. Changes take effect immediately.

Next steps

  • Quickstart — clone, install, and run a dev server in 5 minutes
  • Core Concepts — understand multi-tenancy, lifecycle, and auth before diving deeper

Released under the MIT License.