Back to Blog
Opinion

Why I stopped using ORMs in 2026 (and what I use instead)

Sequelize, TypeORM, Prisma, Drizzle. I have shipped them all. In 2026 I write SQL by hand. Here is why.

February 20268 min read

I have used Sequelize, TypeORM, Prisma, Drizzle, and SQLAlchemy in production. In 2026 I write SQL by hand and use a thin query helper. Here is why.

The case against ORMs

You learn the ORM, not the database. When something is slow, you cannot fix it without dropping into the SQL the ORM generated, at which point you are debugging two layers instead of one.

Migrations always become a problem. Every ORM has a migration system. None of them handles the awkward cases (renaming a column with data, splitting a table, backfilling) without dropping to raw SQL.

Type safety is overrated. Drizzle gets close. Prisma gets close. But the moment you do anything non-trivial (window functions, CTEs, full text search), the type safety degrades and you write type-cast escapes.

What I use instead

I write SQL files. I run them through a tiny TypeScript helper that parses parameters, generates a typed function per query, and executes via the standard pg driver. Roughly 200 lines total.

When I would use an ORM

- Prototyping where the schema changes hourly - Internal tools where performance does not matter - A codebase already deeply invested in one

When I would not

- Anything customer-facing at scale - Anything where I will be debugging slow queries at 2am - Anything where the team needs to understand exactly what is happening

The real reason

ORMs solve the wrong problem. The hard part is not "write a SELECT". The hard part is "make this query fast on 50M rows under load". An ORM does not help with that.

S

Sarma

SarmaLinux

Have a project in mind?

Let's discuss how I can help you implement these ideas in your business.

Get in Touch
Why I stopped using ORMs in 2026 (and what I use instead) | SarmaLinux