From 8b1d45485c5a450531e3d5d011adb305e363c988 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Mon, 23 Feb 2026 20:43:28 -0800 Subject: [PATCH] feat: switch domain from votc.jeffemmett.com to valleyofthecommons.com Co-Authored-By: Claude Opus 4.6 --- .env.example | 2 +- api/application.js | 4 ++-- api/mollie.js | 2 +- api/waitlist-db.js | 10 +++++++--- docker-compose.yml | 4 ++-- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.env.example b/.env.example index 95d9b59..4962d3b 100644 --- a/.env.example +++ b/.env.example @@ -49,7 +49,7 @@ GOOGLE_SHEET_NAME=Waitlist MOLLIE_API_KEY=test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Public base URL for redirects and webhooks -BASE_URL=https://votc.jeffemmett.com +BASE_URL=https://valleyofthecommons.com # ============================================ # AI Gateway Configuration for Game Chat diff --git a/api/application.js b/api/application.js index 449c492..bd30d50 100644 --- a/api/application.js +++ b/api/application.js @@ -47,7 +47,7 @@ const confirmationEmail = (application) => ({

In the meantime, feel free to explore more about the Commons Hub and our community:

If you have any questions, reply to this email and we'll get back to you.

@@ -101,7 +101,7 @@ const adminNotificationEmail = (application) => ({

- + Review Application

diff --git a/api/mollie.js b/api/mollie.js index 9ed4730..532a59b 100644 --- a/api/mollie.js +++ b/api/mollie.js @@ -68,7 +68,7 @@ async function createPayment(applicationId, ticketType, weeksCount, email, first throw new Error(`Invalid ticket type: ${ticketType}`); } - const baseUrl = process.env.BASE_URL || 'https://votc.jeffemmett.com'; + const baseUrl = process.env.BASE_URL || 'https://valleyofthecommons.com'; const description = `Valley of the Commons - ${TICKET_LABELS[ticketType] || ticketType}`; const payment = await mollieClient.payments.create({ diff --git a/api/waitlist-db.js b/api/waitlist-db.js index 953cafd..c13b087 100644 --- a/api/waitlist-db.js +++ b/api/waitlist-db.js @@ -3,6 +3,7 @@ const { Pool } = require('pg'); const nodemailer = require('nodemailer'); +const { syncWaitlistSignup } = require('./google-sheets'); // Initialize PostgreSQL connection pool const pool = new Pool({ @@ -47,7 +48,7 @@ const welcomeEmail = (signup) => ({ ` : ''}

- + Apply Now

@@ -59,8 +60,8 @@ const welcomeEmail = (signup) => ({

- You received this email because you signed up at votc.jeffemmett.com.
- Unsubscribe + You received this email because you signed up at valleyofthecommons.com.
+ Unsubscribe

` @@ -145,6 +146,9 @@ module.exports = async function handler(req, res) { involvement: involvementTrimmed }; + // Sync to Google Sheets (fire-and-forget backup) + syncWaitlistSignup(signup); + // Send welcome email if (process.env.SMTP_PASS) { try { diff --git a/docker-compose.yml b/docker-compose.yml index 4534e4b..0e6e378 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,7 +16,7 @@ services: - GOOGLE_SHEET_ID=1uZy21IjIwAES92ki6K33CtiTfEzGoUlxQ8jk3IzA0qI - GOOGLE_SERVICE_ACCOUNT_FILE=/run/secrets/google-service-account.json - MOLLIE_API_KEY=${MOLLIE_API_KEY} - - BASE_URL=https://votc.jeffemmett.com + - BASE_URL=https://valleyofthecommons.com volumes: - ./google-service-account.json:/run/secrets/google-service-account.json:ro depends_on: @@ -24,7 +24,7 @@ services: condition: service_healthy labels: - "traefik.enable=true" - - "traefik.http.routers.votc.rule=Host(`votc.jeffemmett.com`)" + - "traefik.http.routers.votc.rule=Host(`valleyofthecommons.com`) || Host(`www.valleyofthecommons.com`) || Host(`votc.jeffemmett.com`)" - "traefik.http.services.votc.loadbalancer.server.port=3000" networks: - traefik-public