It took getting laid off for me to finally have the time to build a personal website. There’ve been lots of false starts over the years caused by waffling on general theme, looking for the perfect layout, and the inevitable - “Isn’t there something else I should be doing?” This time, though, I came up with a set of features, focused on the critical path (wandering off of it briefly when I got stuck or bored), and consciously ignored my instinct to strive for perfection, in order to achieve good enough.
When I started, I had a couple of goals in mind. First, I wanted to work on my frontend skills. I’ve done frontend work before, but mostly in a supporting role when the backend work was slow or finished. Second, I wanted to share some of the insights and opinions I’ve collected over the years… and years… and years. Some of them unpopular or unconventional, as evidenced by the trail of angry colleagues I’ve left in my wake. My hope is that I can get the conventional thinkers to see things a little differently, and the unconventional thinkers to see that they’re not alone. I also hope that my subtle humor won’t be so subtle that it gets missed.
As far as how the site is built, it’s hosted as an Azure Static Web App. Coded in Svelte/SvelteKit using TypeScript. Svelte has adapters that can build the site for a variety of platforms. I used the Svelte Adapter for Azure Static Web Apps that pre-renders all the static content into (for lack of a better term) static content. Then, it turns all of the server-side rendering into a serverless Azure Function with a config file to deploy the whole thing to Azure. The blog articles are stored in Cosmos DB configured to use the NoSQL API and is accessed via the server-side rendered code. The whole thing is running on Azure for free, which will be the topic of a future blog post.