Back to Home

Welcome to the new ezb.sh!
It's more than just a fresh coat of paint
Written by ezb
react
frontend
Welcome to the new ezb.sh! I've been working on this redesign on and off for a couple of weeks, and I'm so glad to finally see it all come together.
About a year and a half ago, I was looking for a simple option to start my blog. I didn't want to build it from scratch right away, but I looked specifically NextJS options - in the event I wanted to customize or mess about under the hood, I would be in my comfort zone.
I was scrolling through some samples on Vercel when Nextra caught my eye, specifically because it used Markdown. I love writing in Markdown. I've been communicating in the format almost exclusively since sophomore year of high-school. Discord had just become the thing that would replace Skype at the time, and I still use it as my primary form of communication with my friends. My professional communications are done through Slack, so even at work I am using Markdown to convey information or express emotion. It should be no surprise that Nextra was a quick hit for me, since I could simply plop some Markdown files in a folder and have it rendered in a simple but beautiful way. However, I eventually want to host my own music content and (potentially) video games on this site, and I did not want to spend time monkey-patching an existing theme. I wanted to do it myself!
What's up front?
I had a lot of fun building Pickle with Mantine. It's been almost a year since I made Pickle, and Mantine has only gotten better since then. It has been a wonderful experience developing with it and I will likely continue to use it for future projects. This website is built using Mantine. So far my only theme overrides are setting the default radius to "medium" and replacing the default typeface - Open Sans - with Inter.
To briefly touch on the specifics - blog content is rendered using
react-markdown
, with prism-react-renderer
powering the syntax highlighting within code blocks. This is a pretty standard combo and I recommend it for your own blogs since they are very customizable. I've configured the Markdown renderer to use Mantine's components instead of the default HTML elements, which makes the content fit wonderfully within the site....and in the back?
I used this site as a way to learn the different forms of static generation that NextJS offers. At the time of writing, the source Markdown files are stored in a GitHub repository, just like before. As such, the site is fully static - new posts/edits are done by a Git commit that triggers Vercel to rebuild from source. It won't be until I utilize a remote host for my post content that I can fully utilize NextJS for it's incremental static regeneration functionality. I've been eyeing Supabase as a hosting option. I've used services like Firebase before but the prospect of having a PostgreSQL database at my disposal is enticing. In the end, it won't particularly matter which backend I choose thanks to the power of the service/repo pattern (thanks Dave!).
Closing thoughts
This redevelopment process has been very cathartic to me. I recently graduated from university and made the switch to full-time software development. The change has been great, and I love doing what I do full-time, but the responsibilities scaled propotionally to the hours gained. The nature of my work is dynamic web services, so I regularly am building tons of scaffolding for each feature so that it can work in the various edge use-cases. When I began this redesign, be it by naievity or being on autopilot, I reached for the same design patterns.
I ended up with, I kid you not, five Yarn workspaces powering this website at one point. Albeit, one was for a web editor experiment I was playing with, and I guess you could say the structure did help with that. But, I hesitated to launch the version in that configuration. For weeks, I had this thing ready but I didn't hit deploy even though it would have worked.
Why? I felt like I was counting down to launch an Estes on Launchpad 39A. I hadn't even written 3 posts and the weight of my technical decisions was already too heavy. So, I stood the launch down, tore down most of the scaffolding, keeping the parts I liked. I kept the service/repo pattern, and to my surprise it only took a few cuts, pastes, and file path refactors to get it running in a single Yarn project. It was a mercifully easy process to untangle everything. I'm finally in a state that I'm happy with, though in retrospect the lengths I had to go to land on the admittedly stupidly simple app is quite silly. Not to say it's not in character for me...
With that, I will once again welcome you to the new site. I know you've heard this one before, but I'm hoping to start writing more at the turn of the new year. Having spent all this time making this website ought to be enough of a boost, right?
To 2023!
- ezb