loading...
Cover image for Developing Backend Made Easy!

Developing Backend Made Easy!

sasidharan profile image Sasidharan ・2 min read

Are you thinking of creating a content providing backend for your project?

πŸ§‘β€πŸ’» : Yes!

Gonna do it for yourself from scratch?

πŸ§‘β€πŸ’» : Yes. Planned to do so.

Before that let me suggest a guy, strapi.

Strapi is the leading open-source headless CMS. It’s 100% Javascript, fully customizable, and developer-first.

What actually a headless content management system means?

Its a perfectly separated backend application developed from scratch for content delivery through REST APIs. Simply, it is a content repository that comes with an admin panel to add content and it can be displayed in frontend over RESTful APIs.

Why we need headless CMS?

  • Web and mobile applications can be served with your content.
  • Build any website using your familiar technology.
  • Use REST APIs to communicate with your content.
  • Create your content with a pre-built user interface.
  • Now, most of the CMS supports GraphQL queries which can be used to queries your data from Frontend applications such as React, Vue, Angular, etc.

Why Strapi?

  • Open source and free forever.
  • Easy to create, update, and manage content.
  • Supports GraphQL.
  • Select the database of your choice (SQLite, MySql, Postgres, MongoDB).
  • Easy one-click deployment.

Sounds easy right?

πŸ§‘β€πŸ’» : Yep! But how to do that?


Step 1

Package manager of your choice. I am using yarn in this example.

yarn create strapi-app my-project --quickstart

Note: Here, --quickstart flag will create a strapi-app with SQLite database. You can skip the flag if you need to change a specific database.

While creating a project it will expose you to admin panel, else navigate to http://localhost:1337/admin

Alt Text

  • Complete the form to create the first Administrator user.
  • Click Ready to start.

Alt Text

Step 2

That's it. You have created your own backend Node application in minutes.

Now, create your new collection/table in the Content-types builder tab,

Alt Text

with all your required columns/fields.

Alt Text

Step 3

After creating content type with its required fields, the created one will be shown in the sidebar under collections, select and add your content as,

Alt Text

Save it.

Step 4

Navigate to Roles & Permissions -> Public, you can see your APIs created.

Boom!!!

Alt Text

To view it in browser, make it public.

Alt Text

You can also add authentication to your APIs, allow public access, and so on.

Now we have created our headless CMS in just a few steps. You can simply use this REST API in your frontend mobile, web application using HTTP client or GraphQL queries.

Refer Strapi Official Documentation for more - https://strapi.io/documentation/v3.x/getting-started/introduction.html

πŸ§‘β€πŸ’» : Will try that out and let you know how cool it is in the comment. Bye!

Thanks.

Posted on by:

sasidharan profile

Sasidharan

@sasidharan

Technophile πŸ§‘πŸ»β€πŸ’»

Discussion

markdown guide
 
 

I still don't get why would I need it, why not just writing a schema directly in a JavaScript file. But then, REST API might not be standardized.

In reality, I used to write my own CMS, but now I go flat file.

My opinion is, I don't really want to design a schema, but headless CMS does allows flexibility of the frontend side, but freedom can also be a burden.

Also, does headless CMS need a GUI? Will the GUI be done right, or will it have learning curve as well? (Who said only coding has learning curve? GUI also has learning curve...)

 

If it's a personal project a developer should take their time building their back-end and front-end.. for work if the client doesn't have a good enough budget then what the heck!. Go for it

 

In my experience, self brew projects always have maintenance costs. Still, it is good for learning.

 
 

Is there a standard plugin to manage data migration and schema? I couldn't find any and that's stopping me from using this in production.

 
 

It's like a lite version of jhipster

 

I like Strapi but, I am currently using webiny

 

How's your experience on webiny?