Nodemailer rejects self-signed certificates by default, causing
STARTTLS handshake failures with Mailcow Postfix. Added tls option
to both waitlist and application SMTP transports.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The votc-db container doesn't support SSL connections, causing
"The server does not support SSL connections" errors on the
waitlist signup endpoint in production.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>
- Replace BlockSurvey with custom application form (apply.html)
- Add admin dashboard for reviewing applications (admin.html)
- Create PostgreSQL schema for waitlist, applications, email logging
- Implement application API with Resend email confirmations
- Replace Google Sheets waitlist with PostgreSQL backend
- Update docker-compose with PostgreSQL service
- Update server.js with new API routes
- Update index.html to link to internal apply.html
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>