MDX Developer-First Websites — Geen CMS Lock-In
Beheer Uw Content Stack met MDX en Zonder Vendor Lock-In
Je inhoud mag niet gevangen zitten in iemands anders database
Elke keer als je inhoud naar een propriëtair CMS stuurt, sluit je een weddenschapje af. Je weddt erop dat de leverancier de prijzen niet gaat verhogen, geen functies gaat schrappen en niet door een ander bedrijf wordt overgenomen dat niets om je workflow geeft. Meestal verlies je die weddenschapje.
MDX draait het model om. Je inhoud leeft in je repository als Markdown-bestanden aangevuld met JSX-componenten. Het is versiebeheerd, draagbaar en volledig van jou. Geen API-sleutels die om 2 uur 's nachts verlopen, geen migratienachtmerries, geen leverancier die je inhoud gijzelt.
Bij Social Animal bouwen we MDX-aangedreven websites die ontwikkelingsteams volledige controle geven over content-architectuur terwijl de schrijfervaring schoon en snel blijft.
Wat is MDX en waarom doet het eraan?
MDX is Markdown voor het componenttijdperk. Het laat je standaard Markdown schrijven en React (of JSX-compatibele) componenten direct in je contentbestanden inbedden. Zie het als de brug tussen ontwikkelingstools en contentschrijving.
Een typisch MDX-bestand ziet er zo uit:
# Product Launch Announcement
We're shipping the new dashboard today.
<FeatureGrid features={launchFeatures} />
Read the full changelog [here](/changelog).
<CallToAction variant="primary" />
Dat is echte inhoud met echte componenten, die in een .mdx-bestand in je Git-repo leven. Geen CMS-beheerpaneel nodig. Geen REST API-aanroepen om een kop te renderen.
Waarom ontwikkelaars MDX prefereren
- Git-native workflow: inhoud gaat door dezelfde PR-, review- en deploypijplijn als code
- Type-veilige componenten: je contentcomponenten worden bij het bouwen gevalideerd, niet bij runtime
- Nul runtimekosten: MDX compileert naar statische HTML — geen client-side Markdown-parsing
- Volledige JSX-mogelijkheden: interactieve grafieken, ingebedde demo's, dynamische tabellen — allemaal inline met je tekst
- Geen leverancierafhankelijkheid: als je van framework wisselt, komen je
.mdx-bestanden met je mee
Het vendor lock-in-probleem is echt
We hebben klanten van Contentful, Prismic, Sanity en WordPress af gemigreerd — soms allemaal in dezelfde kwartaal. Het patroon is altijd hetzelfde:
- Een team kiest een CMS omdat het er goed uitziet in een demo
- Ze bouwen diep gekoppelde templates rond propriëtaire content-modellen
- Het CMS verandert prijzen, beëindigt een API-versie of introduceert breaking changes
- Migratie wordt een project van meerdere sprints dat functiewerk blokkeert
Met MDX is migratie geen probleem. Je inhoud zijn bestanden. Bestanden zitten in mappen. Mappen zitten in Git. Van Next.js naar Astro? Je MDX-bestanden hebben er geen probleem mee — ze werken in beide.
Wat "geen vendor lock-in" echt betekent
Het betekent niet dat we tegen CMS zijn. Het betekent dat je contentlaag geen enkel kritiek foutpunt heeft dat jij niet beheerst. Specifiek:
- Geen propriëtaire content-modellen — je schema is in code gedefinieerd, niet in het dashboard van een leverancier
- Geen API-afhankelijkheid voor builds — inhoud is lokaal, builds zijn snel en deterministisch
- Geen prijsverrassingen per gebruiker — er is geen SaaS-rekening gekoppeld aan je inhoud
- Geen migratiebelasting — het wisselen van frameworks of hosts vereist geen herplatforming van inhoud
Onze benadering van MDX-first-architectuur
We stoppen niet zomaar MDX-bestanden in een /content-map en noemen het klaar. We bouwen een goede content-architectuur die schaalt.
Content-schema met frontmatter-validatie
Elk MDX-bestand krijgt een gevalideerd frontmatter-schema met Zod of een vergelijkbare runtime-validator. Je inhoud heeft geforceerde structuur — verplichte velden, getypte datums, gevalideerde slugs — zonder dat een CMS dit hoeft in te stellen.
const postSchema = z.object({
title: z.string().max(70),
date: z.coerce.date(),
tags: z.array(z.string()),
draft: z.boolean().default(false),
});
Push een malformed contentbestand en de build mislukt met een duidelijke fout. Dat is betere validatie dan de meeste CMS-platforms bieden.
Aangepaste componentbibliotheken
We bouwen herbruikbare MDX-componentsets afgestemd op je contentbehoeften. Veelgebruikte voorbeelden:
<Callout>— gestylde tip-, waarschuwings- en info-blokken<CodeDemo>— live codevoorbeelden met syntaxisaccentuering<ComparisonTable>— gestructureerde vergelijkingen van functies<VideoEmbed>— responsieve, lazy-loaded video met juiste hoogte-breedteverhoudingen<PricingCard>— dynamische prijscomponenten die uit je datalaag trekken
Deze componenten zijn gedocumenteerd, getest en met versiebeheer voorzien naast je inhoud.
Content-collecties en typeveiligheid
Met behulp van Astro's Content Collections of Next.js met aangepaste loaders, creëren we volledig getypte content-API's. Je IDE vult contentsvelden in. TypeScript vangt verbroken verwijzingen op vóór deployment. Eerlijk gezegd slaat de DX elke CMS GraphQL Explorer die ik heb gebruikt.
Authoring-opties voor niet-ontwikkelaars
MDX betekent niet dat iedereen in VS Code hoeft te leven. We voegen lightweight bewerkingslagen toe wanneer nodig:
- Prose Mirror of TinaCMS voor visuele bewerking met Git-gesteunde opslag
- Decap CMS (voorheen Netlify CMS) voor een eenvoudig beheerpaneel dat naar je repo commit
- GitHub's ingebouwde editor met preview-workflows voor snelle correcties
- Aangepaste beheerdashboards met behulp van server actions die MDX-bestanden programmatisch committen
De inhoud blijft in Git. De bewerkingservaring past zich aan aan wie dan ook schrijft.
Technologie-stack
Onze MDX-builds draaien doorgaans op:
- Next.js 14+ met
next-mdx-remoteof@next/mdxvoor App Router-integratie - Astro met native MDX-ondersteuning en Content Collections voor statische-first sites
- Rehype en Remark-plugins voor syntaxisaccentuering, inhoudsopgavegeneratie, linkverwerking en afbeeldingsoptimalisatie
- Tailwind CSS voor componentstijling met designtokens
- Vercel of Netlify voor deployment met directe rollbacks (je inhoud zit in Git, dus elke deployment is reversibel)
Wat je krijgt
Wanneer we een MDX-first website opleveren, loop je weg met:
- Een volledig geïmplementeerde site met subsecondeladen van pagina's
- Een gedocumenteerd content-schema met validatie
- Een aangepaste MDX-componentbibliotheek
- Een Git-gebaseerde contentworkflow met preview-deployments
- Nul maandelijkse CMS-kosten
- Volledig eigendom van elk contentbestand, component en configuratie
- Een migratiepad dat niet bestaat — omdat er niets is om uit te migreren
Voor wie dit geschikt is
MDX-first-architectuur is een sterke keuze voor:
- Developer tool-bedrijven die docs, blogs en marketingpagina's in één stack willen
- Startups die niet €300/maand voor een CMS willen betalen voordat ze inkomsten hebben
- Agencies die ervan af willen zijn om CMS-integraties op dozijnen clientsites te onderhouden
- Engineeringteams die inhoud in hun monorepo willen, niet in een dashboard van derden
Als je team zich comfortabel voelt met Git en je langetermijnbezit meer waardeert dan kortetermijngemak, is MDX de juiste keuze.
Common questions
What is MDX and how is it different from regular Markdown?
MDX extends Markdown by letting you embed JSX components directly in your content files. Standard Markdown handles basic formatting and that's about it. MDX lets you drop in interactive charts, styled callouts, any React component you've built — all compiled to static HTML at build time, with zero runtime overhead.
Can non-technical team members edit MDX content?
Yes. We wire up lightweight editing tools like TinaCMS or Decap CMS that give writers a visual interface while storing everything as MDX files in Git. Editors get a familiar admin panel. Developers keep their Git-native workflow. Nobody has to compromise.
How does MDX eliminate CMS vendor lock-in?
Your content lives as files in your Git repository, not in a vendor's database behind an API. No proprietary content models, no per-seat pricing, no migration cost. Switch from Next.js to Astro, change hosts entirely — your MDX files move with you, untouched.
Is MDX only for blogs and documentation sites?
Not at all. MDX works great for marketing sites, product pages, changelogs, knowledge bases, and landing pages. Any content-driven page benefits from MDX's mix of structured authoring and component flexibility. If a page has text and interactive elements, MDX handles it well.
How do you ensure content quality without a CMS enforcing structure?
We define content schemas using Zod validation on frontmatter fields. Every MDX file gets type-checked at build time — required fields, valid dates, correct slugs. Commit something malformed and the build fails with a clear error message. It's stricter than most CMS validation, honestly.
What are the performance benefits of MDX over a headless CMS?
MDX compiles to static HTML at build time. No API calls during the build, none at runtime either. Builds are deterministic and fast. Pages serve instantly from the CDN. There's no network dependency on a CMS API that might be slow, rate-limited, or just down.
Can I migrate my existing CMS content to MDX?
Yes. We've migrated content from Contentful, Sanity, WordPress, and Prismic to MDX. The process involves exporting your content, transforming it into validated MDX files with proper frontmatter, and mapping your existing components to a new MDX component library. Most migrations wrap up in one to two sprints.
Ready to get started?
Free consultation. No commitment. Just an honest conversation about your project.
Let's build
something together.
Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.