BACK TO INTELLIGENCE
CONTENTDecember 7, 202521 min

Code-Driven Content Strategy: Structured Data

Content is not just text; it is data. A technical guide to Headless CMS, MDX, and the Knowledge Graph architecture that powers modern publishing.

Content is Infrastructure

In the early web (Web 1.0), "Content" was an HTML file. A developer hand-coded specific paragraphs into a specific .html page. In Web 2.0 (WordPress Era), "Content" was a blob of text in a MySQL database. A marketing manager typed into a WYSIWYG editor (What You See Is What You Get), formatting heading and bold text manually. This created the "Blob Problem." The content was trapped in the presentation.

  • You couldn't easily say: "Show me all articles about AI."
  • You couldn't say: "Take this blog post and format it as a slide deck."
  • You couldn't say: "Update the price of Product X across all 500 blog posts."

In Web 3.0 / The Modern Web, Content must be treated as Data. This shifts the paradigm from "Writing Pages" to "Modeling Content." This transformation from unstructured blobs to highly structured, queryable data models is what allows companies like Netflix, Airbnb, and DENIZBERKE to scale their digital footprint.


Part 1: The Headless Revolution (Decoupling)

We discussed Headless Commerce. The same applies to Content Management Systems (CMS). Traditional CMS (WordPress/Drupal):

  • Coupled: The Database, the Admin Panel, and the Frontend Template are one monolith.
  • Theme: You buy a "Theme." If you want to change the design, you have to migrate the content.

Headless CMS (Sanity, Contentful, Strapi):

  • Database-First: It is just an API. It stores JSON.
  • Presentation-Agnostic: It doesn't know (or care) if the content is being displayed on an iPhone, a Website, a Smart Watch, or a voice assistant.
  • The Developer Experience: We query the content using GraphQL or REST. GET /api/posts?category=AI

Why this matters for Strategy: It allows COPE (Create Once, Publish Everywhere). You write the product description once in the CMS.

  • The Website renders it as HTML.
  • The Mobile App renders it as Native Views.
  • The Newsletter renders it as plain text. If the price changes, you update it in one place, and it propagates everywhere instantly.

Part 2: MDX (Markdown + JSX): Content as Code

For technical audiences (Developer Blogs, Documentation), standard Rich Text is insufficient. We need Interactivity. Enter MDX.

MDX allows you to write standard Markdown (easy for writing), but import and use React Components inside the content flow.

The Power of Interactive Content

  • Static Blog: "Here is the formula for ROI: (Gain - Cost) / Cost." (Reader reads passingly).
  • MDX Blog: "Calculate your own ROI:" <ROICalculator initialCost={5000} interestRate={0.05} /> The user sees a slider. They drag it. The numbers update in real-time.

The Engagement Shift: This transforms the reader from a passive consumer to an active participant.

  • Time on Page increases (SEO Signal).
  • Brand Authority increases ("These guys built a tool, they must know their stuff").

At DENIZBERKE, we treat our blog posts as mini-applications. We can embed:

  • Live Trading Terminals.
  • 3D Model Viewers (e.g., <ThreeJSCanvas model="drone.glb" />).
  • Live Code Editors within the article.

Part 2.5: Component-Driven Design (Atomic Content)

Just as we build UIs using atomic components (Button, Card, Hero), we must structure content atomically. In a legacy CMS, a "Page" is a big text box. In a Modern CMS, a "Page" is an array of Blocks.

The Content Model as Lego

We define a library of content blocks:

  1. Hero Block: { title, subtitle, image, cta_link }
  2. Feature Grid: { array_of_features: [{ icon, title, description }] }
  3. Pricing Table: { tier_name, price, features }
  4. Testimonial Slider: { array_of_reviews }

The Flexible Layout: Marketing teams don't need a developer to create a new Landing Page. They simply drag-and-drop these pre-defined, brand-safe blocks in the Headless CMS.

  • Monday: They launch a page with Hero -> Features -> Pricing.
  • Tuesday: They A/B test a version with Hero -> Testimonials -> Pricing.
  • Developer Time: Zero hours.

The "Slices" Pattern

Tools like Prismic call these "Slices." Because the frontend component (React) perfectly matches the backend data structure (JSON Slice), rendering is automatic. slices.map(slice => <ComponentFor slice={slice} />) This is the Holy Grail of marketing velocity.


Part 3: Structured Data & The Knowledge Graph

Google is no longer a keyword search engine. It is a Semantic Engine. It builds a "Knowledge Graph" of the world. It understands entities (People, Companies, Events), not just strings. We help Google by providing JSON-LD (JavaScript Object Notation for Linked Data).

The Semantic Vocabulary (Schema.org)

Inside the <head> of your page, we inject a JSON script.

{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Code-Driven Content Strategy",
  "datePublished": "2025-01-16",
  "author": {
    "@type": "Organization",
    "name": "DENIZBERKE"
  },
  "proficiencyLevel": "Expert"
}

Why do this?

  1. Rich Snippets: Google uses this to display "Stars," "Images," "FAQs," and "How-To Steps" directly in the search results. This increases CTR (Click-Through Rate) by 30%.
  2. Voice Search: When you ask Alexa "How do I fix a leaky faucet?", she reads the Structured Data from a How-To article. If you don't have the Schema, you are invisible to Voice.

Part 4: Programmatic SEO

When content is structured data, you can generate pages programmatically.

  • Goal: Rank for "Best Cafe in [City]".
  • Manual: Write 500 articles. (Impossible).
  • Programmatic:
    1. Create a Database of 500 cities.
    2. Write one template: "Best Cafe in {{City.Name}}".
    3. Generate 500 pages automatically (Next.js Dynamic Routes).

This is how companies like TripAdvisor, Yelp, and Zillow dominate search. They don't write pages; they generate views on top of data.


Part 4.5: Digital Asset Management (DAM) Integration

Content is not just text. It is Images, Videos, PDFs, and 3D Models. A major bottleneck is the "Google Drive Problem."

  • Marketing puts images in Drive.
  • Designers put Figma exports in Dropbox.
  • Developers put optimized WebP files in S3.
  • Result: Version chaos. "Where is the approved logo used in the Q3 campaign?"

The Modern DAM Solution (Cloudinary / Sanity / Mux): The DAM handles the "Transformation Layer" automatically.

  1. Upload: Designer uploads one high-res 40MB PNG.
  2. Transformation: The API serves it as:
    • image.jpg?w=400&q=auto (For Mobile Thumbnails).
    • image.webp (For Chrome users).
    • image.avif (For the future).
    • image.mp4 (Auto-transcoded from a GIF).
  3. Performance: The asset is served from a global CDN.

Metadata Injection: We can automatically tag images using AI.

  • Identify "Red Shoes" in the image.
  • Add alt="Red running shoes" specifically for SEO and Accessibility.
  • This makes the visual library Searchable.

Part 5: The Content Graph (Internal Linking)

Internal linking (connecting Page A to Page B) is critical for SEO authority flow. In the "Blob" world, humans have to remember to link relevant articles. In the "Data" world, we write algorithms.

  • Logic: "When compiling the 'React' article, automatically query the database for the top 3 other articles tagged 'JavaScript' and inject them as 'Related Reading' cards at the bottom."

This creates a dense, perfect mesh of links without human maintenance.


Part 5.5: Case Study: The Newsroom Migration

A major financial news publisher (Client X) was stuck on a proprietary CMS from 2008.

  • Problem: Breaking news took 15 minutes to publish because the legacy database was slow.
  • Requirement: Sub-second publishing to beat competitors to the Bloomberg Terminal.
  • Architecture:
    1. Content Lake: Sanity.io (Headless).
    2. Frontend: Next.js (Incremental Static Regeneration).
    3. Real-Time Layer: WebSockets.

The Workflow:

  1. Journalist hits "Publish."
  2. Sanity triggers a webhook.
  3. Next.js revalidates only that specific article page in 50ms.
  4. The new HTML is pushed to the Edge (Vercel CDN).
  5. Result: The article is live globally in <200ms.
  6. Bonus: The same JSON payload pushes a push notification to the Mobile App instantly.

This illustrates that "Code-Driven Content" is not just about organization; it is about Speed to Market. In the attention economy, speed is the only advantage that matters.


Part 6: Internationalization (i18n) at Scale

How do you manage 50 languages?

  • Old Way: Copy-paste the "English" page 50 times.
  • Code-Driven Way: Locales as Data.

The Architecture:

  1. Content Mesh: The CMS has a field "Locale."
  2. Fallback Logic: getArticle('fr-FR') -> Returns French. If missing, -> returns getArticle('en-US').
  3. UI Translations: The buttons ("Submit") come from a separate dictionary (common.json). The Content comes from the CMS.
  4. Hreflang Generation: We automatically generate the <link rel="alternate" hreflang="es" /> tags for Google. This allows a small team to manage a Global Media Empire.

Part 7: Content Federation (The API Mesh)

You don't just have one CMS.

  • Product Data: PIM (Product Information Management).
  • Blog Data: Sanity.
  • User Reviews: Yotpo API.
  • Job Listings: Greenhouse API.

The Federation Layer (GraphQL Gateway): We build a "Super API" that stitches these together. query { product(id: 1) { title, reviews { rating }, jobs { title } } } The Frontend doesn't know where the data comes from. It just asks the Gateway. This is Composable Architecture.


Conclusion: Typists vs. Architects

The old way of content strategy was "Typing words into a box." The new way is "Architecting information systems."

By treating content as code—version controlling it in Git, structuring it in JSON, validating it with Schemas—we make it durable. Your content becomes an asset library that can be remixed, repurposed, and deployed to new platforms for the next decade. Stop writing pages. Start building data.

#Content#MDX#SEO#Architecture#CMS#Data Structure