De 5 ufaktererede måneder skjult i hvert Contentful enterprise-build
Hvert Contentful enterprise-build jeg har auditeret bærer de samme fem skjulte måneder. Ingen af dem optræder på statement of work. Alle optræder på tidslinjen.
Måned 1 — Dynamiske link-referencer
På dag ét indsætter redaktører fulde URL'er i rich-text-felter og CTA-knapper. Det virker i staging, shipper til produktion og rådner stille. Den første slug-refactor — seks måneder inde, når SEO endelig vejer ind — bryder 200 entries i stilhed. Nu skriver teamet en engangs-scanner. Så en engangs-fixer. Så en engangs-CMS-migration. Det er en måned.
Fixet er ikke eksotisk. Et typet linkReference-felt der peger på target-entryen, resolvet ved fetch-time. Samme UX i editoren, ingen streng nogen steder. Tre dage at designe, to uger at retrofitte på tværs af hver block, yderligere to uger at migrere det eksisterende rich-text-content. Fem uger. Teamet bogfører det som 'content-cleanup'.
Måned 2 — Redirect-motoren
Der er ingen redirect-motor i vanilla Contentful. Hver URL-ændring bliver en engineering-opgave: rediger en config-fil, åbn en PR, deploy. Marketing venter et sprint på at trække en kampagne-URL tilbage. SEO-teamet lærer ikke at spørge. Fire måneder inde bygger nogen den endelig: en redirect-content-type med regex/wildcard-support, evalueret på proxy-edge, plus en webhook der automatisk skriver et redirect-entry hver gang en redaktør omdøber en slug.
Det er to ugers senior-arbejde, plus yderligere to uger til at fange de slug-ændringer, der allerede har brudt noget. En måned, væk. Teamet bogfører det som 'SEO-infrastruktur'.
Måned 3 — Reel internationalisering
Projektet starter med ét locale og 'vi tilføjer flere senere'. Senere ankommer, og fundamentet mangler: ingen fallback-kæde (en dansk entry uden dansk tekst returnerer null), ingen lokaliserede slugs (URL'er forbliver engelske på hvert marked), ingen CMS-styrede ordbøger (UI-strenge lever i JSON-filer marketing ikke kan røre). Lokaliserings-leverandøren sender oversættelser og opdager, at der ikke er noget sted at lægge dem.
At bygge det ordentligt tager en måned: locale-fallback bagt ind i hver CMS-query, lokaliserede parent- og child-slugs, hreflang-generering, default-locale-URL-skjuling og en localizedDictionary-content-type med token-interpolation. Teamet bogfører det som 'oversættelses-arbejde'.
Måned 4 — Schema-drevne forms
Marketing vil have en ny lead-capture-form til en kampagne der starter mandag. Den nuværende opsætning hardkoder forms ind i React-komponenter. Engineering shipper en release for hvert felt. På måned fire har nogen fået nok og bygger det om: en form-content-type med et typet field-schema, en enkelt renderer, valideringsregler i CMS'et og et action-endpoint der skriver til hvad end jeres CRM nu er.
Tre uger at bygge, en uge at migrere de eksisterende forms, en uge at træne marketing på den nye editor-UI. En måned. Teamet bogfører det som 'marketing-platform'.
Måned 5 — End-to-end type-sikkerhed
På måned fem er kodebasen fuld af fields.title.en-US og fields.body.fields.content[0].fields.text. En felt-omdøbning i Contentful bryder runtime i produktion. En junior-udvikler shipper en regression ingen fanger. Teamet bolter endelig graphql-codegen på mod live CDA-skemaet, med en drift-detektor der fejler CI når typer og CMS divergerer.
To uger at wire codegen-pipelinen, to uger at retrofitte hvert fetch-site, en uge at fixe de bugs som de nye typer afslører. En måned. Teamet bogfører det som 'tech debt'.
Fem måneder. De samme fem hver gang. Ingen af dem på SOW'en.
Byg det, eller køb et fundament der allerede har det
De her fem måneder er ikke et tegn på et dårligt team. De er et tegn på, at vanilla Contentful ikke leverer et produktionsfundament, og at fundamentet er det samme på hvert projekt. Enten bygger du det én gang, langsomt, på hvert nyt build — og betaler senior-løn for det hver gang — eller også adopterer du et fundament der allerede har alle fem løst.
Vores Contentful enterprise starter til Next.js 16 er den produktiserede version af de fem måneder. Dynamiske link-referencer. En redirect-motor med auto slug-change-webhooks. Reel internationalisering. Schema-drevne forms. End-to-end type-sikkerhed med drift-detektion. Leveret som kildekode til dit repo, evig licens, ingen SaaS.
Hvis dit sidste build ramte fire ud af fem, gør det næste det også. Planlæg derefter.
Vil du have denne slags vurdering på dit projekt?
Jeg læser hver e-mail inden for én arbejdsdag. Tag et projekt, et tilbud eller et system, du sidder fast i.
Hvorfor simpel arkitektur altid vinder
Komplekse systemer fejler på komplekse måder. De mest succesfulde projekter, jeg har set, er dem der modstod trangen til at over-engineere.
Microservices-fælden
Hvordan branchen overbeviste alle om, at de havde brug for distribuerede systemer, og hvorfor de fleste virksomheder ville have det bedre med en modulær monolit.
Den reelle omkostning ved skræddersyet udvikling
Skræddersyet software er ikke kun den indledende pris. Det er vedligeholdelse, opdateringer og opportunity cost ved ikke at bruge eksisterende løsninger.