How I'm building this website 🛠
I recently found that I'm using a bunch of dependencies to build this website, and so in order to better understand what we have under the hood, I wanted to do some cataloging.
- Hosting: Vercel (opens in a new tab) (free, hobby plan)
- Version control: GitHub (opens in a new tab) (free plan)
- Static site generator framework: Nextra (opens in a new tab) with the Blog Theme (opens in a new tab)
- Why: write blog posts in MDX (opens in a new tab)
- Web development framework: Next.js (opens in a new tab), which itself works on top of React (opens in a new tab)
- Design system/component library: Chakra UI (opens in a new tab)
- Code editor: Visual Studio Code (opens in a new tab)
I'm not using TypeScript (opens in a new tab) because I like to keep things simple here. In all seriousness, I'm doing this for fun and to learn a thing or two.
The previous version of my site involved editing .html files (containing inline css, js w/ jQuery) over SFTP to a $5/month DigitalOcean droplet.
Overall, I'm not paying ongoing tooling costs right now which is cool too.
There are some near-term changes I can see coming up for this site.
For starters, I can already see a few cases where having a database would be convenient for pushing and caching data, without having the site rebuild.
I currently push a
constants.js file for a few things, but there are a few additional data integrations I'm interested in making that would benefit from a different persistence model. If I do this, I will likely use Upstash's Redis (opens in a new tab) product which has a sufficient, free plan as well.
As well, I'd like to customize some of the blog behaviour in Nextra, but with Nextra's v2 in beta (opens in a new tab) that looks to be getting close to release, I'd rather hold off on forking anything or customizing. And the reality is that I might just switch off Nextra entirely if I have enough to customize and the direction of Nextra doesn't match my growing requirements.
Fortunately, most of the effort on this site so far is quite portable, as I've mostly been writing React components and MDX so I could likely switch to something like next-mdx-remote (opens in a new tab) without having to lose anything I've written so far (just adding some of the layout and mdx loading functionality I got for free from Nextra).
And ultimately part of the enjoyment of building this website is in experimenting with new tech, so I don't mind the dynamicism.
Looking for more posts?
My Monthly 4-1-1
Tech-centric newsletter with 4 thoughts, 1 personal win, and 1 hack