MacNorris is a small team from Hamburg that solves business problems with tech, automation and AI for mid-sized companies. "We don't consult, we solve." The website had to work the same way: fast, easy to maintain, and built to grow without a rebuild.
Stack
- Next.js 16 (App Router) on Vercel, Sanity Studio v4, Turborepo monorepo
- Every page is bilingual (German and English) with field-level localisation, so both languages live in one document and stay in sync
Content model
- A page builder with more than 25 blocks: hero, timelines, comparison tables, signal checks ("how do you know if..."), KPI rows, source cards, a glossary with DefinedTermSet schema, an interactive fit check, a lead magnet form and more
- Editors combine blocks per page, so service pages, challenge pages, tool pages and blog posts don't all look the same
- FAQs live in a shared pool and are reused across pages, blog posts can carry their own inline FAQs
SEO and GEO built from content
- JSON-LD (Organization, Person, Service, Article, FAQPage, BreadcrumbList) is generated from Sanity fields, including sameAs for team members
- Sitemap lastmod comes from an editorial "content updated on" field, not from _updatedAt, so Google only sees real content changes
- llms.txt is generated from Sanity with the same filter as the sitemap
- A Sanity webhook revalidates the affected pages and pings IndexNow on publish
Lead magnets
PDF guides with double opt-in: the form posts to a server action, the config (list, template, PDF) is read from the published block in Sanity, and the team gets a push notification after each request
AI agents as editors
A lot of the content is drafted and structured with AI agents through the Sanity MCP server: bilingual documents created in one call, saved as drafts, reviewed by a human, then published. The structured content model is what makes that safe. Agents fill fields, they don't write HTML
Diagrams
Explainer graphics are SVGs generated from small Python scripts in the brand palette, uploaded to Sanity with alt texts in both languages