Meta Information about this blog - frontend and backend technologies.
The source code for this blog and the backend that powers it is on GitHub. It is Open Source under the MIT License. Feel free to fork and use it for your own needs!
Gopher images are courtesy of Ashley McNamara.
Rather than a monolithic application, I've chosen this approach to enable me to use different technologies where they are most appropriate. SvelteKit is my favorite web framework. While I know and can use other stacks like Next.js, no other framework I have found offers the simplicity of SvelteKit.
Similarly, there are many choices for getting content from your brain into a website, but the Ghost editor is my favorite. It's simple, powerful, and stays out of your way. I have a Ghost site deployed in private mode, which disables normal page serving but keeps the API and image services on.
The wildcard that makes this setup really powerful is Encore, which powers a URL shortener, the newsletter, social media integration and some lightweight content storage. Page and article updates from Ghost automatically post via webhooks to my Encore backend so that the content is available for uses outside the main website. I'm just getting started here, and really excited about the possibilities. I have it set up as a suite of microservices that are easily composed into a powerful engine, which I've started calling my Personal API.
The granularity of services allows me to compose lower-level services into powerful higher-level functionality. For example, the newsletter service is a composite service that uses content, subscriptions, and email. Rather than couple these services tightly I've found great flexibility in creating lower level services that can be combined to build applications. Since Encore abstracts away the network layer in calls between services, making a call from one service to another looks like a function call rather than a web service request. This seems small in concept, but in practice it makes the consumption and aggregation of small microservices feel like natural programming flow. I can't recommend Encore strongly enough if you are building a backend in Go. It's even worth learning Go just to use Encore.