Story Behind this Website (bit technical).

Long story short, there are two reasons for this website.

  1. I wanted a central hub for all the things that I do. I wanted the ultimate control of how it should look and feel. I wanted a place where people could go to and see not only my best highlights but also my failures and what I learnt from them.
  2. I love making stuff and wanted to make a site.

When I started to learn web development, I wanted to make a portfolio site for myself. I started making that site mid 2019. I put what I knew at the time to the limits.

Initially I had worked a bit with Google Firebase Ecosystem. For those who don't know, Firebase is a set of tools that Google provides for developers to make websites and apps easily without much hassle. Also firebase provides a nice free package to test and learn the tools. That free quota was the thing that pulled me into Firebase the first place.

At the time, I didn't know any JavaScript Frameworks so I stuck with plain old HTML, CSS with basic JavaScript. Even though I was new to this stuff, the level of features that I wanted on the site was top notch.

One of the major requirement for me was that site should be SEO friendly. Since I wanted to host it on Firebase, I went into looking to Server side Rendering (SSR) using Firebase Functions. Now for those who know SSR, this is no place for Noob to roam around. :D But I didn't know what I was getting into.

An Outline of My Initial Plan HTML and CSS frontend supported by Bootstrap 4. Hosted in Firebase Functions to provide SSR and Firebase Realtime Database to provide the data for the blog.

Firebase Functions was in Node.js so I learnt a bit of Node for that project. But I didn't know about server side templating and wrote the dynamic content as string within the functions to provide HTML dynamically.

I made the whole site I was very happy with it too. I hosted it as I planned. Many people liked it and congratulated me for the effort.

But after sometime I noticed something. The Firebase Functions quota for calls within each second was limited. It provided very limited calls per second. (Now it is possible to deliver content through CDN from Firebase Functions. I didn't know that then.) So my site was not being delivered as I expected. Also I wanted to change things around a bit make things more beautiful. Since I was using HTML strings in Node.js, it was very difficult to manage that code.

This is why I decided to make a new website with better management of these things and to take better decisions while making the site as a whole. I have used Gatsby to make this site and deployed using free hosting in Netlify. I am happy on how this site turned out to be.

Present Stack Frontend: Gatsby Media and data queries within the repo: GraphQL (since it is built into Gatsby) Data: Netlify CMS and Markdown in Repo

Keep it Simple. :D

Hope it was useful at least some of you. Thank you for reading.