# BCMS Documentation

> Index of every public BCMS documentation page. Each link points to the Markdown version of the page. For the complete content in one file, fetch /docs/llms-full.txt.

BCMS is an API-based headless CMS designed for developers and their clients. It’s simple, fast, and powerful.

## Introduction

- [Key Differences: What Sets BCMS Apart?](https://thebcms.com/docs/introduction/key-differences.md): Not all headless CMSs are created equal. Here’s how BCMS compares - and where it stands out with its advanced features, API performance, and modular tooling.
- [How to use this documentation](https://thebcms.com/docs/introduction/how-to-use-docs.md): This documentation helps you build, extend, and launch projects with BCMS, offering clear guides, API references, and best-practice workflows.

## Getting started

- [Create your first project](https://thebcms.com/docs/getting-started/create-project.md): Start by creating a project in the BCMS dashboard. A project is your workspace. It holds your templates, entries, users, media, and settings.
- [BCMS Dashboard tour](https://thebcms.com/docs/getting-started/dashboard-tour.md): The BCMS dashboard is where you manage content, structure, media, and users. Here's a quick overview of each section.
- [Hello, world](https://thebcms.com/docs/getting-started/hello-world.md): This quick example shows how to create content in BCMS and display it on your website using the API. You’ll create a blog post and fetch it in your frontend.
- [Next steps](https://thebcms.com/docs/getting-started/next-steps.md): You've created a project, added your first content, and fetched it via API. Now what? This guide outlines where to go next depending on your use case.
- [BCMS MCP](https://thebcms.com/docs/getting-started/mcp.md): Connect any AI assistant to your BCMS instance and manage your CMS by talking to it. Through the Model Context Protocol (MCP), tools like Cursor, Claude, VS Code, and others can design your content model, write and translate real content, and manage media - directly in your instance, scoped to a key you control.

## Inside BCMS

- [Working with Templates](https://thebcms.com/docs/inside-bcms/templates.md): Templates define the structure of your content. They tell BCMS what fields each entry should have, and they help you organize different types of content in your project.
- [Working with Entries](https://thebcms.com/docs/inside-bcms/entries.md): The structure of an entry depends on the properties defined in its template. These properties will appear in the meta section of every entry.
- [Working with Widgets](https://thebcms.com/docs/inside-bcms/widgets.md): BCMS widgets are reusable building blocks that let you structure entry content easily, improve consistency, and speed up content creation.
- [Working with Groups](https://thebcms.com/docs/inside-bcms/groups.md): Groups in BCMS are reusable building blocks made up of multiple properties. You can include groups in any template, widget, or even within other groups.
- [Working with Media](https://thebcms.com/docs/inside-bcms/media.md): The Media manager in BCMS helps you manage all your visual and file assets - images, videos, documents, and more. You can upload, organize, rename, and delete files using folders, or access them programmatically via the BCMS SDK.
- [Properties in BCMS](https://thebcms.com/docs/inside-bcms/properties.md): Properties (inputs) are the foundational components of the BCMS ecosystem, including groups, widgets, and templates. Use them to design custom data structures.
- [Settings Page](https://thebcms.com/docs/inside-bcms/settings.md): The settings page lets you manage your account details, add languages, handle subscription and billing, and invite team members.
- [Working with API keys](https://thebcms.com/docs/inside-bcms/api-keys.md): API keys connect your app with your CMS data. Each key allows you to manage permissions for templates.
- [Permissions](https://thebcms.com/docs/inside-bcms/permissions.md): Permissions in BCMS allow fine-grained control over what each user can see and do within your organization.
- [Localization](https://thebcms.com/docs/inside-bcms/localization.md): Localization in BCMS allows you to manage and serve content in multiple languages across your entire project.
- [Content statuses](https://thebcms.com/docs/inside-bcms/content-statuses.md): In BCMS, content statuses let you tag entries with labels like draft, published, or in-review. They help structure your content lifecycle without enforcing strict publishing rules.
- [Global search](https://thebcms.com/docs/inside-bcms/global-search.md): BCMS offers a powerful, unified Global Search experience, accessible from anywhere within the CMS, enabling users to locate content across all data types quickly.

## Integrations

- [Getting Started with Next.js and BCMS](https://thebcms.com/docs/integrations/next-js.md): This guide walks you through integrating BCMS with your Next.js project. It's a step-by-step tutorial for quick setup and content management.
- [Getting Started with Gatsby.js and BCMS](https://thebcms.com/docs/integrations/gatsby-js.md): This guide will help you connect BCMS with Gatsby.js, providing a straightforward process for integrating and managing content with ease.
- [Getting Started with Nuxt.js and BCMS](https://thebcms.com/docs/integrations/nuxt-js.md): This guide walks you through integrating BCMS with Nuxt.js, providing a clear, no-BS process to set up efficient content management for your projects.
- [Getting Started with Astro and BCMS](https://thebcms.com/docs/integrations/astro.md): This guide walks you through integrating BCMS with your Astro project. It's a step-by-step tutorial for quick setup and content management.
- [Getting Started with Svelte and BCMS](https://thebcms.com/docs/integrations/svelte.md): This guide walks you through integrating BCMS with your Svelte project. It's a step-by-step tutorial for quick setup and content management.
- [Using BCMS with Vite](https://thebcms.com/docs/integrations/vite.md): BCMS works seamlessly with Vite, enabling lightning-fast local development and a clean module-based setup. Below is a minimal Vite + Vue 3 project configured to fetch content from BCMS.
- [Other frameworks & environments](https://thebcms.com/docs/integrations/other.md): The BCMS Client SDK is framework-agnostic and can be used in any JavaScript or TypeScript environment, including but not limited to

## Extending BCMS

- [Webhooks](https://thebcms.com/docs/extending/webhooks.md): Webhooks in BCMS allow you to receive real-time notifications when specific events occur in your content management system.
- [Extending BCMS with Functions](https://thebcms.com/docs/extending/functions.md): Functions in BCMS are serverless code snippets that can be executed on-demand to perform custom logic, data processing, or integrations.
- [Dependencies](https://thebcms.com/docs/extending/dependencies.md): The Dependencies feature in BCMS allows you to manage external package dependencies for your BCMS functions.
- [Environment variables in BCMS](https://thebcms.com/docs/extending/environment-variables.md): Environment variables in BCMS let you securely store configuration values such as API keys, database credentials, and service tokens. These values are injected into your functions and can be managed per instance.

## Deployment & hosting

- [Deploying on Vercel](https://thebcms.com/docs/deployment/vercel.md): Vercel is fully compatible with BCMS. You don’t need any special setup - just make sure your environment variables are correctly set.
- [Deploying on Netlify](https://thebcms.com/docs/deployment/netlify.md): Netlify works seamlessly with BCMS. There’s no special configuration required - just set your environment variables properly.
- [Deploying on DigitalOcean](https://thebcms.com/docs/deployment/digitalocean.md): DigitalOcean App Platform works out of the box with BCMS projects. You just need to set the right environment variables.
- [Deploying with Docker](https://thebcms.com/docs/deployment/docker.md): You can deploy any BCMS-powered project using Docker by creating a simple Dockerfile and passing your environment variables at runtime.
