feat(website): gated coming-soon holding page with email signup

Add a standalone bilingual /coming-soon page (branded, dark, email signup
via mailto:info@dezky.eu, fires a waitlist-signup Umami event, noindex) plus
a global middleware that redirects every route to the locale-correct holding
page while NUXT_PUBLIC_COMING_SOON=true.

- Env-gated (default off, so dev and the live site are unaffected); flip the
  env in Coolify to show/hide the holding page with no code change.
- Preview the real site behind the gate via ?preview=<previewToken>
  (NUXT_PUBLIC_PREVIEW_TOKEN), which sets a 7-day cookie.
- Locale-preserving redirects (/da/* -> /da/coming-soon), no loops.
This commit is contained in:
Ronni Baslund
2026-06-06 21:51:26 +02:00
parent c9e22ec117
commit 04191193c2
4 changed files with 126 additions and 0 deletions
+16
View File
@@ -6,6 +6,14 @@ export type HeadlinePart = string | { hl: string }
export const COPY = {
da: {
waitlist: {
eyebrow: 'snart klar',
heading: 'Vi er der næsten.',
body: 'dezky lægger sidste hånd på den suveræne arbejdsplads — mail, filer, video, chat og login, hostet i EU. Skriv dig op, så siger vi til, så snart vi går live.',
emailPh: 'din@e-mail.dk',
submit: 'Hold mig opdateret',
note: 'Ingen spam — kun én mail, når vi lancerer.',
},
nav: { product: 'produkt', security: 'sikkerhed', whitelabel: 'whitelabel', pricing: 'priser', docs: 'docs', login: 'log ind', cta: 'book en demo' },
hero: {
eyebrow: '// suveræn produktivitet · v1.0',
@@ -508,6 +516,14 @@ export const COPY = {
},
},
en: {
waitlist: {
eyebrow: 'coming soon',
heading: 'We\'re almost there.',
body: 'dezky is putting the finishing touches on its sovereign workplace — mail, files, video, chat and sign-in, hosted in the EU. Leave your email and we\'ll let you know the moment we go live.',
emailPh: 'you@company.com',
submit: 'Notify me',
note: 'No spam — just one email when we launch.',
},
nav: { product: 'product', security: 'security', whitelabel: 'whitelabel', pricing: 'pricing', docs: 'docs', login: 'log in', cta: 'book a demo' },
hero: {
eyebrow: '// sovereign productivity · v1.0',