This post will try to paint the big picture of building this blog-centric website. The post will go over the motivation behind building it (why), the technologies/services used to build and host it (how), and the thematic intention behind the final product (what).
The Motivation (Why)
Truth be told, I wanted to have my blog for many years. The reasons to have one had been changing but the intent to have one hadn’t changed. My current motivation is to share the new concepts I have been learning at or outside work, and to talk about certain political, cultural topics that interest me. I decided to have a website that’s blog-centric, so that I can personalize or customize the way I see fit.
The Building Blocks (How)
Given that I was going for a blog-centric website, I figured I won’t have any kind of dynamic content to serve. Plus, I needed something that’s scalable, that could deflect Reddit’s hug-of-death without costing me a big bill or going down. Static site made perfect sense for my use case. There are some amazing static website generators that aid the process of building a static site by removing most of the process’ flaws. One of the key issues with developing a static site is having to make arduous design updates, as each page is a separate HTML file, and having to change a component present in every page such as navigation/menu bar means having to make a change to every HTML page. But with static site generators such as Jekyll, the need for code block repetition for HTML or CSS is barely required. Static site generators also have some kind of templating engine to help you focus on content as plain-text or images rather than as building blocks of an HTML page. I went with Jekyll because the documentation is top-notch, it is supported by GitHub Pages, and it is supported on macOS. However, there are other great options such as Hugo, which is known for its faster build times and is officially supported on Windows. I used JetBrain’s WebStorm to put this together and
brew for any kind of package installation that was needed for development. The website is currently deployed using Amazon AWS’ services - S3, Route 53, CloudFront and SES. I have to specifically mention that CloudFront lets you have custom SSL certificates for free, which means end-to-end encrypted data and no scope for MITM attack (which is an overkill for this website, as it doesn’t handle vital information that needs to be secure such as account login or payment processing). Finally, I used s3_website for deployment.
The Final Product (What)
CRVTR, which is curvature without the vowels, was initially a placeholder for the site’s name. I hadn’t figured a name when I began to work on the site but was reading about tangents and curvature so I rolled with what I had. Later, I found the geometric definition of the word metaphorically suitable. If each topic’s most agreed upon version is considered to be a straight line, I would hope the posts that are meant to be technical have (close to) zero curvature, which need not be the case for the non-technical ones. 😄
I am a fan of utilitarianism and minimalism . I am not a fan of finding a hamburger menu button on a desktop web page for the sake of making things look minimal and I am certainly not a fan of finding extraneous details set persistent across various pages, such as contact information, a feature I had noticed on various blog sites. I decided to have pages in addition to the blog page because as a general user I never found different types of information crammed into one page appealing. My experience motivated me to have dedicated pages for details about me or to contact me, that were customized per respective page’s purpose. The contact page is meant to be more casual and quirky, for a personable vibe, like the landing page while the about page is more minimal, to focus more on the content, like the blog page.
Building this has been a wonderful learning experience. I have realized how certain elements for the front end can really be a pain in the butt even though the outcome might seem simple, especially when they need to be responsive. However, coming from an electrical engineering background, it was a great joy to be able to test things right away and to find minimal deviation between the development and production forms, at least for this project. I am sure the face and form of this website will evolve with time, but I feel like it’s at a good starting point.