My experiments with Headless CMS, GraphQL and Angular9 — Part 1

Mukesh Jayaram
2 min readJun 16, 2020

--

I wanted to do something different for a while and sometime ago ( more than 4 years) I did use KeystoneJS (3.* version) with some success in an experimental project. I went for the solution since I was the only one developing a full application for real estate management and I had plenty of tasks at hand at my work. The experience was really good for me since that was my first experience with a Node based CMS and also I had explored Heroku and MongoDB for the first time. Currently KeystoneJS have come on leaps and bounds with Rest End points, GraphQL integration and connectors to MongoDB and PostgreSQL. Just on exploring further I happened to read about Strapi. This time I wanted to check this out and develop a small scale e-commerce project (personal and experimental). So I had the following things in mind:

  1. Minimum cost at least until it happens to get traction which is remote since this was more like an exploration event, means Heroku for server and PostgreSQL for DB (free add-on) and Mailjet as email service (again free add on with a free tier with up to 200 emails a day and 6000 a month).
  2. Ability to migrate to any database without much fuss.
  3. Ability to decouple APIs and client layer, if Restful then perfect. Strapi generates you default routes (POST, GET (all and one), PUT, DELETE) for any collection you create. You can also create your end-points and also modify and insert business logic to any of the default routes too.
  4. Great to have would be to integrate GraphQL, the advantages of this is well documented and an article in itself.
  5. Easy admin interface creation and management of data.
  6. Easy management of Roles and Permissions.
  7. OAuth integration.
  8. Easy UI creation, and hence went for NG-Zorro, since they have a large array of components to choose from and seemed interesting

Considering all the above factors I picked Strapi above others, since I could see a burgeoning community here. Also I picked Angular 9 for the client layer, since that is a familiar territory due to my work at CareStack. In the next series I would be covering the initial set up steps and things to keep in mind. I am planning this to be a 3 part series:

  1. Introduction (which is this article)
  2. Initial set up and development ( I will provide linkage once I publish)
  3. Deploy and Prod ( I will provide linkage once I publish)

It might take a while since we are having some major upcoming releases at work, but WFH which means less time spent on travels, trips etc. I should be able to squeeze in some time and energy for this learning. These are things I would be able to use at work as well and should eventually contribute positively towards any interesting SaaS products you end up building in your career.

--

--

Mukesh Jayaram
Mukesh Jayaram

Written by Mukesh Jayaram

Traveler, Football lover, Developer, Music lover

No responses yet