Commit graph

2 commits

Author SHA1 Message Date
oskar aedc0dd2b7 fix(i18n): dopisek roboczy na /platforma EN + known issues w README
workingName: "before launch" -> "before publication", zgodnie z ustaleniem.

README dostaje sekcję Known issues z odłożoną świadomie sprawą: og:* w
surowym HTML zostaje po polsku na trasach /en, bo index.html jest jednym
statycznym dokumentem dla każdej ścieżki. Scrapery Open Graph nie wykonują
JS, więc runtime'owa podmiana title/description ich nie dotyczy. Ten sam
rdzeń problemu dotyczy hreflang, który jest identyczny na każdej podstronie.
Fix dla obu to prerendering index.html per język.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 17:01:30 +02:00
oskar 39d0662197 Add contact form mailer microservice and i18n support
- mailer/: standalone Express+nodemailer service on port 3000 with
  validation, honeypot (company field), per-IP rate limiting (5/min),
  Fastmail SMTP. Returns 400 on bad input, 429 on rate limit, 502 on
  SMTP failure, 200 {ok:true} on success or honeypot hit.
- Dockerfile: multi-stage nginx build for humanai-landing container.
- mailer/Dockerfile: node:22-alpine, no exposed host ports.
- deploy.sh: idempotent deploy of both containers to piha.local via
  Docker context 'piha', with smoke tests (400 on empty body, 200 on
  honeypot fill).
- src/i18n/: minimal pl/en translation files; useT() hook picks
  language from navigator.language.
- CTASection: replaced dead onSubmit with fetch POST /api/contact,
  added hidden honeypot field, success/error states using i18n strings.
- README: Mailer section with two manual steps (credentials + NPM proxy).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 15:12:05 +02:00