Commit Graph

50 Commits

Author SHA1 Message Date
Jeff Emmett 81ba58ce50 fix: correct booking sheet tab name to 'WorldPlay'
CI/CD / deploy (push) Failing after 1m42s Details
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 15:20:31 -04:00
Jeff Emmett c2b75cc5e9 fix: rewrite booking-sheet parser to match actual sheet structure
CI/CD / deploy (push) Failing after 1m23s Details
Sheet tab is 'WorldPlay' not 'Booking Sheet'. Dates use DD/MM/YYYY
format. Room/bed columns are at indices 2/4 not 0/1. Room numbers
carry down for multi-bed rooms. Added 'Couch' to hh-living bed types.
Changed valueInputOption to RAW to prevent formula injection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 15:18:38 -04:00
Jeff Emmett 6b8bf32c3b fix: quote sheet name in Google Sheets API ranges
CI/CD / deploy (push) Failing after 1m31s Details
Sheet names with spaces need single-quoting in range strings,
otherwise 'Booking Sheet!A:J' fails to parse.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 15:14:54 -04:00
Jeff Emmett e155408d9c feat: add per-day attendance and per-night accommodation pricing
CI/CD / deploy (push) Failing after 1m19s Details
Users can now attend individual days at €10/day instead of full-week
only (€50). Partial-week attendees get Commons Hub accommodation at
per-night rates (€40 shared, €50 double). Villa restricted to
full-week. Booking sheet writes guest names only on selected days.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 15:07:54 -04:00
Jeff Emmett 657d0b50c2 feat: add /pay page for existing registrants to complete payment
CI/CD / deploy (push) Failing after 54s Details
Users who registered but didn't pay can now visit /pay, enter their
email, and go straight to accommodation selection + Mollie checkout
without re-registering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 11:17:05 -04:00
Jeff Emmett 657c934975 fix: remove fake spots counter from registration page
CI/CD / deploy (push) Failing after 51s Details
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 09:38:53 -04:00
Jeff Emmett 1221674fd9 feat: add spots counter, cancellation policy, and update registration perks
CI/CD / deploy (push) Failing after 1m2s Details
- Live spots counter (X of 60 remaining) with progress bar on registration sidebar
- Cancellation policy on step 2: 70% refund >1 month, 30% refund >1 week, none <1 week
- Updated sidebar perks to reflect actual offering (was "priority booking when tickets open")

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 14:56:04 -04:00
Jeff Emmett dc95bf4819 feat: add Mollie payment pipeline with two-step registration flow
CI/CD / deploy (push) Failing after 1m12s Details
Convert single-step registration into a two-step flow:
- Step 1: Registration info → saves to JSON + Google Sheet with awaiting_payment status
- Step 2: Accommodation selection + price summary → creates Mollie checkout → redirects

On payment completion, Mollie webhook updates status, assigns bed on booking sheet,
sends confirmation email, and adds to Listmonk.

New files: api/booking-sheet.js, payment-success.html
New routes: /api/create-checkout-session, /api/mollie/webhook, /api/payment-status

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 14:36:40 -04:00
Jeff Emmett 1b3f7faa62 Merge branch 'main' into dev 2026-04-10 14:20:39 -04:00
Jeff Emmett a722331bd7 Add GameScenes as promotional partner
CI/CD / deploy (push) Successful in 50s Details
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 18:04:16 -04:00
Jeff Emmett cd284a40c2 ci: retrigger pipeline
CI/CD / deploy (push) Successful in 55s Details
2026-04-02 15:12:29 -07:00
Jeff Emmett aadcaa2798 ci: retrigger pipeline
CI/CD / deploy (push) Has been cancelled Details
2026-04-02 15:06:35 -07:00
Jeff Emmett 5c3edc0736 fix(ci): use SSH-based container status check for smoke test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 15:07:10 -07:00
Jeff Emmett 506b7ab6db ci: use internal registry (bypass Cloudflare upload limit)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 10:47:05 -07:00
Jeff Emmett 67fe62eb1b Add CI/CD pipeline (Gitea Actions)
CI/CD / deploy (push) Successful in 53s Details
Build + push to registry + deploy + smoke test with auto-rollback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 01:59:41 -07:00
Jeff Emmett d09b7e7413 Add Regeneration Pollination as promotional partner
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:01:33 -07:00
Jeff Emmett cd26690db6 Remove placeholder (TO BE DEFINED) subtitle from hero section
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:00:08 -07:00
Jeff Emmett 630bd5632e Update About section copy with revised WORLDPLAY description
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 14:22:30 -07:00
Jeff Emmett 749d9cfe6e chore: add backlog-notify onStatusChange hook
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 14:22:30 -07:00
Jeff Emmett c8a9abbb1d Add partner logos and update footer
- Add logos for CCA, Commons Hub, Class Wargames, and INDEP
- Remove hyperlinks from convener names (plain text with affiliations)
- Add "Powered by the Mycostack in the spirit of P4P" footer link
- Update Dockerfile to copy images directory

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 18:15:06 +00:00
Jeff Emmett d1203dfed5 Update website content: hero date/place, footer, organizer info, email domain
- Add date (June 7–13, 2026) and location (Commons Hub, Austria) to hero section
- Remove floating cards from about section, switch to single-column layout
- Update Digital Publishing text to remove TBC partner names
- Update organizer team text with new orgs and CCA/Commons Hub collaboration
- Remove "Reality is a design space" tagline from all footers
- Add conveners, sponsors, and promotional partners sections to footer
- Update accommodation, food, and cost estimate text on financial transparency page
- Fix email domain: hello@worldplay.earthhello@worldplay.art
- Update confirmation email template with revised copy and bullet list
- Remove tagline from confirmation email

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 15:51:16 -08:00
Jeff Emmett bc70718976 fix: switch SMTP from noreply@jeffemmett.com to newsletter@worldplay.art
Update default SMTP_USER and EMAIL_FROM to use the domain-specific
newsletter mailbox instead of the shared noreply@jeffemmett.com address.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:58:45 -08:00
Jeff Emmett a4fadbb1c7 fix: enable Google Sheets with file-based credentials and fix SMTP TLS
Switch from GOOGLE_CREDENTIALS env var (JSON string) to file-based
service account loading via GOOGLE_SERVICE_ACCOUNT_FILE, with fallback
to the env var for backwards compatibility. Mount the service account
JSON as a read-only volume. Add tls.rejectUnauthorized=false for
Mailcow self-signed cert.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:49:00 -08:00
Jeff Emmett a5ff3bed07 Update participation fee from €200 to ~€50 and adjust 7-day estimate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:53:25 -08:00
Jeff Emmett 95759d399e fix: migrate SMTP host from mx.jeffemmett.com to mail.rmail.online
All email sending now uses mail.rmail.online as the SMTP host,
replacing the legacy mx.jeffemmett.com hostname.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:37:54 -08:00
Jeff Emmett 0fccf9d895 Replace RESEND_API_KEY with SMTP env vars in docker-compose
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:13:21 -07:00
Jeff Emmett c3e67b9cae feat: replace Resend SDK with Mailcow SMTP (nodemailer)
Swap email sending from Resend API to self-hosted Mailcow at
mx.jeffemmett.com. Uses SMTP_PASS env var instead of RESEND_API_KEY.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:48:54 -07:00
Jeff Emmett c32070806a Switch Listmonk integration to direct PostgreSQL access
- Replaced HTTP API calls with direct database insertions
- More reliable than API auth which requires session tokens in Listmonk v5+
- Added pg package for PostgreSQL connectivity
- Handles both new subscribers and existing ones (updates attributes)
- Merges WORLDPLAY attributes with any existing subscriber data

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 20:15:07 +00:00
Jeff Emmett f0641cc04a Add Listmonk integration for newsletter subscriber sync
- New registrations with newsletter=yes are automatically added to WORLDPLAY list
- Stores registration metadata (role, interests, location) as subscriber attributes
- Handles existing subscribers by adding them to the list
- Connected to Listmonk via internal Docker network

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 19:15:08 +00:00
Jeff Emmett 61b409dd89 Remove button shine/sweep hover effect
- Remove .btn::before pseudo-element that created moving white box on hover

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:16:46 +00:00
Jeff Emmett a4c304d287 Center last row cards in Community section
- Change community-grid from CSS grid to flexbox
- Add justify-content: center for centering
- Add flex sizing for responsive card layout

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:14:31 +00:00
Jeff Emmett 5cc31bd93d Add Financial Transparency link to footer
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:13:18 +00:00
Jeff Emmett 33baf8d108 Remove glitch effect, fix floating cards overlap
- Remove glitch effect CSS and HTML wrapper entirely
- Adjust floating card positions to prevent overlap:
  - Card 2 (Economic sci-fi): top 20%
  - Card 3 (Games): bottom 5%, left 10%
  - Card 4 (Parallel worlding): top 50%
  - Card 5 (Guerrilla futuring): bottom 5%, right 5%

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:12:26 +00:00
Jeff Emmett 2c0b2e9169 Add backlog with Round 3 update tasks
Initialize backlog for WORLDPLAY Website with 18 completed tasks:
- Content updates (floating concepts, URLs, descriptions)
- Form improvements (multi-select contribute field)
- New pages (financial transparency)
- Bug fixes (header links, floating cards, gradients)
- Infrastructure (auto-deploy, Dockerfile, favicon)

All tasks marked as Done.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:10:17 +00:00
Jeff Emmett 3636bdc3b4 Add world emoji favicon 🌍
- Add SVG favicon with world emoji to both pages
- Uses inline data URI for simplicity

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:06:11 +00:00
Jeff Emmett b642cc0dd7 Fix header links and glitch effect click blocking
- Add pointer-events: none to glitch pseudo-elements
- Add z-index and position to nav-links for reliable clicking
- Add cursor: pointer to nav links

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:03:45 +00:00
Jeff Emmett 89ac4ec3da Fix Dockerfile to copy all HTML files
- Change COPY index.html to COPY *.html
- Ensures financial-transparency.html is included in container

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:01:49 +00:00
Jeff Emmett bd90f0c647 Add financial transparency page, fix gradient highlights
- Create dedicated financial-transparency.html page in worldplay theme
- Add route for /financial-transparency in server.js
- Fix gradient text highlight CSS (add color:transparent, display:inline)
- Add .highlight-text utility class for CTA section
- Update link to use local page instead of CCG25 external link

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:51:58 +00:00
Jeff Emmett 3457dc65eb Fix floating cards positioning, remove website credit
- Add proper CSS rules for 4th and 5th floating cards
- Position Parallel worlding and Guerrilla futuring to not overlap
- Remove inline styles from new floating cards
- Remove website design credit from footer

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:48:38 +00:00
Jeff Emmett b3dbc60324 Website updates round 3
- Add floating concepts: Parallel worlding, Guerrilla futuring
- Replace Speculative fiction with Economic sci-fi
- Fix all example URLs with correct links
- Update Digital Publishing description
- Convert Playing with Reality to bullet points
- Update Who should attend with comprehensive list
- Change contribution field to multi-select checkboxes
- Update Ready to Play? to Ready to Hijack Reality?
- Fix Location footer link
- Add organizing team info (Rok, Pekko, Carolina)
- Add website credit
- Add Maker Spaces & Equipment section
- Add Financial Transparency section with CCG25 link
- Update server.js for multi-select contribute handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:37:14 +00:00
Jeff Emmett 705497ef34 Website updates round 3
- Fix "sustaining...sustaining" → "to support the network"
- Shorten "Everything for Everyone" title
- Change "7 days of worldbuilding" → "7 days of peerticipatory worldplay"
- Remove location badge overlay from Commons Hub image
- Fix venue image z-index to display properly
- Add "Guerrilla Futuring" to form thread options
- Change "co-labs" → "mycollabs" in registration perks
- Add hyperlinks to examples (Yes Men, Ministry for the Future,
  Half-Earth Socialism, Nordic Larp Wiki, etc.)
- Style linked examples with cyan hover effect

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:41:35 +01:00
Jeff Emmett 148a0ecadd Fix Commons Hub image URL (old WordPress URL was 403)
Updated to new Supabase-hosted image from commons-hub.at

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:44:42 +01:00
Jeff Emmett ca3494a74b Website updates based on round 2 feedback
- Subtitle: removed colon, uppercase "(TO BE DEFINED)", larger font
- Floating concepts: Reality-bending, Speculative fiction, Games as organisations
- Shape the Programme: co-labs → "mycollabs"
- Game Prototyping: "Any collectively prototyped games..."
- Sustainable Models: shortened text, "Exploring...for sustaining the network"
- Eutopia track: added "Utopia on the Tabletop", removed "The Transition Year"
- When/Where: removed redundant "in the Austrian Alps", added Commons Hub photo
- Register interest: full sentence about 60 participant limit
- Form: "Other" role shows text input, updated thread names to match programme
- Added newsletter subscription checkbox
- Fixed Commons Hub link, removed duplicate Newsletter button
- Backend: captures otherRole and newsletter fields

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:31:58 +01:00
Jeff Emmett 196ca4589d Add Google Sheets and Resend email integration
- Registration data sent to Google Sheet (all fields)
- Confirmation email sent via Resend
- Beautiful HTML email template matching site design
- Both integrations are optional (gracefully disabled if not configured)

Environment variables needed:
- RESEND_API_KEY: Resend API key for emails
- GOOGLE_SHEET_ID: Google Sheet ID for registrations
- GOOGLE_CREDENTIALS: Service account JSON credentials

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 14:35:15 +01:00
Jeff Emmett 5a9fb1786a Remove worldplay.jeffemmett.com, use worldplay.art only
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 12:53:22 +01:00
Jeff Emmett 9cb5faa44f Fix health check to use IPv4
Health check was using localhost which resolved to IPv6 [::1],
but the server binds to 0.0.0.0. Changed to 127.0.0.1.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 12:51:09 +01:00
Jeff Emmett 275a4faf9a Add worldplay.art domain support
- Added worldplay.art and www.worldplay.art to Traefik router
- Updated www redirect to point to worldplay.art

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 12:30:46 +01:00
Jeff Emmett 6c801fa8f4 Change About headline to neutral title
Removed "Avant-garde revolutionaries LARPing as commons economists"
as a bold headline - phrase now only appears naturally in body text.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 12:28:57 +01:00
Jeff Emmett 5e995e6820 Restore full original copy content
- About section: Full 3 paragraphs with complete descriptions
- Community section: Full bullet point descriptions
- Programme section: Complete track titles, full descriptions,
  and all examples from original copy
- Location section: Full Commons Hub description

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 11:55:36 +01:00
Jeff Emmett 52000c0f5a Initial commit: WORLDPLAY event website
- Express server with health check
- Single-page HTML site
- Docker + docker-compose setup
- Traefik integration for worldplay.jeffemmett.com

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 11:50:14 +01:00