Moving my personal website out of Blogger and Wordpress — why and what replaced it
For quite long, I have been invested in having a portfolio website and over the last few years I tried several options to implement it — from content management systems like Blogger and Wordpress, to custom hosted solution. I wanted to share what worked for me finally and why.
Early days with Blogger
I started writing blogs as early as 2010 while I was an undergraduate, and I started using Blogger. Blogger was very popular that time and had decent engagement as well. My writings through my blog that time was largely on thoughts around socially relevant topics and less tech-based or experience-based articles.
Here is what I lacked with my blog hosted on Blogger:
- Lack of good themes. It didn’t bother me too much as I eventually built my own theme extending over the freely available ones. But even so, the features it supported were severely constrained.
- I wanted to build a good portfolio and I felt having a home-page would be a good idea. But I could find a good way to create this in Blogger.
- [Very] bad user experience. The writing experience was so terrible that I built my own desktop application for writing. But even the API support Blogger provided was inadequate.
This is when I decided to switch to Wordpress.
Experience with Wordpress
Wordpress was way better than Blogger and supported many of my requirements out of the box. I could get a free theme that was reasonably good — I did some customisations using CSS though, create any number of pages as I wished and set of those as my landing page, and even the writing experience was way better. I was content with my Wordpress site, except for one aspect — cost!
I wanted my own domain for my website. To setup my own domain, I had to get a paid plan. Just having the website itself would cost me somewhere between ₹4000 to ₹6000, excluding the cost of domain. For my first renewal, I spent around ₹8000 for one year, including the hosting and the domain. Given that I do not have any tangible income from the website, this was way too much to spent for me.
In addition, there were other minor issues too:
- Customisability — I know this is counter-intuitive, since Wordpress’ main selling point is ability to customise. But for a simple change, I had to work-around a very strict framework.
- Platform support: While Wordpress provides reasonable support to increase the reach and ease engagement, there were platforms like Substack and Medium which were much better at this.
Switch to Medium for blog
Finally I decided to switch to Medium — given its popularity and the user experience. I was deliberating for a while on if I should go with the membership or the free tier and then decided to go with the free tier for the time being, primarily due to the following reasons:
- I do not plan to publish member-only content and thus monetise my articles. Medium requires you to enroll in its partner program in order to monetise the articles.
- While I wanted to setup my custom domain for the blog, this also requires enrolling in the partner program. It would cost me $50 (~₹4000) to sign up as a Medium Member.
- I wanted to try out Medium’s user engagement and reach and do a trial for sometime before I make a purchase.
I decided to defer the decision on if I should enrol as a Medium member, although the amount is still less that what I used to pay for my Wordpress site. In the meanwhile, I set up a redirect of my domain’s blog CNAME (blog.aswin.me) to my medium subdomain (aswinrajeev.medium.com) through RedirectPizza.
All this allowed me to have a better experience writing the blog posts and a nicer feel for the readers as well. Also, I am getting significantly more reach and engagement through Medium. I might avail the Medium membership soon for better engagement and the benefits it offers for a reader, but most of my content would still be freely available.
Finally, the home page
As I mentioned earlier, I was particular about having a personal home page, which Medium does not offer. So I had to figure out something else. Fortunately, GitHub Pages came to the rescue.
I created a React (next.js) based web application for the homepage and hosted it using GitHub pages. GitHub provides free hosting for static websites. I set up complete Full-CD pipeline using GitHub Workflows which would automatically update and deploy my site with every change I make. And then I did the custom domain setup, which pointed my personal domain aswin.me to the GitHub page.
The web application I created contained whatever static content I needed for my personal site — a brief bio, about me, a brief portfolio, ways to contact etc. I could have created the blog also in GitHub Pages using Jekyll, but I preferred the much more streamlined experience with Medium.
One last thing — blog roll
I wanted one last thing — a listing of my recent blog posts. I decided to use Medium RSS feed for this. The web application would basically fetch the Medium feed and construct a blog-roll. But there is a catch — Medium supports fetching RSS feed only from a server, not from the client. Since GitHub does not provide server support, the RSS feed could not be directly fetched from the web application. That was a stalemate! Well, not really. I had two options:
- Set-up a AWS free tier Lambda which would fetch the feed and pass-on to the web application.
- A wilder approach in which the feed would be updated as part of the continuous deployment build process. Will explain this in detail soon.
Option 1 was straightforward , but had a risk of incurring unexpected charges if there is a burst of traffic to the Lambda endpoint (through some bot traffic, for example). So I decided to go with option 2. Remember I mentioned that GitHub supports Full-CD through GitHub workflows? Well that part ought to be handled by the server, right? So I decided to put a small fetch operation during the build which would update the feed content. I would just need to trigger the build-and-deploy once every post is published in medium.
And that completed the last leg of what I needed for my personal website (although the blog roll is still under development and not released yet).
Conclusion
Finally, by simply using Medium as the blogging platform and hosting the my personal portfolio website on GitHub Pages, I could save over ₹5000 per year (I still spend around ₹1500 for the domain though, which in my opinion is justifiable). Also Medium gave a better experience in terms of engagement and overall reader/writer experience.
Hosting the personal website through GitHub pages provided immense customisability and provided a good learning as well — implementing a web applicaiton using React/Next.js and setting up continuous deployment pipelines. A few ongoing development works, like implementation of blog rolls, add some dynamicity to the website and makes it complete.