This website was long overdue for an update. I’m excited to launch v3.0.0 - rewritten from the ground-up using Gatsby! I deployed v2 in 2018. So, what’s new this time around?

Fresh design

While v2 was all about simplicity, this version is all about the pizzazz! I swapped out the minimalist black and white theme in v2 with a bolder colour scheme. v2 was deliberately minimal to emphasise content. At the time, I planned to write more articles, but I’ve failed to maintain a consistent blog. As a result, my website remained dormant and lifeless (more on this later). It didn’t serve any purpose, and it was nothing more than a duplicate LinkedIn profile (sorry, v2)!

Old - v2
New - v3

All new tech stack

I built v2 on Jekyll. While Jekyll is a robust framework, it pales in comparison to the feature-rich JAMstack frameworks that have grown in popularity since 2018. To make matters worse, I couldn’t directly customise or extend my Jekyll site because I’m not a Ruby developer. Gatsby, Next, etc. offer even more capabilities than Jekyll without losing any of that simplistic appeal which made Jekyll so popular in the first place.

I chose Gatsby because I had prior experience with it. It’s incredibly performant and developer-friendly (Gatsby docs are 👌). More importantly, Gatsby offers thousands of high-quality, ready-to-use plugins for every conceivable need - from pre-fetching Google Fonts to automatically generating XML sitemaps and more. When you combine Gatsby’s growing plugin ecosystem with the already massive React ecosystem, you’re only limited by your creativity!

Among other things, I switched from vanilla Markdown to MDX. MDX lets you embed JSX inside your Markdown files. Why does this matter? It allows me to embed rich, interactive elements within my blog posts like the image comparison widget you see above!

Overall, this new stack gives me a lot more control and flexibility than I ever had.


I wrote above that I failed to maintain a consistent blog since the launch of v2. As much as I’d like to write an article every fortnight or at least once a month, I simply can’t. My work and schedule prevent me from being able to write as often as I’d like to.

When I don’t post articles consistently, my website ends up looking dormant and lifeless. To solve this problem, I created the Pensèes page (pensèe definition). It’s a space for me to share quick thoughts on topics that interest me, random ideas (and fragments of ideas), interesting links, book recommendations, quotes, etc.

I was partially inspired by what I came across in this Twitter thread. A lot of people seem to be maintaining digital gardens or personal wikis on their websites. I took this idea and spun it into a mini social stream - only, I have complete control of this stream, and I own all the data.

Pensees page screenshot

I liked the idea of building this page, but I didn’t want to maintain a database of entries or write any server-side code. I wanted my website to be as maintenance-free as possible. To achieve this goal, I built it with Firestore. As you can see from the demo above, I created a page to compose new pensèes that is accessible only after I authenticate myself (using Firebase Auth).

It’s easier and quicker for me to compose new pensèes than it is for me to write elaborate blog posts. This simple system ensures that my website is always fresh, with little-to-no maintenance overhead. The only downside is that you can’t “follow” or “subscribe” to the pensèes page. If you want to read my latest pensèes, you’ll have to keep coming back to my website! 😉

What do you think?

Take a moment to explore the other pages and let me know what you think on Twitter - I’m @palavalli. I enjoyed rebuilding my website. In the process of building it, I got to dig deeper into Gatsby and learn new things. I count that as a win!