HomeStack
I thoroughly enjoy creating software. I would classify myself as a full-stack developer, with a preference for back-end development, but I also enjoy tackling front-end challenges.
Around 2015, I started working with containers. Before that, I had a more classic approach of developing on provisioned servers or VMs. As soon as I started working with containers, specifically Docker, I knew I wanted my HomeStack to follow a service-oriented architecture.
HomeStack is what I refer to as the tech stack I use for my side projects. I think of it as similar to a mechanic's home garage. It has just enough tools to handle most operations, but it isn't scaled to the level of their day job shop.
Before embracing SOA, I used to host each site or service on a subdomain of my main domain. For example, my web-utils service was on utils.nickhedberg.com. However, with my current HomeStack, everything is on a single domain and the services are differentiated by path using a central router.
In this series, I will write about how I have implemented various infrastructure components in my homestack.
Posts
The brains of the operation. Originally, I used https://hub.docker.com/r/jwilder/nginx-proxy, but I have since moved on to fully embracing Traefik.
I leverage age for committing encrypted secrets to my git repos.
I use the free version of Auth0 for authentication, along with the NextJS SDK.
I don't utilize a managed MySQL service; rather, it is another container running on my server. A key unlock for me was managing schema changes, which I use Skeema for.
I'm a vim/screen user, mainly because I like playing in the terminal still. I do have CoPilot installed, and also a modified vim-ai plugin for AI Chat.