Hashnode is a community of independent bloggers where everyone has the liberty to bring their domain and own their content. In other words, we are building a multi-tenant app and need a solution that can help us generate and serve SSL certs on demand. nginx doesn't support this by default. So, we went with a different approach which involves using OpenResty and Lua:
However, after 50+ custom domains, the SSL handshakes started getting slower. On average, it took ~1s for the SSL negotiation to complete which is completely unacceptable. Also, OpenResty (used it with lua-resty-auto-ssl plugin) used to crash when it couldn't generate SSL cert successfully - this was completely random though.
I raised an issue on GitHub, but didn't receive any response: github.com/GUI/lua-resty-auto-ssl/issues/178
The maintainers might not have the bandwidth to maintain it actively and address the issues -- I totally understand that.
After that, I started re-evaluating different solutions and Caddy seemed to be a perfect fit. It supports:
Additionally, their team is trying to build a real business out of it and we can get support from them if we ever decide to do so. So, Caddy is the right solution for our use-case and therefore we switched.
Is Hashnode willing to pivot from Node.js to Golang in future?
No. We'll stick to Node.js. Although Go is a great language, we don't think it's necessary to switch to Go. You can use Caddy with any backend. :)