Commit Graph

9 Commits

Author SHA1 Message Date
Ronni Baslund 3347fa9265 feat(website): expand about page (problem + founders)
Extend /about with the "why": a "the problem" section (jurisdiction vs
geography, creeping prices, lock-in, vendor sprawl) as a 2x2 pain grid, and
a "we're founders ourselves" section. Both bilingual and responsive.

Also point the footer partner link to /partners (was the homepage
#whitelabel section).
2026-06-06 16:47:47 +02:00
Ronni Baslund 97728cb09e feat(website): SLA & cookie policy pages
Replace the /sla and /cookies stubs with real pages (da + en), matching
the DPA/terms/privacy layout. Drop both from the [slug].vue stub map.

- SLA: 99% uptime target framed as a transparency-backed commitment (no
  public service credits); contractual credits offered only via Enterprise
  agreements. Support first-response targets table; status-page reference.
- Cookie policy: strictly-necessary + language preference only, cookie-free
  analytics (Umami), no third-party tracking, "no banner needed"; cookie
  table; final (v1.0), no draft banner.
2026-06-06 16:47:47 +02:00
Ronni Baslund 3123d8a5a1 feat(website): terms of service page
Replace the /terms stub with a real Servicevilkår page (da + en),
mirroring the DPA/privacy layout and draft / legal-review banner.

- 12 clauses tailored to the system: the service, per-user accounts,
  acceptable use, customer data (EU-hosted, DPA ref, export/no lock-in),
  pricing & payment (49 kr/user/mo excl. VAT), term/renewal/cancellation,
  uptime & SLA ref, IP, liability cap (last 12 months' fees), changes,
  Danish law / venue Esbjerg
- Drop 'terms' from the [slug].vue stub map so the real page wins
- Contact: legal@dezky.eu

Still a 0.1 draft pending legal review (flagged on the page).
2026-06-06 16:04:29 +02:00
Ronni Baslund d668b1b6a6 feat(website): responsive / mobile layouts
Make the marketing site mobile-friendly across every page and section.
Desktop appearance is unchanged; all breakpoint logic targets <=768px.

- Fluid section padding via clamp(); equal grids use auto-fit/minmax,
  asymmetric grids stack to one column via scoped-CSS media queries
- Nav: real hamburger menu on mobile (links, lang toggle, login, CTA)
- ProductMockup: scales the whole dashboard to fit (zoom) instead of
  reflowing its internals into a tall stack
- Lower oversized heading clamp() minimums so titles no longer overflow
  at ~390px (hero, page headers, final CTA, brand cover/chapter)
- HowItWorks: row-gap when steps stack so node markers clear the text
- Compare + partners tables: stacked rows now label each value with its
  column (Dezky vs hyperscaler / CSP) instead of an ambiguous header
- Footer columns, tiers, calculator and tables stack cleanly on mobile
2026-06-06 15:55:35 +02:00
Ronni Baslund bc0697c3e8 feat(website): real DPA + privacy policy pages
Replace the /dpa and /privacy placeholder stubs with full pages (da + en):
- /dpa — GDPR Art. 28 data processing agreement: roles, subject matter, data
  categories, processor obligations, sub-processors (Hetzner, Stripe — EU),
  no third-country transfer, 72h breach notice, audits, deletion, Danish law.
- /privacy — controller privacy notice: data collected, legal basis, cookieless
  Umami analytics, retention, recipients, data-subject rights + Datatilsynet.
Both carry a "draft — pending legal review" banner. Removes their stub entries.
2026-06-05 22:10:11 +02:00
Ronni Baslund f447b13c83 feat(website): brand guide page + NodeMark/NodeLockup variants
Replace the /brand stub with the full Brand Guide from the Claude Design
handoff (cover, logo, color, typography, voice, applications), rendered inside
the site layout, English-only, with illustrative copy adapted to Dezky's real
EU-sovereign voice. Extend NodeMark with a `variant` (donut/solid/outline) and
NodeLockup with a separate `wordmark` colour so the mark reads correctly on
dark surfaces. Drops the old brand stub copy.
2026-06-05 22:09:36 +02:00
Ronni Baslund 2e400d86c5 feat(website): partner program page + reseller conversion sections
Add the /partners page rendering the partner pitch: benefits, an interactive
margin calculator (seats × margin → monthly/annual, off the 49 kr list price),
a reseller-facing "CSP vs Dezky" comparison, partner tiers, a 3-step "get
started", and a partner FAQ. Wire the section-06 "see the partner program"
button to it, and align the whitelabel margin bullet to 15–40%.
2026-06-05 14:46:22 +02:00
Ronni Baslund 0a35d9deb6 feat(website): footer sub-pages + shared page layout
Wire every footer link to a real route. Adds a shared `page` layout (Nav +
content + Footer), reusable PageHeader/ComingSoon components, six content pages
(about, contact, brand, roadmap, changelog, migration), and a dynamic [slug]
catch-all for the not-yet-built pages — unknown slugs 404, legal slugs get a
distinct "contact us" body.

Footer links repointed from dead "#" to real paths; section anchors ("/#suite")
smooth-scroll on the homepage and route home + scroll from a sub-page; logo
links home. Page copy (da + en) added under COPY.pages.
2026-06-05 14:40:36 +02:00
Ronni Baslund c9911cc262 feat(website): add Nuxt 4 marketing landing page
New standalone apps/website (Nuxt 4) serving the public marketing site at
dezky.local / www.dezky.local. The customer portal moves off the root domain
to app.dezky.local only.

Landing page ported from the Dezky design handoff: light theme, Danish
default, hero variant A, with a working da/en toggle. Self-contained colour
system threaded through components (utils/landingTokens.ts), full bilingual
copy (utils/landingCopy.ts), and shared state (composables/useLanding.ts).
Sections live under components/landing/* with the Node logo under
components/brand/*.

Wired into docker-compose (website service, volume, Traefik labels, network
aliases) and bootstrap.sh (hosts list + service URLs).
2026-06-05 10:58:25 +02:00