I needed a reverse web proxy for a personal project.

Instead of installing nginx or traefik… I wondered:
“How hard would it be to write one in Go?”

So I tried.

~800 lines of code later, I had a configurable web server + reverse proxy with everything defined in a JSON file.

No external packages.
No dependencies.
Just a single 13 MB binary.

Out of curiosity I ran an SSL Labs test on it — it scored **96 with an A+ rating**.

And the real test: it’s now running in production, serving my transactional site and cloud portal.

If you’re curious, I open-sourced it here:
https://gitlab.com/co2.click/web-proxy

#golang #GoLang #opensource #reverseproxy #webdev #devtools #selfhosted #programming

co2.click / web-proxy · GitLab

GitLab.com

GitLab
@IndianaTux isn't Caddy already written in GO.
@Auli Indeed, did not know about that one. I'll put it on my watch list. Thanks.
@IndianaTux I'm both impressed by the expressiveness of Go to pack so much functionality into under 1k lines and also shocked by the fact that a project that has under 1k lines and no external packages or libraries is a whole 13MB 😅

@bryce By external packages I meant that you do not have to install anything but the binary to run it.

But it only has 1 external library, and it's for QUIC support. All other stuff is part of go itself (look at the go.mod file)