Codegea

Development

Custom software developmentSystems, platforms and integrations built around your operationCorporate websitesProfessional, fast and built to inspire trustOnline storesCatalog, payments and shipping ready to sell 24/7WooCommerceFast WooCommerce stores with each country’s payments and invoicingLanding pagesA page focused on one goal: turning visitors into customersMobile appsCustom iOS and Android apps that put your business in your customers’ pockets

Integration and CMS

CMS integrationsWordPress, Strapi, Directus and Arc XP connected to your whole ecosystemArc XPSupport, implementation and integrations for the media platformMigrationsMigrate your site, platform or database without losing anything

Growth and infrastructure

AI automationTechnology does the repetitive work and your team focuses on what mattersOn-page SEOBe found and recommended by Google: technical and content optimizationServers & hostingFast, secure servers monitored 24/7
RetainerYour dev team, by the monthFrom 20h a month. Fixed fee.
An AI quoting tool to quote services in minutesProfessional quotes in minutes, with projects, sellers and payments tracked in one place.See the case

By type

EcommerceStores and catalogsCorporate sitesBrand and lead genPlatforms & appsCustom software

Explore

All projectsCases and resultsClientsWho trusts usRetainerMonthly dev team

Blog

All articlesGuides and opinionNewsletterOne email a monthContactWe reply in 24h

Latest articles

Integrating Piano, Cxense and Google Ad Manager with Arc XPCMS · 2026-10-13How to migrate from WordPress to Arc XP without losing SEOCMS · 2026-10-13Arc XP vs WordPress for a digital media outlet: when to make the jumpCMS · 2026-10-13
NewsletterJoin our newsletterPractical web, SEO and AI notes.
ServicesCustom software developmentCorporate websitesOnline storesWooCommerceLanding pagesMobile appsCMS integrationsArc XPMigrationsAI automationOn-page SEOServers & hostingYour dev team, by the month
ProjectsProfessional quotes in minutes, with projects, sellers and payments tracked in one place.EcommerceCorporate sitesPlatforms & appsAll projectsClientsRetainer
Retainer
BlogAll articlesNewsletterContactIntegrating Piano, Cxense and Google Ad Manager with Arc XPHow to migrate from WordPress to Arc XP without losing SEOArc XP vs WordPress for a digital media outlet: when to make the jumpJoin our newsletter
ESEN
Let's talk

CMS

Markdown-based CMS: what it is, advantages and when it fits

What a Markdown and Git based CMS is, its pros and cons compared with a traditional CMS and which projects it suits. Explained clearly and without hype.

Derian Pinto · Founder & Full Stack Developer2026-07-044 min
Markdown-based CMS: what it is, advantages and when it fits

For years, "managing content" meant one thing: a database, a heavy admin panel and a server you had to look after. But there is a current that turns that idea upside down. What if your content did not live in a database, but in plain text files inside the same repository as your code?

That is, in one sentence, a Markdown-based CMS. It sounds like something only for programmers, but behind it there is an architecture decision with very concrete consequences for performance, cost and maintenance. It is worth understanding when it is the best option and when it is not.

What a Markdown-based CMS is

Markdown is a plain text format that is written naturally and converted to HTML. A Markdown-based CMS stores each entry as a file (usually .md or .mdx), with some metadata at the top (title, date, author) and the body below. This is what a content file looks like inside:

---
title: My first post
date: 2026-07-04
---

# Hello world

This content lives in a .md file in your repository.

Because each entry is a file inside your repository, something powerful comes into play: Git. The change history, branches and pull request review you already use for code now apply to content too. That is why this approach is also called a "Git-based CMS".

Markdown, Git and "headless": how they fit together

A Markdown-based CMS is, by definition, headless: it separates content from presentation. You store the files and a site generator (such as Next.js or Astro) reads them and builds the final HTML. The difference from a classic headless like Directus or Strapi is where the content lives: there you still have a database and an API; here, just files in your repo.

Advantages

  • Content is text files in your repository: no database to maintain or back up separately.
  • Native version control with Git: full history, branches and pull request review before publishing.
  • It performs and ranks: it fits static generators, so the final site is fast and has good technical SEO.
  • Cheap to host and deploy (Vercel, Netlify) and with a very small attack surface.
  • The content is yours and portable: if you switch tools tomorrow, you take your .md files with you without strange migrations.

Disadvantages

  • It is not designed for thousands of entries or for many people editing at once.
  • Publishing usually involves a deployment (build); it is not as immediate as saving to a database.
  • A younger ecosystem than WordPress: fewer ready-to-use plugins and integrations.
  • Features such as internationalization, roles and permissions are more limited than in a large CMS.
  • The initial setup requires handling Git and deployments, although whoever edits afterwards does not need to know any of that.

Markdown-based CMS vs traditional CMS

Aspect

Markdown-based CMS

Traditional CMS (with database)

Where content lives

.md / .yaml files in the repo

Server database

Version control

Native (Git: history, branches, PRs)

Requires plugins or does not exist

Performance

Very high (static site)

Depends on the server and cache

Maintenance

Minimal (no database or CMS server)

Updates, database and security

Editorial scale

Small and medium teams

Thousands of entries and many editors

Cost

Low (static hosting)

Server plus maintenance

What kind of project (and client) it fits

It fits wonderfully when the content is important but not gigantic: marketing sites, landing pages, blogs, portfolios and product documentation. It is the natural option for teams already working with Next.js or Astro and deploying on Vercel or Netlify, and for clients who value a fast, secure, low-maintenance site while owning their content.

It is not the tool if your project is a media outlet with thousands of articles and a large newsroom editing in parallel (there WordPress or a media CMS weighs more), nor for a complex e-commerce or content that changes in real time.

The tool that best represents this idea today is Keystatic: open source, with a friendly editing panel built on top of your files and Git. In the next guides we install it step by step, first in Next.js and then in Astro.

Three questions before choosing

Three questions are enough to decide between Markdown and a database-backed CMS. How many people will edit and how technical are they? How many entries will you have in two years? Do you need publishing to be immediate or can you accept waiting for a deployment?

If the answer is "few, hundreds and I can wait", Markdown usually wins: fewer pieces that break and content that stays yours. If any of the three changes (many editors, thousands of entries, instant publishing), the balance shifts toward a database-backed CMS, and that is fine: it is better to choose it upfront than to migrate under pressure.

What you should not do is decide by fashion. A good CMS is the one your team will really use on any ordinary Tuesday.


Are you deciding how to manage the content of your next site? At Codegea we help choose and implement the right CMS for each case. See the CMS integration service or write to us from the contact page.

Share this article?LinkedInWhatsAppX

Written by

Derian Pinto

Founder & Full Stack Developer

Founder of Codegea. Builds custom websites, stores and platforms, and integrates and supports Arc XP for media companies.

Join our newsletter

An email with news and practical web, SEO and AI notes. No spam, unsubscribe anytime.

Shall we build your project?

Need help? Chat with us