Marketing sites
Marketing sites and landing pages
We build marketing sites and landing pages in Next.js. Indexed properly by Google, green on Core Web Vitals, and edited by a human — not a developer.

Why it matters
What a good marketing site delivers
- Core Web Vitals — measured in CI on every deploy
- Green
- Structured data and hreflang from the start
- JSON-LD
- Editor for marketing — no code required
- Block-based
- Static + ISR rendering on Vercel or Cloudflare
- Edge
How we build marketing sites
A site has one job: convert.
A marketing site has one job: get the right visitor to take the right next step — book a meeting, download a whitepaper, start a trial. Everything else is scaffolding around that job. We build sites that are fast enough that people actually wait for them, structured correctly for search engines, and editable by the marketing team without having to commit to Git.
We build on Next.js (App Router) with static generation where it makes sense and server-rendering where it gives an SEO advantage. Content lives in a headless CMS (Sanity, Payload or Contentful) so marketing can publish without waiting on a developer. Performance is measured and held — Core Web Vitals in the green isn't a nice-to-have, it's a ranking signal.
We also handle the boring stuff: properly structured data (JSON-LD), correct canonical URLs, sitemap and robots.txt that cover all language variants, OG images per page, and an analytics setup that doesn't punish the user experience. This isn't extra — it's what makes the site actually perform in indexing and social sharing.
What we deliver
What we build in from day one.
Fast, search-friendly, editable for marketing — without platform overhead.
Static + edge rendering
Statically generated where possible, server-rendered where search engines need fresh content. Hosted on Vercel or Cloudflare Pages with global edge cache.
Headless CMS for marketing
Sanity, Payload, Contentful or Storyblok set up with schemas that fit your content workflow. Live preview, draft mode, and roles for editors and reviewers.
SEO baseline from day one
Per-page meta, canonical URLs, JSON-LD structured data, sitemap and hreflang for multilingual sites. OG images generated per page from your brand template.
Design system and component library
A small, durable component library in Tailwind. Marketing can build new pages with blocks instead of waiting on a developer every time a new landing page goes live.
Performance and Core Web Vitals
Image optimisation, font strategy, code-splitting, and tight bundles. We measure INP, LCP and CLS in CI and alert when a deploy regresses.
Analytics, A/B tests and forms
Lightweight analytics (Plausible, Fathom or Vercel Analytics), A/B-test tooling as needed, and form handling that doesn't require a heavy form-as-a-service.
Before we start
What you should consider first.
CMS choice is a long-term decision
Switching CMS later is painful. We choose CMS based on how big your content team is, how advanced schemas need to be, and where you're going in two years — not on what's trendy. Sanity and Payload are our defaults; Contentful and Storyblok are good in specific contexts.
Performance is a design discipline
Most slow sites aren't slow because of code — they're slow because of too many heavy images, third-party scripts and unoptimised fonts. We design within the performance budget rather than hoping it can be squeezed in later.
Hreflang and multiple languages
An international site has sharp edges: correct hreflang, localised structured data, choosing between subdomains and sub-paths, and an editor experience that doesn't melt down for marketing. We design it from the start, not as an afterthought once the Danish site is live.
Operations after launch
A marketing site isn't done at launch — there are new campaigns, new languages, new sections. We offer a monthly maintenance agreement or do a clean handover where your team takes over. Both are fine — we design for both.
FAQ
What people usually ask.
Can we use our own CMS?
Yes, if it's headless or has a usable API. We've integrated with Sanity, Contentful, Payload, Storyblok, Strapi and several custom systems. If you use WordPress, we can use it headless via REST or GraphQL — or recommend a migration if the editor experience is painful.
How fast can a marketing site go live?
A focused marketing site with ~10 pages, design, CMS setup and SEO baseline typically takes 6–10 weeks from first call to go-live. A larger site with multiple languages, a bigger content library and a more complex editor experience takes 10–16 weeks. We always go live incrementally — Danish first, then English, then the next languages.
Can we A/B-test the home page and landing pages?
Yes. We typically set up Vercel Edge Config or LaunchDarkly for feature flags and lightweight A/B tests. For more advanced experiments we can integrate Statsig, Optimizely or PostHog. Components are designed so variants can be built as real content — not as a CSS hack that flickers.
How do we measure if the site performs?
We set up analytics (Plausible, Fathom or GA4 by preference), Core Web Vitals monitoring (Vercel Analytics or Sentry Performance), and report on the conversions you've defined as important — book-a-meeting, signup, download. If the numbers flatline or drop, we help find out why.
Can we add new landing pages ourselves after launch?
Yes — that's one of the most important design requirements we go after. We build a block-based editor in the CMS where marketing can combine hero sections, feature grids, quotes, FAQ sections and CTAs without touching code. For campaigns with special design we can build a new component in days, not weeks.
Related services
- Customer portalsGated portals where customers can see orders, invoices, cases and documents — connected securely to your systems.
- E-commerceCustom storefronts and headless commerce built on top of Shopify, Stripe or your own commerce API.
- Headless CMSSanity, Contentful or Payload — set up so content folks can work without waiting on a developer.
Ready to get started?
Let's have a no-pressure conversation.
We'll get back within one business day with concrete input — not a stock proposal.