Visit my blog here. If you see everything working fine, then I must have done everything that I wanted to do for my site. If not, that means, I have procrastinated working on the blog, like every other side project that I started earlier.
Why do I need a blog?
Yes. I do have hashnode. I can write awesome articles with ease and publish everything into a beautifully pre-designed website. Hashnode is making life easier for me. But who likes it when everything comes easy? Definitely not me.
I wanted to build something completely to my taste. The blog should reflect, who I am and what I do before even someone starts reading my "about" section. I am not just my work. I always wanted to write more about my rants, political opinions, poems, and my 2 cents on random stuff. But I always faced one issue or another with building, structuring, or hosting my blog. So I made some decisions which I really hope work well.
For my tech articles related to my work, I am still going to utilize hashnode. It creates less friction and thus it will encourage me to write more.
Previously I was using React to build the front-end components. Now I am migrating the code to NextJS. More on this, later.
For hosting, I am still going to be using GitHub pages. As it offers free hosting and an SSL (I am not a web dev. So I have no idea how this works)
I am someone who never liked to use UI helper packages like bootstrap. I always loved to play with CSS components. I am still this guy. So no no for UI components.
What about the backend?
This is where this whole rebuilding of the blog gets interesting. I was on the constant lookout for a perfect CMS that will help me with my requirements. The CMS that satisfies my requirement, comes with high pricing. If it is free, it doesn't have the features that I want. I was exploring strapi.js for some time, and it was pretty great as far as I looked into it. But now, that I have hashnode for my tech blog, all I need to worry about is my personal blog which I update rarely. That is when I learned a bit about MDX
What is MDX?
We all know what Markdown is. Simply put, a text-to-HTML conversion tool. So what is MDX then? MDX lets you embed components directly from your markup. You can add custom view JSX components when rendering your Markdown file. This way, when we fetch a file written in markdown, for each component (heading1, italic, code) we can use individual CSS styling. It provides even more options like passing parameters from the JS component to the MDX for custom .md generation. More on this in later articles.
Where will be the MDX files hosted?
That is something I am yet to decide. I can easily keep the files in the source code. And every time I wanted to add a new article, all I have to do is, add a new file to a folder and push the changes. But I am afraid, this creates friction and I will get too lazy to write anything. So, please let me know if you know of any platform that lets us host MDX files and also provides an option to edit the file right away online. For free, obviously.
Is it open-source and built-in public?
Since I am going to use Github pages for hosting, it is obviously going to be open source. But whether or not I am going to build the whole site in public is based on whether or not I have the energy to write everything about what I did. But I assure you, I will write about the problems I faced or about interesting things I learned in the process.