Reflecting on building my personal site from scratch, in my spare time, over the past couple of months.
๐ This article was originally posted on my site, MihaiBojin.com. ๐
A couple of months ago, I set out on a journey to build a personal site from scratch. If youโre curious, I wrote about my motivation at the start.
One of my goals was to build and host my site for free (well, mostly free anyway).
I initially wanted to use a hosted service such as Medium or Substack, but I was swayed by listening to many other creators; owning your content is the way to go!
Here are the necessary components, in my opinion, for a developer blog (in 2021):
Web domain
๐ธ in my case, MihaiBojin.com โ cost: ~$12/year
Fast frontend, e.g., GatsbyJS
๐ JAMstack has become the de-facto choice for content websites
โบ support for SSG
โฌ content rendering with Markdown
๐ good out-of-the-box SEO
๐ผ RSS feed generation
๐บ sitemap generation
โก๏ธ Accelerated Mobile Pages support (via plugins)
Cloud hosting solution
I chose Gatsby Cloud โ cost: ๐
Decent UI
โต๏ธ Iโm not a designer, so I settled for buying TailwindUI โ cost: 250โฌ (lifetime purchase)
CI/CD pipeline
๐ข Iโm hosting my code on GitHub
๐ช and triggering builds using a webhook that sends events to gatsbyjs.com
Ability to send newsletters
๐ง I integrated ConvertKit โ cost ๐ for up to 1,000 subscribers
Analytics and SEO
๐ง I set up Google Analytics โ cost: ๐
๐ Google Search Console โ cost: ๐
๐ฆ and Ilo.so for Twitter โ cost: $15.00/month
Content syndication
๐ฌ I cross-post to Dev.to (using RSS)
Social posts
๐ฑ I schedule social posts using Missinglettr โ cost: $19.00/month
Total monthly cost: $35.00/month.
It took me a few months of working in my spare time to get here. Itโs not perfect, but itโs a good start that enables me to write and publish content that I own 100%.
My initial plan was to write about Software Engineering. However, I started having fun while learning GatsbyJS, GraphQL, and refreshing my Javascript/React skills.
So I took a slight detour and wrote about building my site, building in public.
While I like what I achieved with Gatsby, I found myself fighting it while trying to achieve various outcomes. Also, some of the promises it makes are downright false; one such example is support for โก๏ธ AMP. This should be achievable through a third-party plugin, but in my experience, that plugin is challenging to work with.
This leads me to my โnextโ adventure (pun intended) โ the second version of my site!
I have been looking with great interest at NextJS 11. Friends tell me itโs โthe wayโ to do React nowadays. It has all of Gatsbyโs capabilities and more. But most importantly โ it relies much more on vanilla JS/TS instead of custom (and mostly unmaintained) GatsbyJS plugins.
I donโt know when Iโll have time to start this project; I expect it wonโt be any time soon.
For now, my current stack works and allows me to focus on what really matters โ my content. But I canโt shake the feeling that my code is getting messier by the dayโฆ
If you liked this article and want to read more like it, please subscribe to my newsletter; I send one out every few weeks!