Replace external iframe with react-pageflip flipbook component using
pre-rendered slide images (1.3MB total vs 17MB PDF). Add 3-photo strip
between stats and tiers sections. Swap CTA background image. Update
generate_sponsor_docs.py to export slide JPGs and copy PDF to public/.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Changed 100+ participants to 60+, 25+ countries to 15+ throughout both decks
- Removed "44,850 Friendships Made" and "2 Movements Spawned" stat cards
- Restructured impact slide to 2-column layout with movements text
- Added Valley of the Commons bonus callout to CTA slide
- Added "Sponsor the continuation of a legacy" heading on sponsorships page
- Updated sponsorships page countries to 15+
- Fixed duplicate cover page (stale page-000 removed from flipbook)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>
- Move community group photo to hero banner, Commons Hub house to CTA
- Remove "44,850 Friendships Made" stat
- Make infinity symbol much larger (text-7xl/8xl)
- Put Commons Stack and BlockScience first in team lists
- Cache-bust embedded flipbook iframe
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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>
- Add nodemailer SMTP integration for payment confirmation emails
via newsletter@cryptocommonsgather.ing
- Add Listmonk PostgreSQL integration for newsletter subscriber sync
- Update webhook to send confirmation email after Stripe payment
- Add SMTP and Listmonk env vars to docker-compose
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Ghost blog newsletter subscribe form (blog.crypto-commons.org) in hero and bottom CTA sections
- Update register buttons to "Register Now to Save Your Seat!"
- Add Valley of the Commons section with weekly themes and overlap info
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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>
- Make date badge larger and more prominent
- Increase description text size and contrast
- Fix "post-capitalistist" typo
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add og-image.jpg (1200x630) for link previews
- Add metadataBase, openGraph, and twitter metadata to layout.tsx
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>
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>
- Add clickable links for Regenerative & Collaborative Finance section
(ReFi DAO, EthicHub, CoFi Gathering, Regen Network, Circles UBI)
- Add MycoFi link in Myco-Economics section
- Add links for Governance & Mutualism section
(Economic Space Agency, Bread Coop, Holochain)
- Add links for Solarpunk & Radical Games section
(pocas, Solar Punk WOW, Futurescraft)
- Add CCG26 Telegram group link and remove "Coming Soon"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Required for Next.js standalone build in Docker container.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0 bot regenerates the entire project without deployment files.
These are required for self-hosted deployment on Netcup.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Align footer with commons-oriented ethos and clarify licensing.
#VERCEL_SKIP
Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
Prevents build-time errors when STRIPE_SECRET_KEY isn't available.
The client is now initialized on first use instead of module load.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Project uses pnpm-lock.yaml, updated Dockerfile to use pnpm with corepack.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Restore Dockerfile for standalone Next.js deployment
- Restore docker-compose.yml with Traefik labels
- Add output: 'standalone' to next.config.mjs (required for Docker)
The v0 bot commit 747204b deleted these files when regenerating the codebase.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update registration to include dynamic package selection and total.
#VERCEL_SKIP
Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
Switch to white and red theme with proper contrast for both modes.
#VERCEL_SKIP
Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
Track remaining work to enable registration payments:
- Get Stripe credentials from CCG organizers
- Configure environment variables
- Set up webhook endpoint
- Test payment flow
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
pnpm-lock.yaml was out of date after Next.js upgrade, switched to npm ci
for more reliable builds.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Dockerfile for standalone Next.js deployment
- Add docker-compose.yml with Traefik labels for cryptocommonsgather.ing
- Fix Stripe initialization to happen at runtime (not build time)
- Update Next.js to 16.0.7 (security fix)
- Add output: 'standalone' to next.config.mjs
- Add .gitignore and .dockerignore
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Switch to white, red, and neutral gray for consistent contrast.
#VERCEL_SKIP
Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
Create website with Alpine-inspired design and fix globals.css for sidebar styling
#VERCEL_SKIP
Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>