Hi, and welcome to my very first blog post.
Considering I spent a lot of time on making this website, I thought it would be only fair to talk a little bit about it and the process of making it. It'll probably be a big post, so feel free to just skim through it.
First up, let's address the "What?"
What is this? It's a personal website and a blog, made to tell a bit more about me and to act as a place where I bare all my thoughts and ideas.
Next up, the "Why?"
Simply enough, I felt there was a need for a website to amplify my online presence. I needed a place to collate information about myself, and while a LinkedIn profile manages to do that very well, I felt I needed something a little more personal.
Moreover, I was in a desperate need for a place to express myself and my twisted thinking, and felt a blog was the best solution. In fact, at first, I didn't feel like having a full-fledged website and was content with an ugly one page website with links to my accounts on other websites, however, after feeling the need for a blog and being dissatisfied with the different publishing platforms available (Medium, Wordpress, etc) , it became clear that what I required was a proper personal website, along with a nice blog and the whole shebang.
Side Note: I used to have a Wordpress blog which existed only to write blogging tasks for GCI 2015. It had three posts - Two technical how-tos about some technology, which are probably better explained else where on the internet and a poorly-written "What I gained from Open-Source" kind of thing, something I definitely plan to pick up and do justice to very soon.
Now, for the "How?" part. I've divided the whole process into three parts -
1. The design
The website is practically an edited version of this theme graciously provided under a CC3 license. The reason for using a theme over making one was as simple as it could be - to get professional looking work and an aesthetic design as quickly as possible and focus on more important aspects of making a website + blog. I guess, given enough time, I too could have made a decent design too with my limited front-end skills, but it definitely wouldn't have looked as good as one from a much experienced front-end developer. Using this gave me the freedom to take out the parts I felt were unnecessary or "a bit too much" and changed the looks of things I felt could be better or maybe that expressed me a bit better. The final result is right in front of you - a nice, responsive website design that can express me just fine.
2. The works
This is where it gets interesting.
The question that ultimately came up was how to make a static website usable in a ways of a blog - something that would be updated on a regular basis and would have a lot of different pages and content. Should I have a proper backend, allowing me to render blogposts from a database and generate links on the fly using inbuilt templating engines and such ? Should I have a simple static website where I make each web page for each of the blog posts and then edit the blog index and add pagination and etc all by hand ? Hell NO, I wasn't gonna waste a lot of my time on that. Blogging should be something that should feel like fun to do, not like a task.
I was initially gonna settle for a Flask app, allowing me to have a proper CMS kind of a feel and stuff, with better URL management, blog pagination, ability to have a nice page serving and other stuff like that. But that was gonna cost me a few bucks a month, which as a student, I really don't have enough to spare. Sure, I could use free hosting services like Heroku, but most of them require the app to sleep after some inactivity period, and I was not gonna have someone wait while trying to visit my website. Plus, I felt a Flask app was a bit too much for a personal website. Static hosting is simpler, easier, quicker and a lot less messier.
But even then, the whole problem of writing all the pages still existed.