MCPcopy Index your code
hub / github.com/apostrophecms/apostrophe

github.com/apostrophecms/apostrophe @4.31.0

repository ↗ · DeepWiki ↗ · release 4.31.0 ↗ · + Follow
5,059 symbols 11,550 edges 962 files 609 documented · 12%
README

ApostropheCMS logo

ApostropheCMS

<a aria-label="Join the community on Discord" href="http://chat.apostrophecms.org">
  <img alt="" src="https://img.shields.io/discord/517772094482677790?color=5865f2&label=Join%20the%20Discord&logo=discord&logoColor=fff&labelColor=000&style=for-the-badge&logoWidth=20" />
</a>
<a aria-label="License" href="https://github.com/apostrophecms/apostrophe/blob/main/LICENSE.md">
  <img alt="" src="https://img.shields.io/static/v1?style=for-the-badge&labelColor=000000&label=License&message=MIT&color=3DA639" />
</a>







<strong>Full-stack CMS for developers and content teams</strong>


Build websites with in-context editing and headless flexibility using Node.js and MongoDB.



<a href="https://docs.apostrophecms.org/"><strong>Documentation »</strong></a>






<a href="http://demo.apostrophecms.com">Demo</a>
·
<a href="https://roadmap.apostrophecms.com/roadmap">Roadmap</a>
·
<a href="https://github.com/apostrophecms/apostrophe/issues/new?assignees=&labels=bug,3.0&template=bug_report.md&title=">Report Bug</a>

About

ApostropheCMS is a full-stack content management system built with Node.js and MongoDB. Content creators can edit directly on live pages without switching between admin interfaces, while developers can build with modern JavaScript or use it headlessly with any frontend framework.

Key Features

  • 🎯 In-Context Editing - Content creators edit directly on the live page, seeing changes instantly
  • ⚡ Headless-Ready - Use any frontend framework while keeping the powerful admin experience
  • 🛠️ Developer-First - Built with Node.js and MongoDB for full-stack JavaScript development
  • 📈 Scales Beautifully - From small sites to enterprise applications handling millions of pages
  • 🔐 Enterprise Features - Advanced permissions, workflow management, automated translations, and more

System Requirements

Requirement Version Installation Notes
Node.js 20.x+ Use NVM for version management
MongoDB 6.0+ MongoDB Atlas (cloud) or local install
npm 10.x+ Included with Node.js

See our setup guides for installation instructions.

Quick Start

Get ApostropheCMS running locally in minutes:

# Option 1: Install CLI globally (recommended for multiple projects)
npm install -g @apostrophecms/cli
apos create my-website
cd my-website
npm run dev

# Option 2: Use npx for one-time project creation
npx @apostrophecms/cli create my-website
cd my-website
npm run dev

Your new ApostropheCMS site will be available at http://localhost:3000 with a powerful admin interface at /login.

Prefer to Go Headless?

Get started with Astro integration - the easiest way to build headless sites while keeping visual editing:

Both starter kits provide headless CMS power with in-context editing, letting content creators edit directly on the live site while you build with modern frontend tools. Our Astro integration handles all the content fetching automatically—no REST API calls to write.

Desire a different frontend framework? Use our REST APIs with React, Vue, Svelte, or any other framework:

Hosting & Deployment

Choose ApostropheCMS hosting for turnkey solutions with optimized performance and dedicated support, or deploy to any platform where Node.js runs.

Built With Modern Tech

  • Node.js - JavaScript runtime for server-side development
  • MongoDB - Flexible document database for content storage
  • ESM Modules - Native ES6 module support for modern JavaScript
  • Vite - Lightning-fast build tool and development server
  • Modern JavaScript - ES6+, async/await, and contemporary development patterns

Community & Support

Join other developers and content creators using ApostropheCMS:

  • Discord - Get help, share projects, and connect with other users
  • GitHub Discussions - Feature requests, technical discussions, and community support
  • Documentation - Comprehensive guides, tutorials, and API references

Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help makes ApostropheCMS better for everyone.

Pro Features

For teams and organizations requiring additional features:

  • 🔐 Advanced User Management - Granular permissions, user groups, and access controls
  • 🌍 Automated Translation - AI-powered translation with DeepL, Google Translate, and Azure
  • 📊 Analytics & SEO - Built-in SEO optimization and content analytics
  • ⚡ Performance Optimization - Advanced caching, CDN integration, and performance monitoring
  • 🏢 Multisite Management - Manage multiple sites from a single dashboard with shared resources
  • 💼 Professional Support - Dedicated support, training, and consultation services

Explore all the pro extensions and sign up for a Pro license in our self-service Apostrophe Workspaces, or contact us to learn about licensing and support options.

License

ApostropheCMS is open source software licensed under the MIT License. This means you're free to use, modify, and distribute it for both personal and commercial projects.


<strong>Ready to build something amazing?</strong>


<a href="https://docs.apostrophecms.org/">Get started with our documentation</a> or <a href="https://apostrophecms.com/contact-us">talk to our team</a>






<em>Built with ❤️ by the <a href="https://apostrophecms.com">ApostropheCMS team</a></em>

Extension points exported contracts — how you extend this code

RequestArgs (Interface)
(no doc)
packages/apostrophecms-openapi/examples/typescript/base.ts
ServerMap (Interface)
(no doc)
packages/apostrophecms-openapi/examples/typescript/base.ts
ConfigurationParameters (Interface)
(no doc)
packages/apostrophecms-openapi/examples/typescript/configuration.ts
ApiError (Interface)
(no doc)
packages/apostrophecms-openapi/examples/typescript/api.ts
AreaField (Interface)
(no doc)
packages/apostrophecms-openapi/examples/typescript/api.ts

Core symbols most depended-on inside this repo

require
called by 1420
packages/apostrophe/index.js
find
called by 1093
packages/db-connect/adapters/sqlite.js
get
called by 970
packages/apostrophe/modules/@apostrophecms/area/ui/apos/apps/AposAreas.js
collection
called by 416
packages/db-connect/adapters/sqlite.js
toArray
called by 382
packages/db-connect/adapters/sqlite.js
insert
called by 358
packages/db-connect/adapters/sqlite.js
request
called by 353
packages/apostrophe/modules/@apostrophecms/page/ui/apos/logic/AposPagesManager.js
destroy
called by 317
packages/apostrophe/modules/@apostrophecms/layout-widget/ui/apos/lib/grid-manager.js

Shape

Function 4,327
Method 500
Interface 144
Class 88

Languages

TypeScript100%

Modules by API surface

packages/apostrophecms-openapi/examples/typescript/api.ts533 symbols
packages/apostrophe/modules/@apostrophecms/page/index.js128 symbols
packages/db-connect/adapters/postgres.js100 symbols
packages/apostrophe/modules/@apostrophecms/doc-type/index.js99 symbols
packages/db-connect/adapters/sqlite.js98 symbols
packages/apostrophe/modules/@apostrophecms/schema/index.js82 symbols
packages/apostrophe/modules/@apostrophecms/doc/index.js75 symbols
packages/apostrophe/modules/@apostrophecms/attachment/index.js61 symbols
packages/apostrophe/modules/@apostrophecms/asset/index.js60 symbols
packages/apostrophe/modules/@apostrophecms/piece-type/index.js55 symbols
packages/apostrophe/modules/@apostrophecms/template/index.js54 symbols
packages/apostrophe/modules/@apostrophecms/util/index.js52 symbols

Dependencies from manifests, versioned

@apidevtools/swagger-parser12.0.0 · 1×
@apostrophecms-pro/automatic-translationgit+https://github.c · 1×
@apostrophecms/anchorsgit://github.com/apo · 1×
@apostrophecms/blogworkspace:^ · 1×
@apostrophecms/cache-redisgit://github.com/apo · 1×
@apostrophecms/db-connectworkspace:^ · 1×
@apostrophecms/emulate-mongo-3-driverworkspace:^ · 1×
@apostrophecms/formgit://github.com/apo · 1×
@apostrophecms/i18n-staticgit+https://github.c · 1×
@apostrophecms/import-exportgit+https://github.c · 1×
@apostrophecms/login-hcaptchagit://github.com/apo · 1×
@apostrophecms/login-recaptchagit://github.com/apo · 1×

Datastores touched

(mongodb)Database · 1 repos
testdbDatabase · 1 repos
dbDatabase · 1 repos
mydbDatabase · 1 repos
dbDatabase · 1 repos
my-siteDatabase · 1 repos
mydbDatabase · 1 repos
secretDatabase · 1 repos

For agents

$ claude mcp add apostrophe \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact