5 Free Perfect Headless CMS for JS Developers
Tags: cms, javascript, opensource, node
Published: 2022-02-16 05:02:13

### Why headless CMS?
Let us look at some of the benefits of headless CMS:

- **Flexibility:** transitional CMS is very limiting and can be frustrating. Using a headless CMS will allow you to design your front end. Moreover, it comes with a well-defined API, thus, allocating more time to creating content rather than managing it.
- **Compatible**: You will able to publish the content to any smart device while the backend can be controlled from one device.
- **Secured**: As the Content publishing environment isn’t accessible from the database, using this will prevent malware attacks.
- **Scalable**: since the front end and back end are separated, there is no separate time needed for maintenance. This allows you to customize your website anytime without having to compromise the performance.



- **Control**: It does not have any rules and gives the developer complete control. The developer will be able to integrate with any codebase and use any preferred language of their choice.

Here is small explanation by:  Kontent by Kentico.
{% youtube U5_H9cD17gA %}

Now that we know what a headless CMS is, let us look at some of the headless CMS available in the market.


### 5- [Ghost CMS](https://github.com/TryGhost/Ghost)

Ghost is a powerful app for new-media creators to publish, share, and grow a business around their content. It comes with modern tools to build a website, publish content, send newsletters & offer paid subscriptions to members.


![Ghost CMS](https://ghost.org/images/home/post-list/post-list-1600.png)

### 4- [Keystone Js](https://keystonejs.com/)

KeystoneJS is a generic content management framework, meaning that it can be used for developing a variety of web applications using Javascript. It is especially suitable for developing large-scale applications such as portals, forums, content management systems (CMS), e-commerce projects and RESTful Web services because of its modular architecture and clean separation of various functionality.


![IKeystoneJS is a generic content management framework](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sjvcrs2b5gdxif1no6nh.png)


### 3- [Netlify CMS](https://www.netlifycms.org/)

Netlify CMS is an open source content management system for your Git workflow that enables you to provide editors with a friendly UI and intuitive workflows. You can use it with any static site generator to create faster, more flexible web projects. Content is stored in your Git repository alongside your code for easier versioning, multi-channel publishing, and the option to handle content updates directly in Git.

At its core, Netlify CMS is an open-source React app that acts as a wrapper for the Git workflow, using the GitHub, GitLab, or Bitbucket API. This provides many advantages, including:

- **Fast**, web-based UI: With rich-text editing, real-time preview, and drag-and-drop media uploads.
- **Platform agnostic:** Works with most static site generators.
- **Easy installation:** Add two files to your site and hook up the backend by including those files in your build process or linking to our Content Delivery Network (CDN).
- **Modern authentication**: Using GitHub, GitLab, or Bitbucket and JSON web tokens.
- **Flexible content types:** Specify an unlimited number of content types with custom fields.
- **Fully extensible:** Create custom-styled previews, UI widgets, and editor plugins.


{% youtube p6h-rYSVX90 %}


### 2- [Strapi Js](https://strapi.io/)

Strapi is an opensource CMS intended to be transparent and striving to be a perfect balance between a CMS, framework, and an automation tool to speed-up back-end development and management.

- **Multi-databases support**, SQLite, MySQL, Postgres are supported, you just have to pick one of your choice
- **GraphQL or RESTful:** Consume the API from any client (React,
Vue, Angular), mobile apps or even IoT, using REST or GraphQL.
- **100% Javascript** One language fits all. Use JavaScript from
front to back.
- **Internationalization**: Create multilingual websites or apps. Localize content by translating the text and adapting the messaging & structure of the page to each version.
- **Flexible content management:** Build any type of category,
section, format or flow to adapt to your needs.
- **SEO optimized:** Easily manage your SEO metadata with a 
 repeatable field and use our Media Library to add captions, notes, and custom filenames to optimize the SEO of media assets.

![Strapi Js](https://raw.githubusercontent.com/strapi/strapi/0bcebf77b37182fe021cb59cc19be8f5db4a18ac/public/assets/administration_panel.png)

### 1- [Directus Js](https://directus.io/)

Directus is an open-source CMS, that is excellent for projects that require customized databases.

{% youtube xDsn4ChMmD4 %}

- Extremely simple to manage your content with an interface that requires no training.
- It stays up-to-date by pulling whatever is required from the database. It is as comfortable as entering credentials.
- It is fully decomposed and extensible.
Directus adds the feature of uploading and managing files; 
- databases do not typically handle files.
- Writing comments or a note at certain times is useful. Directus comment features prove to be very functional.
- All activity within directus is tracked, and rollbacks are possible. Hence, you never lose data.
- Strong Accountability


![Directus is an open-source CMS](https://directus.io/assets/img/homepage-hero.svg)



## Conclusion

I personally Prefer Directus although i used all of them personally. Directus is much simpler to extend and has lots of features that other free cms's missing like Accountability and reverting to prev stage. But we can do that with other cms too though will take more time to build these. 

However since strapi v4 and Keystone 6 arrives recently that are great too and now much more stable and efficient. So it's really hard to suggest only one solution it's really upto you to test them out personally and choose based on your experience :)

P.S: if you know any other great CMS that is free please mention in comment