Welcome to my inaugural blog post! While this is still a major work-in-progress, it’s a relief to finally have this section setup. I’ve got lots of ideas and plans for future projects cooped up in this brain of mine, so let’s start getting some of them down!
First things first, a brief explanation on the structure and design of this blog. This entire project portfolio is built on the Astro JavaScript framework. This decision was deliberate and grounded in a three main reasons:
1. I wanted a performant frontend solution that renders quickly without the need for a backend.
2. I wanted the overall development process to be streamlined to allocate more time to working on personal projects.
3. I wanted to a brand new framework to explore that wasn’t React or Next.js.
Astro was designed as a lightweight framework that leverages baseline Static Site Generation (SSG) to decrease bundle size and load pages quickly. This allows viewers to have a seemless, snappy experience that won’t get bogged down by UI re-renders or stalled API calls. Additionally, it features native Markdown support, which lends well to writing text-based content such as blog posts or project descriptions. Lastly, Astro includes the ability to selectively import external components through its “Island” architecture, meaning any React, Angular, or Vue features can be plugged in to an Astro app seemlessly to a developer-specific level of customization.
The Markdown integration of Astro also lends itself to my goal of avoiding a backend implementation. Since blog posts are mostly text-based, there isn’t much downside to simply hosting my post contents as files within the repository vs storing my posts in a database. There also isn’t a need to consider user integration, since there won’t be any other authors aside from myself. There could be a potential obstacle in the future if/when I choose to implement photos and screenshots with these posts, but that will be a bridge to cross when I get to it.
As for why I’m creating this blog at all, you could say that I sometimes miss the days of being an “amateur” developer. I have been at my current company for about 6 months now, drinking from the proverbial firehose and absorbing as much information as I can. In fact, I feel like the more experience I acquire, the wider my learning scope becomes and the more I am able to comprehend harder and more complex concepts. Yet while it has been such a rewarding and enriching experience so far, I have realized an inherent divide between enterprise-level code and shiny new technologies, especially in the context of larger companies. This is natural; even the most polished of the new libraries, frameworks, and build tools are riddled with bugs that need to be squashed through user testing, and companies typically cannot afford that risk.
And I really miss that, the sense of marvel and wonder that accompanied every announcement of a new, innovative breakthrough in the web dev world. For the last 6 months, the last thing I’ve wanted to do after staring at a computer screen for 8 hours was to go home and stare at another one for more. But in recent days, I’ve noticed a hunger to tinker and build and explore new code. Slowly but surely, that excitement I felt when I began my coding journey is coming back. This is my attempt to reignite that passion.
This blog will serve many purposes. It will be a place for me to share my ideas into the world. It will be a journal for me to brainstorm the directions I want to go in my future projects. But most importantly, I hope for it to be a way of staying accountable to my journey of being a perpetually growing software developer.
Wish me luck!
Matt