Commit Graph

20 Commits

Author SHA1 Message Date
Jeff Emmett a6c8f0a477 feat: add dynamic pricing tiers to CCG registration
Replace hardcoded €80 ticket price with date-based tiers:
- Early bird €80 (until Mar 31)
- Regular €120 (Apr 1 – Jun 30)
- Late €150 (Jul 1+)

Both the register page and checkout API now compute the current
tier at request time, so prices update automatically on cutoff dates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 12:45:39 -07:00
Jeff Emmett cdaf09e14d fix: correct Telegram group links across registration and homepage
- Fix success page and register page Telegram links to use CCG26 group
- Fix CCA Telegram link typo on homepage (extra 'N' in invite code)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 13:47:11 -07:00
Jeff Emmett b8567b0f54 feat: add food interest tracking to registration flow
Add "I would like to include food for the week" checkbox to the payment
step with co-producing meals messaging. Track food interest in Google
Sheets as column Q ("Want Food").

- Add wantFood field to RegistrationData interface
- Add interactive food checkbox replacing static note in payment step
- Pass wantFood through register API to Google Sheets
- Expand sheet ranges from A:P to A:Q, add "Want Food" header
- Preserve food column on payment status updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:42:23 -07:00
Jeff Emmett ef72526e1d feat: add 2% Mollie processing fee surcharge on top of payments
Adds a visible processing fee line item so customers cover payment
processing costs instead of having them deducted from the received amount.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 10:30:38 -07:00
Jeff Emmett eaf2c0ac31 fix: require email on registration, BCC contact@ on confirmations, update OG image
- Add required email field to registration form (was missing entirely,
  causing "N/A" emails in booking notifications)
- Pass email through full chain: form → API → Google Sheet → Mollie
  metadata → webhook (with Mollie billingAddress as fallback)
- BCC contact@cryptocommonsgather.ing on all payment confirmation
  emails so team is notified of every successful registration
- Replace OG image with alpine mountain card including event name,
  dates, and URL for better Twitter/social sharing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:58:46 -07:00
Jeff Emmett 4b78d357c0 update: accommodation pricing and confirmation email
- Commons Hub nightly rates: shared €39.20→€39.90, double €50.20→€50.90
- Herrnhof prices now stored as 7-night totals (×7) for correct checkout
- Confirmation email: food text updated, Herrnhof link removed, added office@commons-hub.at for accommodation questions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:41:14 -07:00
Jeff Emmett ddbdd95191 update: reorder accommodation/food notices, remove referral reward text
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:24:07 -08:00
Jeff Emmett 9ae7909275 update: revise Herrnhof Villa room option wording
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:13:23 -08:00
Jeff Emmett b209f2f14b update: registration - remove food payment, add Herrnhof Villa, extend to 7 nights
- Remove food as a payment option; add note about follow-up email for food
- Restructure accommodation into two venues: Commons Hub and Herrnhof Villa
- Herrnhof Villa options: single, double (3 configs), and triple rooms
- Update event dates from Aug 16-22 to Aug 16-23 (7 nights) across all pages
- Update pricing: Commons Hub €274.40/€351.40, Herrnhof €40-€95 per person
- Update transparency page with new accommodation breakdown and food TBA
- Update API route and confirmation email to match

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:37:43 -08:00
Jeff Emmett 8f59233918 feat: swap Stripe for Mollie payment integration
Replace Stripe checkout with Mollie payments API. Mollie handles
payment method selection on their hosted checkout (card, SEPA, iDEAL,
PayPal, etc). Simpler auth model — single API key, no webhook secrets.

- Rewrite /api/create-checkout-session for Mollie payment creation
- Rewrite /api/webhook for Mollie status verification flow
- Update google-sheets.ts: stripeSessionId → paymentSessionId
- Remove payment method radio buttons (Mollie shows all methods)
- Update docker-compose env vars
- Swap stripe npm package for @mollie/api-client

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:30:55 -08:00
Jeff Emmett 13719826ba feat: add "Register to Attend" link to footer across all pages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 12:02:39 -08:00
Jeff Emmett b8ad5dc8f5 fix: change early bird deadline from April 30 to March 31
Updated all references to early bird registration closing date
across registration page, transparency page, twitter thread,
sponsorship package docs, and sponsor doc generator.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:42:34 -08:00
Jeff Emmett 80ab20001b feat: add sponsorships page, sponsorship deck, and registration add-ons
- Add /sponsorships page with tier overview, embedded flipbook deck, and contact CTA
- Create HTML sponsorship slide deck (12 slides) and print-optimized version for PDF/flipbook
- Create sponsor outreach email template
- Update existing outreach templates to reflect new €1k-€5k tier range
- Add opt-in checkboxes for accommodation (dorm/double) and food package on registration payment step
- Pass accommodation and food selections as separate Stripe line items for single checkout
- Store add-on selections in Stripe session metadata

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 17:37:58 -08:00
Jeff Emmett 3091c01819 feat: add Google Sheets registration pipeline
- Add googleapis for Google Sheets integration
- Create /api/register endpoint to record registrations with "Pending" status
- Update webhook to mark registrations as "Paid" when payment completes
- Add lib/google-sheets.ts with addRegistration and updatePaymentStatus functions
- Update docker-compose.yml with Google Sheets env vars
- Add .env.example documenting required environment variables

Flow: Form submit → Sheet (Pending) → Payment → Webhook → Sheet (Paid)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 09:43:18 +01:00
Jeff Emmett cbbb6fee1d feat: simplify registration to event ticket only
Remove food and accommodation packages from payment page, keeping only
early bird ticket pricing (€80/€120/€150 tiers).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:12:16 -05:00
Jeff Emmett f8bb379a0f feat: add CCG26 Telegram link across all pages
Updated all "Coming Soon" placeholders with the actual CCG26 Telegram
group link (https://t.me/+n5V_wDVKWrk1ZTBh) on:
- /directions (button and footer)
- /success (footer)
- /register (two footers)
- /about (footer)
- /gallery (footer)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 22:38:56 -05:00
v0 0a07ece5ff feat: update community photo with new discussion circle image
Improve visual appeal for homepage with new group photo.

#VERCEL_SKIP

Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
2025-12-10 22:20:30 +00:00
v0 a1e4cf1098 feat: update footer text to reflect Creative Commons license
Align footer with commons-oriented ethos and clarify licensing.

#VERCEL_SKIP

Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
2025-12-10 18:39:44 +00:00
v0 c17694b9b0 feat: add optional packages to registration flow
Update registration to include dynamic package selection and total.

#VERCEL_SKIP

Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
2025-12-07 20:47:36 +00:00
v0 a3cf6995b2 feat: update color scheme to crypto-themed palette
Switch to white, red, and neutral gray for consistent contrast.

#VERCEL_SKIP

Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
2025-12-06 14:22:52 +00:00