# Why I Stopped Using ORMs

> A controversial take that's less controversial than it sounds. Most ORM magic isn't worth what it costs you when things break.

**Author:** Harshit Katheria
**Published:** July 28, 2025 (2025-07-28T00:00:00.000Z)
**Tags:** databases, opinion
**URL:** https://harshitkatheria.com/blog/stopped-using-orms
**HTML version:** https://harshitkatheria.com/blog/stopped-using-orms

---

For about four years I thought ORMs were the only reasonable way to talk to a database. Then I spent a month debugging a performance issue that turned out to be a query the ORM was generating for me.

That was the turning point.

These days my default is:

- **Write SQL directly** for anything non-trivial
- **Use a thin query builder** (like Drizzle or Kysely) when I want type safety without surprises
- **Reach for an ORM** only when the schema is genuinely simple and stable

The pitch of an ORM is that you think in objects, not tables. The reality is that you think in *the ORM's version* of objects, which is its own mental model you have to learn. When the abstraction leaks (and it always does), you're stuck debugging two systems at once.

SQL is a skill. The time you spend getting better at it pays off forever.

---

## See also

- [Blog index](https://harshitkatheria.com/blog.md)
- [Projects](https://harshitkatheria.com/projects.md)
- [Homepage](https://harshitkatheria.com/index.html.md)
- [llms.txt](https://harshitkatheria.com/llms.txt)
