Bmj Contact Newsletter Session 11
assetactive
Bmj Contact Newsletter Session 11
Source: bmj-contact-newsletter-session-11.md (ingested 2026-03-28)
SESSION 11: CONTACT + NEWSLETTER
/superpowers:writing-plans Build the Contact page and newsletter system for The Black Male Journal.
Session 11. Communication channels — how people reach the Chairman and
join the mailing list.
Build:
1. CONTACT PAGE (src/app/(public)/contact/page.tsx)
- Page title: "CONNECT" in Bebas Neue
- Two-column layout (stacked on mobile):
LEFT: Contact form (name, email, subject dropdown, message textarea)
RIGHT: Direct contact info
- Email: chairman@blackmalejournal.com
- WhatsApp: link to dedicated number (wa.me/[number])
- Social links: IG, YouTube, LinkedIn, X
- Support: Patreon, PayPal, CashApp, Venmo [please don't forget to add this]. Maybe a unified donation page/card (once they click on Donate) with Apple Pay, CashApp, etc.? It should also have an optional note with special emojis (BJM designed) etc.
- Form submits to /api/contact which uses Resend to send email
- Success toast: "Message sent. The Chairman will respond."
- Error handling with user-friendly messages
2. CONTACT API (src/app/api/contact/route.ts)
- Validates input with Zod schema
- Sends email via Resend to chairman@blackmalejournal.com
- Also inserts into contact_submissions table
- Rate limiting: basic check to prevent spam (optional for v1)
3. NEWSLETTER SIGNUP (src/app/api/newsletter/subscribe/route.ts)
- POST handler: takes email, validates, inserts into newsletter_subscribers
- Duplicate email handling (upsert or friendly error)
- Optional: send welcome email via Resend
- Returns success/error JSON
4. NEWSLETTER COMPONENTS:
- Inline signup form (email input + submit button) — used in Footer and CTA sections
- Full signup page at /newsletter (optional) or modal
- Style: --bmj-red submit button, dark input field with cream text/placeholder
5. UPDATE FOOTER: wire the newsletter signup form to the actual API endpoint.
Build and test. Verify emails send via Resend. Run `npm run build`.