The Art of Opinionated Development: A Journey with Encore
?? Adam Sobotka
CTO, mentor, advisor. From startups to scale-ups, I build the teams that power success.
I first spotted Encore on my tech radar about a year ago - an open-source backend platform that promised something intriguing: building reliable applications in both Go and TypeScript. What caught my attention wasn't just the tech stack, but the underlying philosophy that would later prove remarkably familiar.
Fast forward to today, and I've finally carved out time to dive deep into Encore. What I discovered was a platform that has evolved with remarkable precision. The team hasn't just built features - they've crafted an experience that feels both opinionated and liberating, reminiscent of the impact Nest.js had on the Node.js ecosystem.
This journey has reinforced a truth I've learned over years of software development: sometimes, not trying to please everyone leads to the most elegant solutions. It's a philosophy that gave us Ruby on Rails, and while Encore differs in its technical DNA (and thankfully, in its resource consumption), it carries that same transformative spirit - the ability to get things done with a well-defined, productive approach that just clicks.
So what exactly is Encore? Imagine if Nest.js and Cloudflare Workers had a child, then gave it superpowers through developer experience innovations. But let's peel back the layers and start at its core.
At its heart, Encore employs a fascinating architectural approach: a Rust-based HTTP event loop wrapping the Node.js event loop. This isn't just technical showmanship - it's a pragmatic solution to the performance challenges of request processing. By handling the heavy lifting in Rust before passing control to the Node.js environment, Encore achieves impressive performance gains. With Bun support on the horizon, this foundation promises even more exciting possibilities.
领英推荐
To make it clear, you don't need to know absolutely anything about Rust and you will never touch this language while developing Encore application. Only supported languages are TypeScript and Golang, with Python coming soon.
Beyond this technical core, Encore presents itself as an SDK that feels familiar yet fresh. Like Nest.js, it embraces clear architectural patterns and best practices. The framework leverages HTTP requests extensively (now without the usual performance penalties, thanks to that Rust core) and promotes integration testing as the primary testing methodology. What truly shines is how it streamlines common development needs - authentication, database connections, pub/sub systems, secrets management - all wrapped in an intuitive, productive interface that makes both developers and managers smile. It's the kind of tooling that ends architecture debates before they begin.
But here's where Encore truly surprises: it extends beyond the traditional framework boundaries into built-in service management and observability. The Flow tab in the interface isn't just another monitoring tool - it's a visual journey through your services and components, complete with integrated testing capabilities. While it won't replace your DevOps team, it provides an invaluable bridge between development and operations, making troubleshooting and understanding system behavior remarkably intuitive.
Now, you might have noticed I've focused primarily on the TypeScript side despite Encore's dual-language nature. While we use Go in our company, my deeper experience lies in the JavaScript ecosystem, and I want to be transparent about potential bias in my assessment. The one limitation worth noting is that currently, you can't create a unified project using both TypeScript and Go. While you can integrate the SDKs, the superior service tooling remains language-specific. However, given Encore's rapid development pace and promised upcoming features, this limitation may soon be a thing of the past.
The evolution of Encore reflects a broader truth in software development: sometimes the most powerful tools are those that dare to have an opinion about how things should be done, while still leaving room for pragmatic flexibility.
Co-Founder & Chief Architect at YuviTal
2 个月?? Adam Sobotka What’s your opinion on the lock-in factor? Suppose you’ve built part of your code’s business function on Encore, and suddenly the prices skyrocket.
Software developer at Heureka group.
3 个月Sounds like very powerful magic machine.
CTO, mentor, advisor. From startups to scale-ups, I build the teams that power success.
3 个月BTW, Marcus Kohlberg - feel free to correct my understanding :-) I just realized that I have you in my feed.
I assist brands in automating their marketing processes, launching high-converting websites and mobile apps, and building high-performance MVPs, resulting in accelerated business growth.
3 个月That sounds like a fascinating read! Encore's focus on Go and TypeScript development is definitely promising, especially with its potential to streamline modern application development. Looking forward to diving into your insights, this could be a game-changer for developers exploring efficient, scalable solutions!