Why we don't use an ORM and why you (probably) shouldn't
Jump to TLDR? > This post is mainly intended for coders early in their careers, ✨vibe coders✨ and anyone using an ORM just because We do not use ORMs We have tried all kinds of ORMs and in the end they have all proven to be a hindrance. Our recommendation: Bite the bullet, learn your SQL and as a bonus, you will have a skill that lasts for life. ORMs add a layer of abstraction that will give you all kinds of nightmares Now, I imagine, if you use ORMs regularly, your blood pressure went up a tiny bit, so I'll add a caveat here: If you are working on somewhat simple applications, without unusual reads and/or writes, sure! Writing SELECT FROM for every case when you need to query/insert/delete/patch some data seems silly, we recognize that That's why in our specific case, where we do quite advanced SQL, process lots of logs and manage a diverse range of resources for our clients, we can't afford to: Learn the ins and outs of ORMs Rely on the performance promised by ORMs Trust that the ORM we choose is as safe or that it will be maintained as the underlying query language would If you use an ORM, I would bet that there's a chance that it is because you saw using said ORM and you thought "Ah! This sponsored product will make me better!" Was that the case?

Jump to TLDR? >
This post is mainly intended for coders early in their careers, ✨vibe coders✨ and anyone using an ORM just because
We do not use ORMs
We have tried all kinds of ORMs and in the end they have all proven to be a hindrance. Our recommendation: Bite the bullet, learn your SQL and as a bonus, you will have a skill that lasts for life. ORMs add a layer of abstraction that will give you all kinds of nightmares
Now, I imagine, if you use ORMs regularly, your blood pressure went up a tiny bit, so I'll add a caveat here:
If you are working on somewhat simple applications, without unusual reads and/or writes, sure!
Writing SELECT
for every case when you need to query/insert/delete/patch some data seems silly, we recognize that
That's why in our specific case, where we do quite advanced SQL, process lots of logs and manage a diverse range of resources for our clients, we can't afford to:
Learn the ins and outs of ORMs
Rely on the performance promised by ORMs
Trust that the ORM we choose is as safe or that it will be maintained as the underlying query language would
If you use an ORM, I would bet that there's a chance that it is because you saw
using said ORM and you thought "Ah! This sponsored product will make me better!"
Was that the case?