(This article, co-authored with members of the Contenta community, was cross-posted from Medium. Contenta is a community project that some Lullabots are actively contributing to)
Contenta is a Drupal distribution that gives you modern API capabilities out-of-the-box with JSON API, which amongst other features allows you to fetch nested resources in one request, and plans to include a similar GraphQL service soon. It’s ready to feed content to your JavaScript-powered website, phone app, TV, or even the mythical fridge application.
Drupal is a leading content management system when it comes to building smart editorial experiences and modeling complex content, but the front-end needs of consumers have evolved rapidly away from traditional server-side rendered sites. From powering a single application, to multi-channel publishing, Contenta provides all the tools and configuration you need to get started with your Create Once, Publish Everywhere CMS.
With Contenta, you can either start with a minimal blank slate, or try out our demo install which shows you how to solve some of the different problems encountered when developing and building a decoupled application. The demo install also provides many reference implementations of consumers in popular frameworks such as React, Angular, Elm, Ionic, and even an Alexa skill!
(Thanks Sally Young for this summary)
The longer story
It’s 2013 and I’m sitting in a big auditorium watching Lin Clark and Klaus Purer talk about the ongoing effort to expose Drupal 8’s content as a REST server. I am so inspired by their talk that I decide to help out on a sprint. I sit at Klaus’ table but never ask him how can I help? I don’t want to bother him while he is working. He doesn't even know I want to collaborate.
This idea of exposing Drupal’s content and allowing 3rd parties to access the data continues to grow in my head.
Fast forward to the future.
- I get involved with Amitai Burstein on the RESTful module for Drupal 7.
- I work on a succession of decoupled projects for clients.
- I decide to contribute to Drupal 8 an ecosystem of modules for decoupled Drupal, based on my experience with real projects.
- As the API-First initiative co-coordinator (tag teaming with Wim Leers), I foster the conversation for an API-first distribution openly. We call it Contenta.
- I get to work with some other humans on Contenta.
Contenta CMS
Decoupled Drupal allows people outside of the Drupal community to build applications leveraging the best CMS in existence. In theory, you don’t need to be a Drupal developer or understand much of Drupal, or to build an Ember application powered by Drupal on the back-end.
Still, it is difficult to start from scratch and put together a Drupal site that can be used as a decoupled back-end. You need to understand many drupalisms. You need to know what modules are out there. You need to know which ones are stable and usable. You need to know enough about decoupled back-ends to setup a system that can perform the tasks your project needs. In summary, either you already use Drupal or you are not likely to use decoupled Drupal soon.
Those are the problems that Contenta wants to solve.
We know how complex it can be to set up decoupled Drupal. In fact Contenta is built by the people that built JSON API, Simple OAuth, Subrequests, Docson, Drupal core, etc. That is why we made sure that the first thing we did was provide a quick installer that gives you:
- The collection of modules you will likely need, instead of you having to research amongst the billions of Drupal modules out there.
- Demo content to start testing right away that can be reverted with one click.
Here is the first quick installer we released:
The demo applications
Even if the back-end is exciting, the most exciting part is the number of demo applications that we are working on.
We decided that we wanted to be able to showcase decoupled Drupal very easily to that undecided CTO, or to that stakeholder that heard that Drupal is not the modern way. For that we needed something more complex than a Todo app. That’s why the Contenta team coordinated with the Out of the Box Experience Initiative to build the same product they wanted to build. They also want to show to the world what Drupal can do in a real life project.
Today Contenta facilitates an API with high-quality structured content for a recipe magazine and exposes that data to more than six different projects. Each project builds the same recipe magazine application based on the same wireframes that the Out of the Box Experience Initiative used.
Imagine Mercè, an Angular developer today. She knows nothing about Drupal but she needs a backend for her app. She can just install Contenta (with one command) and check the (amazing) work Matt Davis and Joao Garin are doing. She can get a BIG jumpstart.
Imagine Masato, he likes working with React. Basing his work on the–state of the art–example that Sally Young has been perfecting, he can be more productive than ever.
It’s all about the people we are helping. Come and thank the people helping them.
Come and help
We have an open collaboration model. Everything is open to everyone for discussion. Even the weekly API-First meetings—the open forum where we meet—are recorded so other people can be part of the conversation.
We still need help gathering documentation resources about decoupled Drupal for the Knowledge Hub. Do you know any? Suggest a tutorial!
If you want to jump right in, grab an issue in GitHub.
We hang out in the #contenta channel in the Drupal Slack. Come and say hi. Someone will greet you and ask you if you want to collaborate or just be a part of the conversation. Don’t be me in Prague. We want to help you to help the community.