ORMs are nice but they are the wrong abstraction

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Nutrient - The #1 PDF SDK Library
Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.
nutrient.io
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. pgtyped

    pgTyped - Typesafe SQL in TypeScript

    ORMs suck, but raw SQL embedded in your code sucks too.

    This might be good time to plug my TypeScript non-ORM: https://jawj.github.io/zapatos/.

    I should say I also like what I've seen of https://kysely.dev/ and https://pgtyped.dev/.

  2. Nutrient

    Nutrient - The #1 PDF SDK Library. Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.

    Nutrient logo
  3. kysely

    A type-safe typescript SQL query builder

    ORMs suck, but raw SQL embedded in your code sucks too.

    This might be good time to plug my TypeScript non-ORM: https://jawj.github.io/zapatos/.

    I should say I also like what I've seen of https://kysely.dev/ and https://pgtyped.dev/.

  4. jOOQ

    jOOQ is the best way to write SQL in Java

  5. Permazen

    Language-Natural Persistence Layer for Java

    The most interesting/fresh approach I've seen to this problem is Permazen.

    https://github.com/permazen/permazen/

    It starts by asking what the most natural way is to integrate persistence with a programming language (Java in this case, but the concepts are generic), and then goes ahead and implements the features of an RDBMS as an in-process library that can be given different storage backends as long as they implement a sorted K/V store. So it can sit on top of a simple in-process file based K/V store, RocksDB, FoundationDB, or any SQL database like PostgreSQL, SQLite, Spanner, etc (it just uses the RDBMS to store sorted key/value pairs in that case).

    Essentially it's a way to map object graphs to key/value pairs but with the usual features you'd want like indexing, validation, transactions, and so on. The design is really nice and can scale from tiny tasks you'd normally use JSON or object serialization for, all the way up to large distributed clusters.

    Because the native object model is mapped directly to storage there's no object/relational mismatch.

  6. DPP

    Deep Persistent Proxy Objects for JavaScript (by robtweed)

    Another approach to this is DPP -- Deep Persistent Proxy Objects for JavaScript:

    https://github.com/robtweed/DPP

  7. drizzle-orm

    Headless TypeScript ORM with a head. Runs on Node, Bun and Deno. Lives on the Edge and yes, it's a JavaScript ORM too 😅

  8. sqlc

    Generate type-safe code from SQL

    Agreed, but tools like https://sqlc.dev, which I mention in the article, are a good trade-off that allows you to have verified, testable, SQL in your code.

  9. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • sqlc: Generating go code from sql statements

    4 projects | /r/golang | 17 May 2022
  • You Probably Don't Need Query Builders

    5 projects | news.ycombinator.com | 25 Jan 2025
  • How to Secure Your Next.js E-commerce Site with RBAC and Permit.io

    2 projects | dev.to | 18 Dec 2024
  • Show HN: Outerbase Studio – Open-Source Database GUI

    19 projects | news.ycombinator.com | 4 Dec 2024
  • Show HN: Generate type-safe code for SQL queries in any language

    2 projects | news.ycombinator.com | 27 Nov 2024