Encore Blog
encore.dev · Company blog · on HN since 2020
The team behind the Encore backend framework writes about distributed systems, retries, queueing, Terraform and a Rust runtime for TypeScript.
What HN saysHN commenters mention Encore as an open source Go and TypeScript framework for infrastructure-in-code, and compare other tools against it.
47HN people shared it
16linked it in comments
98stories submitted
619story points
2 months agolast shared
2020people per year2026
Most-shared posts
- 1Encore – Back end framework for type-safe distributed systems14 people · 17 points · first shared 2020 · 1 comments on HN
- 2Retries – An interactive study of request retry methods5 people · 54 points · first shared 2023 · 5 comments on HN
- 3Last Year of Terraform4 people · 9 points · first shared 2026 · 2 comments on HN
- 4Go Modules Cheat Sheet3 people · 141 points · first shared 2021 · 50 comments on HN
- 5Encore: Distributed systems runtime for TypeScript, written in Rust3 people · 59 points · first shared 2024 · 15 comments on HN
- 6Queueing3 people · 32 points · first shared 2024 · 13 comments on HN
- 7Building a Rust Runtime for TypeScript3 people · 16 points · first shared 2026 · 1 comments on HN
- 8The Thundering Herd Problem2 people · 83 points · first shared 2024 · 37 comments on HN
- 9Encore.ts: A New Type of Framework2 people · 14 points · first shared 2024 · 1 comments on HN
- 10Testscript, a hidden gem the Go team kept locked away2 people · 12 points · first shared 2022 · 3 comments on HN
- 11Beyond PaaS – A smarter approach to cloud-native development in 20252 people · 9 points · first shared 2025 · discussion on HN
- 12Scrubbing sensitive data at 180MiB/sec/core2 people · 8 points · first shared 2023 · 1 comments on HN
- 13Putting an event loop in your event loop2 people · 7 points · first shared 2024 · 1 comments on HN
- 14Advanced Concurrency Patterns in Go2 people · 7 points · first shared 2020 · 2 comments on HN
- 15Are TypeScript back end frameworks ready for AI Agents?2 people · 6 points · first shared 2026 · 1 comments on HN
What HN people wrote when they linked it
lapusta · 2025-01-02
I could really recommend Encore https://encore.dev/ that works best when you use their PaaS offering https://encore.cloud/ (think of NextJS & Vercel combo).
One can argue it goes against some of the Go principles, but it's a really nice stack for solos or small teams without dedicated SREs. And as you grow you can BYOC & deploy it yourself or completely rewrite your API layer using Go stdlib.
You would still need NextJS or Remix/RR7 for the front-end, but one nice thing is that it would auto-generate the client SDK in TypeScript which makes integration a breeze. And while I personally prefer Remix/RR7 for frontend, Encore has integration with Vercel PR feature which is really hard to beat.
eandre · 2022-03-21
Whether you build microservices or just services, distributed systems are undeniably here to stay. In today’s world there are very few products that can run on a single machine, whether it is for latency or availability or redundancy.
That said, the challenges of building such systems are real, and the developer experience is universally quite awful compared to our monolithic, single-server past.
It’s for that reason that I’ve been building [1] for the past four years. Would love your feedback if the OP resonates with you.
[1] https://encore.dev
vipshek · 2026-04-10
Very cool! Have you seen https://encore.dev/ ? Haven't used it personally but I saw it on HN last year and have been meaning to try it out.
Seems like your approach is a bit more "batteries-included" but I'd curious for your thoughts on the differences.
andout_ · 2026-02-25
Yes, Encore[0] is an open source framework (ts/go) that has been around for a while now.
[0]: https://encore.dev
jekude · 2026-02-02
How does this compare to https://encore.dev/ or other infrastructure-inside-application-code solutions?
Imustaskforhelp · 2024-11-04
wow very very interesting. I think we can discuss about it on hours.
1.) What would you think of things like hetzner / linode / digitalocean (if stable work exists)
2.) What do you think of https://sst.dev/ or https://encore.dev/ ? (They support rather easier migration)
3.) Could you please indicate the split of that 1 million $ in devops time and google cloud costs unnecessarily & were there some outliers (like oh our intern didn't add this specific variable and this misconfigured cloud and wasted 10k on gcloud oops! or was it , that bandwidth causes this much more in gcloud (I don't think latter to be the case though))
Looking forward to chatting with you!
wrnch · 2024-03-25
This is a biased representation of what Nitric can do for you.
The Terraform you've written out looks like a lot, but the Nitric code is doing a huge amount of lifting in this example.
Not to mention that Nitric is wrapping a Pulumi provider (granted they are using `pulumi-azure-native` unlike the `pulumi-azure` provider that's just a Terraform wrapper).
You can do this exact kind of Function Serialization in Pulumi anyway: https://www.pulumi.com/docs/concepts/function-serialization/#overview.
At the end of the day this article is abstracting a huge amount and whilst for startups it might be fine? When something goes wrong you'll want to be able to debug the random queue backlog in your stack.
For an example of this done beautifully in one language where they're managed close the loop with monitoring, I would checkout Encore: https://encore.dev/.
machekb · 2023-01-26
For something in the same vein but for Go, there is Encore: https://encore.dev / https://github.com/encoredev/encore
habosa · 2021-10-26
Maybe something like https://encore.dev? Looks like a similar mindset.
zoomzoom · 2022-12-19
This is one of the more sophisticated and cool of the "Self Provisioning Runtime" concepts that have emerged in the last few years (https://swyx.io/self-provisioning-runtime). Some of the others:
- https://www.pulumi.com/docs/tutorials/cloudfx/
- https://www.serverless.com/cloud
- https://www.shuttle.rs/
- https://encore.dev
In general, while it's clear that somehow cloud complexity needs to be abstracted away from developers, I don't think it makes sense that new programming languages or frameworks are necessary to do this well. It makes migration of existing apps and backwards compatibility with the existing software ecosystem too challenging.
At Coherence (withcoherence.com - I'm a cofounder), we believe that a new category anchored by tools like replit, AWS CodeCatalyst, and our products is the solution to this problem, because it does not have the same issues. Instead, it offers best-in-class versions of the same workflows and toolchains that teams are using now, while radically reducing the investment required to get there.
It's an exciting time in the DevOps world!
samwho · 2026-06-30
I have some potentially bad news for you:
https://samwho.dev/load-balancing
https://encore.dev/blog/queueing
upmind · 2026-02-25
Discussion here already: https://encore.dev/blog/last-year-of-terraform
Version467 · 2024-08-18
This might be too basic, but I found this blog post to be an incredible introduction to queues: https://encore.dev/blog/queueing
belmont_sup · 2023-02-27
Isn’t based around Consul or etcd, but the encore folks https://encore.dev/docs have been building a framework that makes working with microservices much more straight forward.
I haven’t used it much, but the tool is able to generate all the code for services that want to speak to one another. This to me is enough service discovery.
typical182 · 2022-03-31
FWIW, that's not what Go does. In your scenario, a Go binary ends up with a single copy of library X -- the 1.0.1 version. That's because library A is stating "I require at least v1.0.0 of X", and library B is stating "I require at least v1.0.1 of X". The minimal version that satisfies both of those requirements is v1.0.1, and that's what ends up in the binary.
That behavior is Go's "Minimal Version Selection" or "MVS". There are many longer descriptions out there, but a concise graphical description I saw recently and like is:
https://encore.dev/guide/go.mod
That's the default behavior, but a human can ask for other versions. For example, a consumer of A and B could do 'go get X@latest', or edit their own go.mod file to require X v1.2.3, or do 'go get -u ./...' to update all their direct and indirect dependencies, which would include X in this case, etc.
scrubs · 2021-05-24
Is there a command that elicits or demonstrates MVS. This page is good explaining what MVS is:
https://research.swtch.com/vgo-mvs
Same with less detail (see bottom of page):
https://encore.dev/guide/go.mod