Vellum

Event photo collection for a wedding day — and for any gathering that needs the same guest-upload, host-moderate, public-gallery loop.

Guests open a shareable event link, optionally add a name, email, and note, and upload photos. Event people approve what appears in the gallery. Originals stay full quality in S3-compatible object storage.

Repository

apps/
  web/       Public site, guest pages, dashboard, platform admin
  worker/    image variants, EXIF/GPS strip, HEIC conversion
packages/
  contracts/ shared Zod payloads
  database/  Drizzle schema, migrations, seed
  storage/  S3/Garage client, object keys, presign
  email/     Mailpit (dev) / Resend (prod) for auth and guest mail

Quick start

Requirements: Bun 1.3+ and Docker.

cp .env.example .env
bun install
bun run docker:up
bun run db:migrate
bun run auth:seed
bun run db:seed
bun run dev

The app runs at http://localhost:3000. Garage S3 is at http://localhost:3900. Mailpit is at http://localhost:8027.

  • Public: / (listed events) and /e/demo
  • Dashboard: /dashboard
  • Platform: /admin

Example accounts (password host, admin password admin):

  • admin@example.com — platform super-admin
  • host@example.com / partner@example.com — event owners
  • manager@example.com — event manager
S
Description
Shared event albums for guest uploads, host moderation, and original-quality galleries.
Readme
5.1 MiB
Languages
TypeScript 98.5%
CSS 1.2%
Dockerfile 0.3%