explaingit

apostrophecms/apostrophe

4,556JavaScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

An open-source Node.js CMS where editors update content directly on the live page without a separate admin panel, and it can also run in headless mode as a content API for React, Vue, or Astro frontends.

Mindmap

mindmap
  root((apostrophecms))
    What it does
      Manage content
      Visual editing
      REST API
    Modes
      Traditional CMS
      Headless API
      Astro integration
    Content Types
      Pages
      Pieces
      Widgets
    Pro Features
      User permissions
      AI translation
      SEO tools
    Tech
      Node.js
      MongoDB
      JavaScript
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a website where editors update text and images directly on the live page without a separate admin panel.

USE CASE 2

Use ApostropheCMS in headless mode as a content API to power a React, Vue, or Astro frontend.

USE CASE 3

Create a new CMS-powered site from scratch using the command-line project generator.

USE CASE 4

Add custom content types like portfolio items or event listings using the Node.js module system.

Tech stack

JavaScriptNode.jsMongoDB

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Node.js 20+, npm 10+, and a running MongoDB 6+ instance before starting the project.

Free to use for any purpose including commercial projects under the MIT License.

In plain English

ApostropheCMS is an open-source content management system built with Node.js and MongoDB, two technologies commonly used for JavaScript-based web applications. It is designed to let content editors work directly on the live page they are editing, seeing updates in place without navigating away to a separate admin panel. Developers build and extend the system using modern JavaScript throughout the full stack. The system can run in two modes. In traditional mode, it renders the full website itself. In headless mode, it acts as a content backend only, exposing a REST API so that any frontend framework, such as React, Vue, or Astro, can fetch and display the content. The README notes that an Astro integration is available that handles content fetching automatically and still allows in-context visual editing. Both modes share the same admin experience. To start a new project, the README describes a command-line tool that creates a working site template with a few commands. The site runs locally on port 3000 by default, with an admin login page included. Requirements are Node.js version 20 or newer, MongoDB version 6 or newer, and npm version 10 or newer. A paid tier called Pro adds features beyond the open-source core: fine-grained user permissions, AI-assisted translation using services like DeepL and Google Translate, built-in SEO and analytics tools, advanced caching, and a dashboard for managing multiple separate sites from one place. The open-source version is released under the MIT License, which allows free use in personal and commercial projects. The project maintains a public Discord, GitHub Discussions forum, and documentation site. The README also lists contribution guidelines and tags issues suitable for new contributors.

Copy-paste prompts

Prompt 1
Walk me through creating a new ApostropheCMS project from scratch using the CLI and running it locally.
Prompt 2
How do I set up ApostropheCMS in headless mode and fetch its content into a React application?
Prompt 3
Show me how to create a custom piece type in ApostropheCMS to manage a portfolio of case studies.
Prompt 4
How do I integrate ApostropheCMS with an Astro frontend and still get in-context visual editing?
Prompt 5
What is the difference between ApostropheCMS open source and Pro, and which features need a paid plan?
Open on GitHub → Explain another repo

← apostrophecms on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.