Background: My Maintenance Hell
I chose a proprietary framework many years ago. For each new version, this framework introduced new bugs. After each update, I spent weeks minimizing damage for my customers. While I found workarounds for many bugs, some core issues required waiting for the next version to be fixed. The framework was built with a mix of other frameworks, each with their own dependencies. If there was a single missing dot in a downstream dependency, the whole application would suffer. My customers felt the impact of these bugs since I couldn’t fix them all independently. This experience led to my aversion to complex frameworks and shifted my philosophy from “quick-to-market” to “keep-customers”.
Transition from Desktop to Web
I began searching for web tools that offered long-term support and maximum simplicity. My goals were speed, simplicity, safety and of course maintainability, with development staying as close to the source as possible. I investigated Angular, Python, and other interpreted languages, but none aligned with my approach until I discovered Go. The Go HTML templates were a real eye-opener for web development.
The New Goal: Maximum Maintainability
My current stack consists of Go as the foundation, combined with pure CSS, vanilla JavaScript, and HTML (the “holy trinity”). Initially, I built a traditional Multi-Page Application (MPA), but it proved less DRY as each page required loading all resources. This led me to explore Single Page Applications (SPA), starting fresh with a new approach.
Feedback on my proof-of-concept?
I’ve created a simple POC “template” using Go (2 small pages) with some Go HTML pages, JavaScript, and CSS. Using Go’s embed feature, I have bundle everything into a single executable with all dependencies included. The result is a compact ~10MB executable. The template should be responsive, and I welcome any sort of feedback!