slug: /
FireCMS is an open source headless CMS and admin panel built by developers for developers.
FireCMS is a content management system (CMS) that is built on top of the Firebase platform. It is a cloud-based system that allows users to manage and publish content to their websites or applications. With FireCMS, users can create and edit pages, upload and manage media files, and manage users and permissions. FireCMS is designed to be easy to use and can be integrated with other Firebase services, such as Firebase Authentication and Firebase Cloud Functions, to provide additional features and functionality.
It generates CRUD views based on your configuration. It is easy to set up for the straight forward cases and easy to extend and customise.
FireCMS does not enforce any data structure on your side, and works out of the box with any project.
The goal of this CMS is to generate collection and form views that bind nicely to the collection/document model. We have built in many basic (and not so basic) use cases; but FireCMS is built with extensibility in mind, so it is easy to create your custom form fields, or your complete views.
There are two ways to build top level views in FireCMS:
- By creating mapping configurations for collections (to datasource collections, such as Firestore collections, with your schema). The best way to get a grasp of how this works is checking the Quickstart and Collections documentation.
- Create custom views that sit in the main level of your navigation tree. In this case you can build your custom React component and make use of the internal components of the CMS as well as the provided hooks. Check Custom top level views for more details
:::note Custom backend
FireCMS was built with Firebase/Firestore as the default backend, but nothing
stops you from implementing your own DataSource
, AuthController
and
StorageSource
and override the default implementations.
:::
FireCMS works as a complete app that is in charge of creating the views that you define based on your collections and entity schemas. It handles navigation for you as well as authentication and login.
However, there is a lot of room to customization, including custom top level views, custom schema views, and custom fields for your entity properties, in case the basic use cases we include don't suit your needs.
In the simplest case, you will want to create some properties, include them in an entity collection, include it in a collection and include that in a CMS instance.