---
title: "Introducing Contenta JS"
url: "/articles/introducing-contenta-js"
type: article
date: 2018-07-19
updated: 2023-03-15
---

# Introducing Contenta JS

#  Introducing Contenta JS 

 Until now, each agency had their own Node.js back-end template that they used in every project. There has not been much collaboration. Contenta JS is meant to bring consistency and collaboration.

 By

 [  Mateu AguilÃ³ Bosch   ](/about/mateu-aguilo-bosch) 

 July 19, 2018

  

Though it seems like yesterday, [Contenta CMS got the first stable](https://medium.com/@mateu.aguilo.bosch/contenta-cms-reaches-1-0-27cfcc3c70c6) release more than a year ago. In the meantime, the Contenta CMS team started using Media in core; improved Open API support; provided several fixes for the Schemata module; wrote and introduced JSON RPC; and made plans to transition to the Umami content model from Drupal core. A lot has happened behind the scenes. Iâ&#128;&#153;m inspired to hear of each new instance where [Contenta CMS](https://github.com/contentacms/contenta_jsonapi) is being used both out-of-the-box and as part of a custom [decoupled Drupal architecture](https://www.lullabot.com/resource/decoupled-drupal). Both use cases were primary goals for the project. In many cases, Drupal, and hence Contenta CMS, is only part of the back-end. Most decoupled projects require a [Node.js back-end](https://github.com/contentacms/contentajs#why) proxy to sit between the various front-end consumers and Drupal. That is why we started working on a Node.js starter kit for your [decoupled Drupal projects](https://www.lullabot.com/resource/decoupled-drupal). We call this [**Contenta JS**](https://github.com/contentacms/contentajs).

Until now, each agency had their own Node.js back-end template that they used and evolved in every project. There has not been much collaboration in this space. **Contenta JS** is meant to bring consistency and collaborationâ&#128;&#148;a set of common practices so agencies can focus on creating the best software possible with Node.js, just like we do with Drupal. Through this collaboration, we will be able to get features that we need in every project, for free. Today **Contenta JS** already comes with many of these features:

- Automatic integration with the API exposed by your Contenta CMS install. Just provide the URL of the site and everything is taken care of for you. 
    - JSON API integration.
    - JSON RPC integration.
    - Subrequests integration.
    - Open API integration.
- Multi-threaded Node.js server that takes advantage of all the cores of the serverâ&#128;&#153;s CPU.
- A Subrequests server for request aggregation. Learn more about [subrequests](https://github.com/contentacms/contentajs/blob/master/docs/subrequests.md).
- A [Redis](https://redis.io/) integration via the optional [@contentacms/redis](https://github.com/contentacms/contentajsRedis).
- Type safe development environment using [Flow](https://flow.org/).
- [Configurable CORS](https://github.com/contentacms/contentajs/blob/master/config/default.yml#L66-L85).

   

   

 ![Diagram of Contenta JS](/sites/default/files/styles/wide_xs/public/assets/2018-07/s_9c6efb25c38ffe2eee4263f56712cd754a85b31a07f2f90a3e1e7cefd5ceedcb_1531762042830_contentacms-node.png.webp?itok=FxoPgUUG "Diagram of Contenta JS") Diagram of Contenta JS

Watch the introduction video for **Contenta JS** (6 minutes).

Combining the communityâ&#128;&#153;s efforts, we can come up with new modules that do things like *React server-side rendering with one command*, or *a Drupal API customizer*, or *aggregate multiple services in a pluggable way*, etc.

Join the [\#contenta](https://drupal.slack.com/messages/C5A70F7D1) Slack channel if this is something you are passionate about and want to collaborate on it. You can also create an issue (or a PR!) in the [GitHub project](https://github.com/contentacms/contentajs). Together, we can make a holistic [decoupled Drupal backend](https://www.lullabot.com/resource/decoupled-drupal) from start to end.

*Originally published at [humanbits.es](https://mateuaguilo.com/web-development/2018/07/16/contentajs) on July 16, 2018.*

 Published in:

- [  Community   ](/topics/community)
- [  Decoupled Drupal   ](/topics/decoupled-drupal)
- [  Drupal Development   ](/topics/drupal-development)
- [  JavaScript   ](/topics/javascript)

 

   You must have JavaScript enabled to use this form.

## Get in touch with us

### Tell us about your project. We'd love to hear from you!

 First Name  

 Last Name  

 Your email address  

 Your organization  

 How you heard about us  

 Tell us more 

     Leave this field blank