DEV Community

Alex Spinov
Alex Spinov

Posted on

Contentful Has a Free Headless CMS API — Manage Content Like a Developer, Not a WordPress Admin

Contentful Has a Free Headless CMS API — Manage Content Like a Developer, Not a WordPress Admin

If you've ever wrestled with WordPress plugins, PHP conflicts, or database migrations just to update a blog post — Contentful's API will feel like a breath of fresh air.

Contentful is a headless CMS that separates your content from your presentation layer. You manage content through their dashboard or API, then fetch it anywhere — React, Next.js, mobile apps, even IoT devices.

Why Developers Love Contentful

Traditional CMS platforms force you into their rendering engine. Contentful doesn't care how you display content:

  • REST + GraphQL APIs — fetch content however you prefer
  • Content modeling — define custom content types (blog posts, products, landing pages)
  • CDN-backed delivery — content served from 190+ edge locations
  • Webhooks — trigger builds, notifications, or workflows on content changes
  • SDKs for JavaScript, Python, Ruby, Java, .NET, and more

The Free Tier (Community Plan)

Contentful's free tier is surprisingly generous:

  • 1 space with up to 25,000 records
  • 2 locales for multi-language content
  • 48 content types
  • Unlimited API calls (fair use)
  • Content Preview API for draft content
  • Images API with on-the-fly transformations

Quick Start: Fetching Content with Node.js

const contentful = require('contentful');

const client = contentful.createClient({
  space: 'your-space-id',
  accessToken: 'your-access-token'
});

// Fetch all blog posts
async function getBlogPosts() {
  const entries = await client.getEntries({
    content_type: 'blogPost',
    order: '-sys.createdAt',
    limit: 10
  });

  entries.items.forEach(post => {
    console.log(`${post.fields.title}${post.fields.publishDate}`);
  });
}

getBlogPosts();
Enter fullscreen mode Exit fullscreen mode

Content Modeling Example

Define a "Product" content type with fields:

{
  "name": "Product",
  "fields": [
    { "id": "name", "type": "Symbol", "required": true },
    { "id": "price", "type": "Number" },
    { "id": "description", "type": "RichText" },
    { "id": "image", "type": "Link", "linkType": "Asset" },
    { "id": "categories", "type": "Array", "items": { "type": "Link", "linkType": "Entry" } }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Then query with filters:

const products = await client.getEntries({
  content_type: 'product',
  'fields.price[lte]': 50,
  'fields.categories.sys.id': 'electronics',
  order: 'fields.price'
});
Enter fullscreen mode Exit fullscreen mode

GraphQL API

Contentful also offers a GraphQL endpoint:

{
  blogPostCollection(limit: 5, order: publishDate_DESC) {
    items {
      title
      slug
      publishDate
      body {
        json
      }
      author {
        name
        avatar {
          url
        }
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

When Contentful Shines

  • Multi-channel publishing — same content on web, mobile, kiosk, watch
  • Team collaboration — editors manage content, devs build the frontend
  • Localization — built-in multi-language support
  • Migrations — version-controlled content model changes

When to Look Elsewhere

  • You need a full website builder (try Webflow)
  • Budget is tight for large teams (pricing scales with users)
  • You want server-side rendering built in (try Strapi for self-hosted)

The Bottom Line

Contentful removes the "CMS tax" from your development workflow. No more fighting with themes, plugins, or database schemas. Just clean APIs that deliver your content wherever you need it.


Need to extract product data, monitor competitor content, or build automated content pipelines? I build custom web scraping solutions for businesses.

📧 Email me: spinov001@gmail.com
🔧 My scraping tools: Apify Store

Top comments (0)