Estou construindo um projeto chamado OBJX e queria muito ouvir a opinião da comunidade.
A ideia dele é ser um ORM/query builder SQL-first para TypeScript, inspirado em parte no que sempre achei muito bom no Objection.js, mas tentando seguir uma arquitetura mais moderna em cima disso.
O foco não é esconder SQL. Na verdade, é o contrário: manter SQL por perto, preservar controle, mas oferecer uma camada melhor de runtime, relações, tipagem, plugins e ferramentas.
O que já existe hoje
O projeto já tem uma base razoável funcionando:
defineModel(...)- query builder próprio
- engine SQL embutido
- drivers para SQLite, Postgres e MySQL
insertGraph,upsertGraph,relate,unrelate- eager loading
- plugins como
soft delete,tenant scope,audit trailesnake_case naming - codegen com introspection, migrations e seeds
- integração com NestJS
- benchmark com bancos reais
- docs públicas
Também comecei a trabalhar em um ponto que considero bem importante para aplicações reais com Postgres: integração com RLS, usando set_config(...) / current_setting(...) dentro do fluxo de contexto e transação.
O que estou tentando fazer
Quero construir algo que faça sentido para times que:
- usam TypeScript
- gostam de pensar em SQL
- querem previsibilidade
- não querem ficar presos numa camada muito mágica
- ainda assim querem relações, graph operations e uma DX boa
Ainda tem bastante coisa para melhorar, principalmente em performance, inferência de tipos, expressividade do query builder e maturidade geral da API.
Onde eu realmente queria ajuda
Queria feedback sobre pontos como design da API, tipagem, runtime, performance em Postgres e MySQL, RLS no Postgres, exemplos e casos de uso reais
Queria ouvir de vocês
Principalmente estas perguntas:
- O que mais incomoda vocês nos ORMs atuais de Node/TypeScript?
- Em que cenário um projeto assim faria sentido para vocês?
- O que seria indispensável para vocês considerarem usar isso em produção?
- O que vocês acham mais importante priorizar agora?
Se alguém quiser testar, criticar, sugerir direção ou até contribuir, eu vou agradecer bastante.
Links: