Why Everyone's Talking About ElysiaJS (And Why I Almost Missed It)


A developer on Reddit tried ElysiaJS for a few weeks. Then gave up. Not because it was slow. Not because the types didn't work. Because the framework kept breaking with no warning.
You'd update a patch version and your routes would stop working. The docs wouldn't mention it. Sometimes the changes weren't documented at all. This was supposed to be the framework that made Node look old and slow. Instead it made people miss Express.
But here's the thing. ElysiaJS just beat Encore by 2x in the same benchmark. It's sitting at 293,991 requests per second while Encore manages 139,033. That's not marketing math. That's the actual number. And people are still building with it despite the chaos. i needed to know why.
The speed nobody asked for
ElysiaJS runs on Bun. That's the runtime that promised to kill Node. The framework claims to be 21 times faster than Express. Some benchmarks show it matching Go frameworks.
One developer tested it and saw a 10 to 20 percent speed bump. Not the massive leap the benchmarks promised. But fast enough to notice. The problem wasn't the speed though. It was the memory leak. 100MB per week just sitting there. They switched back to Node and tRPC.
The performance rarely matters once you hit real business logic.
Your database calls take longer than the framework overhead. Your third-party APIs are the bottleneck. But the type safety? That's where people stay.
The type system that ruins you
ElysiaJS does something wild with TypeScript. You define a schema on the server. It instantly appears on the client. No code generation. No manual sync.
Here's what broke me. You change a field name on an endpoint. Your IDE immediately shows red squiggles everywhere that field is used on the frontend. Before you even save the file. That's the developer experience people talk about.
One person called it "the finest developer experience i've encountered with any HTTP framework". Another said the typing level was "insane" and inspired them to build their own framework. The Eden client gives you autocomplete for routes that don't exist yet.
i used to think type safety was about catching bugs. It's really about not having to think. Your editor just knows what's valid.
When everything breaks
March 2024. Elysia 1.0 dropped. Every plugin broke. The lifecycle hooks changed behavior. The migration guide showed up after people started complaining.
The maintainer said "it's sad but" and listed all the breaking changes. Then version 1.1.18 shipped breaking changes as a patch update. Not a major version. A patch. That's not how semantic versioning works.
Three hours debugging turns into a one-line config change you didn't know existed.
Version 1.3 removed the .index property. Version 1.4 removed the error function. Each time you'd update expecting bug fixes and get API changes instead. The docs would lag behind. Sometimes by weeks.
But ThoughtWorks added it to their Tech Radar anyway. They said it's worth considering for backend-for-frontend patterns. Production companies are using it despite this mess.
Why people stay anyway
The framework gives you OpenAPI specs for free. You don't write them. They generate from your route definitions. That alone saves hours on every project.
Bun compiles your server to a single binary. Memory usage drops by 2 to 3 times. Your Docker images shrink. Startup time disappears. One person said building something with Bun and Elysia made them unable to go back to Express.
The plugins handle auth, cookies, WebSockets without configuration hell. The validation is so fast they had to invent "Exact Mirror" to make it 30 times faster for medium payloads. Which means it was already fast and they made it absurd.
The framework naming problem
Why do frameworks get named after Greek mythology? Elysia. Medusa. Apollo. Hades. It's like every developer reads the same Wikipedia page before launching.
i worked on a project once where we named everything after cheese. The API gateway was Gouda. The queue processor was Brie. Nobody could remember which service did what. We switched to boring names like payment-service and suddenly onboarding new developers took half the time.
ElysiaJS at least sounds nice. Try saying "Hono" or "Fastify" out loud. You sound like you're choking.
Who this isn't for
Most projects don't need ElysiaJS. Your Express app is fine. The 10 millisecond response time difference won't matter when your database query takes 200 milliseconds.
If you're building with a team that hates breaking changes, skip this. If you need stable APIs that don't shift between patch versions, use something boring. Nest is at version 10 and still works like it did three years ago.
Small side projects though? Personal tools? The type safety makes you move so fast you forget the framework exists. You're just writing functions that autocomplete. But the moment you need to maintain this for a year, the breaking changes will hurt.
Bun still doesn't install natively on Windows. You need WSL2. That's a non-starter for some teams.
The actual state
i keep thinking about that Reddit developer who gave up after a few weeks. They wanted the speed and the types. They got instability instead.
But Elysia is now 2x faster than Encore in benchmarks. The maintainer is responsive. The community is small but active. And every few months the framework gets noticeably better at the cost of your routes breaking.
Some tools are worth the pain. This might be one of them. Just pin your versions and never update without reading the changelog twice.
Enjoyed this article? Check out more posts.
View All Posts