Building your blog in 2022
Tags: beginners, blog, javascript, programming
Published: 2022-02-14 14:33:21

In today’s time, blogging has become synonymous with tech. While there are some platforms out there that are amazing for publishing one’s blogs, a lot of people working in the tech industry prefer having their blog and take pride in it.

The blog author could be a grad school student trying to get their first project up and running and they chose a blog or could be an engineer trying to build their brand with exclusive content they want to publish on their blog.

The problem arises when the complexity of the project starts increasing multi-fold as and when the author decides to add more features or updates to their blog website. Similar to this, we at [canonic](https://canonic.dev/?utm_source=devto&utm_medium=organic_article&utm_campaign=feb2-14&utm_content=feb14) too faced this exact problem.

When it comes to blog spaces, the requirements have a wide spectrum over industries/companies.

## Basic requirements for a blog

- **Extremely SEO Friendly** 
It should be extremely SEO-friendly. All the different tags for the OG images and other meta tags should be present. Also, it should be a static website rendered as HTML, instead of a dynamically loading react bundle as that might not load in the time web crawlers are crawling your website.

- **Customizable Designs and Frontend**
Users should have the ability to customize the design to match the brand we want. You may want to add your styling, brand, and customize it according to your requirement. Users should also be able to experiment with different features/or add more features going forward as the requirement comes in.

- **Publishing Experience**
Users should be able to add draft posts, schedule them to get published. Along with that, we should be able to add team members with different permission levels. Rich text highlighting, code snippets, and other required markdown should be supported.


After gathering the above-mentioned requirements, our search for the combination that suited our **MERN stack** began. We compared different combinations to see which one worked best for us.

## Strategies

- **Self Hosted Fullstack Platform (Ex. Ghost/WordPress)**
**Pro:** They’re catering to this very use-case, hence very easy to use and manage. You can quickly get started with your blog. 
**Con:** Customizability will be limited, we’ll have to use their choice of templating library. As we scale, we’ll also have to take into the cost consideration.

- **Headless Self Hosted Backend + static React App (Ex. WordPress + Gatsby / Ghost + NextJS)**
**Pro:** Using React for the frontend fits right in our stack and allows us customizability. We’ll statically build the react and serve the pages as HTML. 
**Con:** Frontend needs to be built with scratch/or we have to take react template already out there and customize it. We also need to set up some sort of trigger that builds the app on publishing content.

- **Headless Hosted CMS + React App (Ex. Contentful + Gatsby / WordPress cloud + NextJS / etc.)**
**Pro:** We’ll be able to manage the backend quite extensively. It gives us the ability to customize and change if anything is required, currently or in the future. 
**Con:** It requires a lot of effort across the board. It might not be the most cost-friendly.

## What we chose:

In the end, we at [Canonic](https://canonic.dev/?utm_source=devto&utm_medium=organic_article&utm_campaign=feb2-14&utm_content=feb14) decided to go with the middle option. We’ll use [Ghost](https://ghost.org/) as the backend for our blog and React app for the frontend. Ghost already has the support for the requirements of a blog with features like scheduled publishing, adding drafts, customizable SEO tags, etc. It also provides you with APIs and Integrations so that integrating with a new frontend or different services becomes incredibly simple. **Ghost is also built on the MERN stack** - making it a good fit for our infrastructure.

The first option makes good sense if you’re not looking for high customizability. You can directly use ghost or WordPress and get started within minutes. They also provide basic customization tools to change color schemes or logos. The last option is good if you’re looking to build your blog structure connected to your other data services.

In the end, you should choose the option that best suits your needs. Consider which option is budget-friendly, least time-consuming, and checks all the boxes.

We would love to know in the comments what are you using for your blog?