Building Vs Buying

Headless CMS: Buy Content Management, Build the Experience

Use headless CMS for content management infrastructure, build custom frontend for unique experiences. Learn when this approach works, how to choose headless CMS, and execution best practices.

January 6, 2025
11 min read
By Thalamus AI

Traditional CMS like WordPress gives you everything: content management AND presentation layer. This is great until you need presentation that doesn't fit the template.

Headless CMS splits these concerns: buy content management infrastructure, build custom frontend experience.

You get professional content management without constraints on how content appears. Content editors use familiar CMS tools. Developers build exactly the experience users need.

This hybrid approach works brilliantly when executed properly. When done poorly, you get CMS complexity plus custom development complexity without benefits of either.

Let's talk about when headless CMS makes sense, how to choose one, and executing this strategy successfully.

What Is Headless CMS?

Traditional CMS (like WordPress):

  • Content management (backend)
  • Presentation layer (frontend)
  • Tightly coupled
  • Templates determine how content appears

Headless CMS:

  • Content management only (backend)
  • No presentation layer
  • API-first architecture
  • You build frontend however you want
%%{init: {'theme':'base', 'themeVariables': {
  'primaryColor':'#e3f2fd',
  'primaryTextColor':'#0d47a1',
  'primaryBorderColor':'#1976d2',
  'secondaryColor':'#f3e5f5',
  'secondaryTextColor':'#4a148c',
  'tertiaryColor':'#fff3e0',
  'tertiaryTextColor':'#e65100'
}}}%%
graph TD
    A[Content Editors] --> B[Headless CMS<br/>Content Management]
    B --> C[API Layer]

    C --> D[Website Frontend]
    C --> E[Mobile App]
    C --> F[Custom Portal]
    C --> G[Other Channels]

    style B fill:#e3f2fd,stroke:#1976d2,color:#0d47a1
    style C fill:#fff3e0,stroke:#f57c00,color:#e65100
    style D fill:#f3e5f5,stroke:#9c27b0,color:#4a148c
    style E fill:#f3e5f5,stroke:#9c27b0,color:#4a148c
    style F fill:#f3e5f5,stroke:#9c27b0,color:#4a148c

The value:

  • Professional content management tools
  • Complete frontend flexibility
  • One content source, multiple presentations
  • Separation of concerns

When Headless CMS Makes Sense

Scenario 1: Unique Frontend Requirements

Problem: Traditional CMS templates don't match your design/UX needs.

Solution: Headless CMS + custom frontend.

Examples:

  • Custom interactive experiences
  • Unconventional layouts
  • Complex animations
  • Unique navigation patterns
  • Performance-critical rendering

Real case: Design agency needed portfolio that didn't look like WordPress. Headless CMS (Contentful) for content management, custom React frontend for unique design.

Why it worked:

  • Designers got freedom they needed
  • Content editors got familiar CMS interface
  • Each solved their respective problems perfectly

Scenario 2: Multiple Frontend Channels

Problem: Content needs to appear on website, mobile app, kiosks, etc.

Solution: Headless CMS as single content source, custom frontends for each channel.

Examples:

  • Website + mobile app
  • Multiple websites with different designs
  • IoT devices + web dashboard
  • Internal + external portals

Real case: Restaurant chain needed content management for website, mobile app, and in-store kiosks. Sanity as headless CMS, custom frontend for each channel.

Why it worked:

  • Content entered once, appears everywhere
  • Each channel optimized for its context
  • Consistency without constraint

Scenario 3: Developer Team, Non-Technical Editors

Problem: Developers want modern frontend tech, editors want CMS familiarity.

Solution: Headless CMS + modern JavaScript framework.

Examples:

  • React/Next.js frontend
  • Vue/Nuxt frontend
  • Svelte frontend
  • Any modern stack

Real case: Media company wanted Next.js for performance, editors wanted WordPress-like experience. Used headless CMS (Contentful), built Next.js frontend.

Why it worked:

  • Developers got modern tech stack
  • Editors got familiar CMS interface
  • Performance and UX were optimal

Scenario 4: E-Commerce + Content

Problem: E-commerce platform handles commerce well, but content experience is limited.

Solution: Shopify + headless CMS + custom frontend.

Example: Fashion brand using Shopify for commerce, headless CMS for editorial content, custom frontend unifying both.

Why it worked:

  • Shopify strength (commerce) + CMS strength (content)
  • Custom frontend provides seamless experience
  • Best tool for each function

Choosing a Headless CMS

Top Headless CMS Options

Contentful

  • Mature platform, enterprise-ready
  • Good content modeling
  • Excellent API
  • Pricing: $300-$2,000+/month
  • Best for: Professional needs, complex content models

Sanity

  • Developer-friendly
  • Real-time collaboration
  • Flexible content modeling
  • Pricing: $0-$950+/month
  • Best for: Tech-forward teams, custom schemas

Strapi

  • Open source, self-hosted option
  • Full control
  • Customizable admin panel
  • Pricing: Free (self-hosted) or $9-$499+/month (cloud)
  • Best for: Development teams wanting control

Prismic

  • User-friendly for editors
  • Good documentation
  • Website builder included
  • Pricing: $0-$500+/month
  • Best for: Marketing teams, simpler needs

Contentstack

  • Enterprise-focused
  • Multi-site management
  • Workflow capabilities
  • Pricing: Custom (typically $500-$3,000+/month)
  • Best for: Large organizations, complex workflows

Selection Criteria

Content modeling flexibility:

  • Can it handle your content types?
  • Custom fields supported?
  • Relationships between content types?
  • Localization if needed?

Editor experience:

  • Intuitive for non-technical users?
  • Preview capabilities?
  • Workflow support?
  • Collaboration features?

Developer experience:

  • API quality (REST and/or GraphQL)?
  • SDK availability?
  • Documentation quality?
  • Webhook support?

Performance:

  • CDN for content delivery?
  • API response times?
  • Caching capabilities?
  • Image optimization?

Pricing:

  • Monthly costs at your scale?
  • User limits?
  • API call limits?
  • Bandwidth limits?
  • Growth trajectory costs?

Ecosystem:

  • Integration with your stack?
  • Community size?
  • Available plugins/extensions?
  • Support quality?

Building Custom Frontend

Technology Choices

Modern JavaScript Frameworks:

Next.js (React):

  • Most popular for headless CMS frontends
  • Server-side rendering
  • Static site generation
  • Great performance
  • Best for: General purpose, high traffic

Nuxt (Vue):

  • Similar to Next.js but Vue-based
  • Server-side and static options
  • Good developer experience
  • Best for: Vue developers, complex SPAs

Gatsby (React):

  • Static site generator
  • GraphQL data layer
  • Plugin ecosystem
  • Best for: Content-heavy sites, blogs

Astro:

  • Multi-framework support
  • Excellent performance
  • Island architecture
  • Best for: Content sites, marketing pages

Architecture Patterns

Static Site Generation (SSG):

  • Pre-build all pages at deploy time
  • Serve static files
  • Rebuild on content changes

Pros: Fastest performance, simple hosting, secure Cons: Build time for large sites, not real-time Best for: Content that doesn't change frequently

Server-Side Rendering (SSR):

  • Render pages on-demand server-side
  • Fresh content on each request
  • Dynamic personalization possible

Pros: Real-time content, dynamic pages, good SEO Cons: Higher hosting costs, more complex Best for: Frequently changing content, personalization

Incremental Static Regeneration (ISR):

  • Static pages that update on schedule
  • Best of SSG and SSR
  • Next.js specialty

Pros: Performance + freshness, manageable build times Cons: Requires Next.js or similar Best for: Large sites with some dynamic content

Client-Side Rendering (CSR):

  • Single-page app
  • Load data client-side via API
  • Faster interactions after initial load

Pros: Rich interactivity, feels like native app Cons: SEO challenges, slower first load Best for: App-like experiences, logged-in users

Real Implementation Examples

Case 1: Media Company + Contentful + Next.js

Company: Online magazine, 20 employees Headless CMS: Contentful ($500/month) Frontend: Next.js with ISR

What Contentful handled:

  • Article management
  • Author profiles
  • Image assets
  • Content workflow
  • Editor collaboration

What custom frontend provided:

  • Unique article layouts
  • Performance optimization
  • Custom navigation
  • Interactive elements
  • Advertising integration

Implementation cost: $45K Timeline: 3 months Annual maintenance: $8K

Comparison to alternatives:

  • WordPress: Templates couldn't provide desired UX
  • Full custom CMS: Would have cost $100K+
  • Traditional CMS + heavy customization: Complexity without flexibility

Result:

  • Editors happy with familiar CMS
  • Developers happy with modern stack
  • Readers got excellent experience
  • Performance significantly improved

Case 2: Multi-Brand Retailer + Sanity + Multiple Frontends

Company: 3 retail brands under one company Headless CMS: Sanity ($200/month) Frontends: 3 separate Next.js sites + mobile app

What Sanity handled:

  • Product content (descriptions, images)
  • Brand stories
  • Landing page content
  • Shared content library

What custom frontends provided:

  • Brand-specific designs
  • Unique shopping experiences
  • Mobile app interface
  • Each optimized for target audience

Implementation cost: $120K (3 sites + app) Timeline: 6 months Annual maintenance: $20K

Comparison to alternatives:

  • Separate CMSes: Content duplication nightmare
  • Single traditional CMS: Couldn't support unique brand identities
  • Full custom: $250K+

Result:

  • One content source, multiple brand experiences
  • Shared content reduces duplication
  • Each brand gets unique identity
  • Consistent updates across all properties

Case 3: SaaS Company + Strapi + React

Company: B2B SaaS startup, 15 employees Headless CMS: Strapi (self-hosted, $50/month hosting) Frontend: React single-page app

What Strapi handled:

  • Marketing content
  • Product documentation
  • Blog posts
  • Landing pages
  • Help center content

What custom frontend provided:

  • Seamless integration with product
  • Unified navigation between marketing and app
  • Custom search
  • Personalization based on user

Implementation cost: $30K Timeline: 2 months Annual maintenance: $6K

Comparison to alternatives:

  • WordPress: Didn't integrate with product smoothly
  • Commercial headless: Budget constraints
  • No CMS: Marketing team couldn't manage content

Result:

  • Marketing independence
  • Product/marketing integration
  • Low cost due to self-hosting
  • Full control over platform

Best Practices for Headless CMS + Custom Frontend

1. Content Modeling Before Development

Design content model first:

  • What content types exist?
  • What fields does each need?
  • How do they relate?
  • What's shared vs. unique?

Get editor input:

  • How do they want to create content?
  • What workflows do they need?
  • What's intuitive vs. confusing?

Document content model:

  • Clear definitions
  • Field purposes
  • Relationship logic
  • Validation rules

2. Build Preview Functionality

Critical for editors:

  • Can't see published result from CMS
  • Need preview to verify content appearance
  • Should match actual site

Implementation:

  • Draft/preview endpoints in frontend
  • Secure preview URLs
  • Update in real-time
  • Match production exactly

3. Handle Image Optimization

Don't serve raw images from CMS:

  • Implement responsive images
  • Use modern formats (WebP, AVIF)
  • Lazy loading
  • CDN delivery

Options:

  • CMS built-in optimization (Contentful, Sanity)
  • Image CDN (Cloudinary, Imgix)
  • Next.js Image component
  • Custom optimization layer

4. Implement Webhooks for Rebuilds

For static or ISR sites:

  • Content changes trigger rebuild
  • Webhook from CMS to hosting
  • Automated deployment
  • Fresh content without manual builds

Setup:

  • CMS webhook on content publish
  • Triggers deployment (Vercel, Netlify)
  • Build completes in 1-5 minutes
  • New content live

5. Plan for Content Migration

If migrating from existing CMS:

  • Content export from old system
  • Format transformation
  • Import to headless CMS
  • Verify completeness

Budget time for this:

  • Often takes longer than expected
  • Data cleaning required
  • Relationship mapping complex

6. Implement Caching Strategy

Balance freshness and performance:

  • Static pages: Cache aggressively
  • Dynamic content: Cache with short TTL
  • User-specific: Don't cache
  • API responses: Cache intelligently

Layers:

  • CDN caching
  • Application caching
  • API response caching
  • Browser caching

Common Pitfalls

Pitfall 1: Underestimating Frontend Complexity

Problem: "It's just a frontend" turns into complex build.

Reality:

  • Routing and navigation
  • SEO optimization
  • Performance tuning
  • Image handling
  • Search functionality
  • Form handling
  • Analytics integration

Budget accordingly: Frontend is significant development effort.

Pitfall 2: Poor Content Model Design

Problem: Content model doesn't match actual needs.

Result: Editors frustrated, workarounds required, or rebuild necessary.

Solution: Invest time in content modeling upfront. Involve editors. Prototype in CMS.

Pitfall 3: No Preview Functionality

Problem: Editors can't see how content will appear.

Result: Publishing without verification, frequent mistakes, editor frustration.

Solution: Build preview functionality from day one. Non-negotiable for editor satisfaction.

Pitfall 4: Over-Engineering

Problem: Build complex solution when simpler would work.

Example: Multi-layer caching, microservices, advanced optimization when traffic doesn't justify.

Solution: Start simple. Add complexity when needed. YAGNI (You Aren't Gonna Need It) principle.

The Economics

5-year cost comparison:

Traditional CMS (WordPress with heavy customization):

  • Setup and customization: $30K
  • Hosting: $6K (managed WordPress)
  • Ongoing customization: $30K
  • Compromised UX
  • Total: $66K

Headless CMS + Custom Frontend:

  • Initial build: $50K
  • Headless CMS: $18K ($300/month × 5 years)
  • Hosting: $3K (Vercel/Netlify)
  • Maintenance: $30K
  • Perfect UX
  • Total: $101K

Full Custom (CMS + Frontend):

  • Initial build: $120K
  • Hosting: $12K
  • Maintenance: $50K
  • Total: $182K

Headless sweet spot:

  • More than traditional CMS but better UX
  • Less than full custom but professional content management
  • Best balance for many situations

The Bottom Line

Headless CMS + custom frontend works when:

  • Need professional content management
  • Want frontend flexibility
  • Multiple channels or unique design
  • Modern development team
  • Budget between traditional CMS and full custom

Choose headless CMS based on:

  • Content modeling needs
  • Editor experience requirements
  • Developer experience
  • Performance requirements
  • Pricing at your scale

Execute properly by:

  • Content modeling before development
  • Building preview functionality
  • Optimizing images and performance
  • Implementing webhook-driven rebuilds
  • Planning content migration carefully

Common mistakes:

  • Underestimating frontend complexity
  • Poor content model design
  • Skipping preview functionality
  • Over-engineering

When done right, headless CMS provides content management infrastructure while custom frontend delivers perfect user experience. Best of both approaches.

Related Products:

Related Articles

Ready to Build Something Better?

Let's talk about how Thalamus AI can help your business scale with enterprise capabilities at SMB pricing.

Get in Touch