My Gopher Journey...
Another New Stack - GVP
Why GVP?
Go is not the default choice for traditional websites, and Vanilla frontend is still a minority approach. But both share a common ground I value: long-term predictability. Frameworks optimize for “time to market”. Vanilla optimizes for “time to maintain”. After 5+ years, predictability wins.
Interpreted or Compiled?
My first choice was simply: interpreted or compiled? I came from a desktop world built on an interpreted RAD framework — great for prototyping, terrible for debugging. Errors hid until runtime. Compiled languages, by contrast, force clarity early. Yes, compilation adds friction. But it also removes surprises. Interpreted languages slowly drained me; compiled languages restored my energy.
The G - Go, The backend choice
I evaluated the usual suspects: PHP, Python, Java, JavaScript. All interpreted. Then I found Go — a compiled language built for simplicity, concurrency, and long-term stability. It's not the first choice for frontend-oriented developers, but it is fast, clean, and refreshingly honest. A “Hello World” web server in Go weighs about 6 MB. No runtime. No framework. Just Go. It felt like fresh air.
The V - Just Vanilla Everything
No frameworks. No magic. No extra layers. I could have added HTMX, jQuery, SASS, ORM, Tailwind — but none of them aligned with my compass. I wanted simplicity, not convenience that turns into complexity later. Vanilla HTML, CSS, and JavaScript give me full control and zero surprises.
The P - Battle-Tested Database - PostgreSQL
Why replace a winning horse? I've used PostgreSQL for more than 15 years. It's simple, stable, fast, and trusted in systems where failure is not an option. Long-term support is practically part of its identity. It's the kind of tool that disappears into the background and just works.
GVP — Go-Vanilla-Postgresql
Go for backend logic. HTML, CSS, JavaScript for the frontend. PostgreSQL for persistence. Every choice in GVP follows one principle: I'd rather write more code I understand than less code I don't. More typing, yes. More boilerplate, yes. But also zero hidden behavior and debuggable code from top to bottom.
GVP is not mainstream or comfortable. But it is smaller, faster, and dramatically easier to maintain beyond five years.