
For over two years, Bookshop.org, a leading online marketplace for independent booksellers, has relied on Encore Cloud in production to power their development. In this case study, we hear from Mason Stewart, CTO at Bookshop.org, about Encore Cloud's impact to his team's DevOps workload and development productivity.
Mason Stewart, CTO at Bookshop.org, on how they migrated their Ruby on Rails monolith to Go microservices using Encore.
About three years ago, the Bookshop.org team, a group of experienced Rubyists, recognized that Ruby's type system was becoming a limitation for their most complex systems, particularly around inventory management. Go's type system promised better performance and clarity, so they began migrating.
But the transition was harder than expected. Coming from Rails, where strong conventions and a clear sense of style are baked in, the team found Go's ecosystem lacked the guardrails they were used to. Without those conventions, inconsistency crept in across their applications. And while Go's single binary was convenient, everything around it (Terraform, secrets management, environment variables, bespoke deployment pipelines) was scattered and painful to maintain.
"Many of us are Rubyists and we like Ruby a lot, but for really large, complex inventory tasks, we felt like Go's type system would give us better performance and more clarity. So we began moving systems over to Go, and we found that Go's relative lack of conventions created a lot of inconsistency. And the built-in Go HTTP server is great, but it can quickly become a pile of spaghetti if you don't have the discipline to really build your packages carefully."
Someone on the team suggested Encore after seeing it on Hacker News. It was a fundamentally different way of working compared to Rails, but the benefits were immediately clear. Encore provided a structured framework for Bookshop.org's Go services, solving major pain points around infrastructure, consistency, and developer productivity. By simplifying deployments, automating environment management, and enforcing best practices, Encore Cloud allowed the team to focus on building products rather than wrestling with infrastructure.

"Someone suggested Encore, and even though it was a big shift for us, immediately we could see that it was making life better. The difference between our hand-rolled Go application and our Encore application was night and day."
For a team of Rails developers used to convention-over-configuration, one of Encore's biggest wins was automated infrastructure provisioning. Getting a database stood up automatically with a connection ready to go felt familiar, like the best parts of Heroku, but with full control and visibility into their own Google Cloud Platform.
"As a bunch of Rails developers coming to Go, the idea that we get a database stood up for us and we automatically get a connection felt like some of the best parts of Heroku, but we had control of our infrastructure. Nothing was abstracted or hidden away from us. It was all still crystal clear in our own Google Cloud Platform."
95% reduction in DevOps workload
98% reduction in cloud costs
Zero ramp-up time for new service or application deployments
Internal stakeholders responding positively to improved delivery speed
Encore enabled Bookshop.org to launch new products much faster, exemplified by their audiobook initiative:
"We would never have been able to build our ebooks product in the time we did without Encore. It provided exactly the clarity, tooling, and stability we needed."
Encore enabled Bookshop.org to run highly efficient Go services using Google Cloud Run. This solution achieved a 98% cloud cost reduction compared with running the equivalent traffic on their legacy Ruby on Rails application, delivering a projected annual cost saving of over $60,000 once migration to Encore is complete.
"Using Encore.go and deploying to Cloud Run with Encore Cloud has been an incredible cost-saver. We’re able to handle more traffic, respond faster, and do it all at a fraction of the cost. As we migrate more services to Encore.go, we're on track to save over $60,000 per year compared to our legacy Rails application.""
Encore empowered Bookshop.org's engineering team to overcome some of their most challenging technical hurdles, including:
Having access to Encore's built-in tracing capabilities improved the baseline practices for Bookshop.org:
"Encore traces are really clear, and have created a culture of tracing and observability that we didn't have previously. There's no longer any excuse to have an unobserved service."
Bookshop.org needed to solve for handling massive ebook files, processing files without exhausting memory resources. Encore Cloud made this complex work simple:
"We're streaming very large ePub files directly from cloud storage and manipulating the contents without ever having to load the entire file into disk or RAM. Combining Encore, Go, and Google Cloud Run helped us accomplish this in a short amount of time, and the result is surprisingly cost effective. This would have been much more difficult in our legacy applications."
Through Encore's intuitive testing and mocking capabilities, Bookshop's testing reliability and developer confidence was significantly improved:
"Go testing can be clunky, but once Encore introduced first-class mocking, we could easily write integration tests that span multiple services with predictable behavior."
Adopting a relatively new framework was a calculated risk, but two years into production, the Bookshop.org team has no regrets. The Encore team's careful, deliberate approach to framework design has built deep trust.
"It was a bit of a risk because Encore was relatively new. So far now, two years into having Encore in production, it doesn't feel like a risk at all. It feels like we could not have accomplished everything that we did in the last two years without Encore. The Encore team has made some really good decisions — I don't look at any of the design decisions and say they made a terrible mistake. The framework tooling has evolved really carefully."
Mason highlights that Encore's power lies in its simplicity. Much like Go itself, Encore has a small footprint and a focused feature set, but the way those features compose together enables teams to build extraordinary things.
"If you trust the Encore documentation and go with the grain of Encore, you'll have a really great experience. Encore itself has a fairly small footprint — relatively small number of features. But what you can do as you compose those features is quite extraordinary, in the same way as Go."
Initially concerned about vendor lock-in and platform risk, Bookshop.org quickly found that Encore provided both flexibility and stability:
"Encore completely removes lock-in concerns because the path to self-hosting is crystal clear, especially since Encore Cloud is cleanly separated from [the open-source frameworks] Encore.go and Encore.ts. Even if Encore Cloud disappeared, we could still run our applications seamlessly anywhere. That gave us tremendous peace of mind."
The contrast between Encore and traditional infrastructure management is stark. Mason describes the frustration of maintaining an older Go service outside of Encore. Even for small changes, the Terraform and Kubernetes overhead creates outsized headaches.
"I still have an old Go application running that was not written in Encore, and its deployment is so frustrating. It's Terraform, it's a Kubernetes cluster. We only deploy that application every few months, and inevitably something has changed, something doesn't work with the deploy. To make a small text change, I'm dealing with all of this infrastructure. Out of date Terraform state — it's a headache I don't need to have. I'm honestly ready to move that service over to Encore just so I don't have to think about what's changed in the Kubernetes API for Google Cloud Platform in the last six months."
With an incredibly large customer base and only eight full-time engineers, none of whom specialize in DevOps, Bookshop.org relies on Encore Cloud to remove infrastructure burden and keep everyone focused on feature development.
"We have an incredibly large customer base and only eight full-time engineers. We don't have any real specialization — we don't have a DevOps engineer. Everyone is responsible for everything. By taking that discipline off of people's plates, it really reduces the amount of time, distraction, and context switching. It's got to be something like a 90-95% reduction."
Encore has provided a clear path for future growth and continued innovation, even as the Bookshop.org product and team scales:
"Encore has changed the way I think about hiring and DevOps roles. Because engineers can stand up and deploy new services completely on their own with no special infrastructure work, it allows us to dedicate more resources to feature development. This also lets us focus DevOps talent on complex problems outside of Encore. It allows us to forget about boilerplate work to launch new services and turn our attention to the truly unique and interesting challenges of building a best-in-class global platform."
"Two years into having Encore in production, it doesn't feel like a risk at all. It feels like we could not have accomplished everything that we did in the last two years without Encore."
By using Encore Cloud, Bookshop.org has reduced DevOps workload by 90-95% and achieved a significantly improved delivery speed for new products. With only eight engineers and no dedicated DevOps team, Encore Cloud has allowed them to confidently and quickly iterate and develop their microservices architecture, without wrestling with Terraform, Kubernetes, or bespoke deployment pipelines.
Want results like Bookshop.org? Book a 1:1 intro to see how Encore Cloud can help your team move faster, save big, and stay focused on building great products.


