Igal Klebanov 💥 kysely
@igal.dev
@kysely.dev co-lead. @zod.dev contributor.
🥰 TypeScript, FaaS & DBs. coined Tofu (OpenTofu). opinions are mine.
github.com/igalklebanov
🥰 TypeScript, FaaS & DBs. coined Tofu (OpenTofu). opinions are mine.
github.com/igalklebanov
there's pronounciation help in the readme.. 🫠
August 12, 2025 at 10:51 AM
there's pronounciation help in the readme.. 🫠
separate the art from the artist.
June 16, 2025 at 2:04 AM
separate the art from the artist.
we have @pkg.pr.new for that. pushing preview builds for PRs, the long-living `next` branch, etc. people can play around with these or the playground.
there were a few times where we rolled back and redesigned an API idea before release. if that would have hit `latest` on `npm` prematurely - ouch.
there were a few times where we rolled back and redesigned an API idea before release. if that would have hit `latest` on `npm` prematurely - ouch.
May 24, 2025 at 6:47 PM
we have @pkg.pr.new for that. pushing preview builds for PRs, the long-living `next` branch, etc. people can play around with these or the playground.
there were a few times where we rolled back and redesigned an API idea before release. if that would have hit `latest` on `npm` prematurely - ouch.
there were a few times where we rolled back and redesigned an API idea before release. if that would have hit `latest` on `npm` prematurely - ouch.
prepare for support hours? 😬
May 24, 2025 at 6:31 PM
prepare for support hours? 😬
from a perspective of someone who doesn't read the docs. 🫠
May 4, 2025 at 6:41 AM
from a perspective of someone who doesn't read the docs. 🫠
it's out!
dynamic table values were an undocumented, accidental thing before v0.28.
now they're officially supported in v0.28.2.
please drink lots of water. it's hot outside, and DRY in your codebases now. 🥤
github.com/kysely-org/k...
now they're officially supported in v0.28.2.
please drink lots of water. it's hot outside, and DRY in your codebases now. 🥤
github.com/kysely-org/k...
Release 0.28.2 · kysely-org/kysely
Hey 👋
v0.28 broke an undocumented TypeScript behavior our API had that allowed you to pass table name unions to query builders and enable some DRYing of queries. Seeing that this pattern was quite ...
github.com
April 24, 2025 at 12:28 PM
it's out!
that's more of a comparison between an orm and a query builder. you needed an orm. it's fine.
you were not "holding it right" in some parts, and complaining about sql more than about kysely.
unmatched type-safety.
github.com/thetutlage/m...
you were not "holding it right" in some parts, and complaining about sql more than about kysely.
unmatched type-safety.
github.com/thetutlage/m...
Type-safety with TypeScript ORMs and query builders · thetutlage meta · Discussion #8
Alright, so I maintain a JavaScript ORM called Lucid. Lucid is built on top of knex, which isn't type-safe, and hence, Lucid isn't type-safe either. My gut feeling is that utilizing SQL to its full...
github.com
March 17, 2025 at 2:55 PM
that's more of a comparison between an orm and a query builder. you needed an orm. it's fine.
you were not "holding it right" in some parts, and complaining about sql more than about kysely.
unmatched type-safety.
github.com/thetutlage/m...
you were not "holding it right" in some parts, and complaining about sql more than about kysely.
unmatched type-safety.
github.com/thetutlage/m...
in other words, what are the queries you're gonna execute on this table? what `where`s are you using?
e.g. if all you do is `where a = ?` and `where a = ? and b = ?`, all you need is a composite index `(a,b)`, probably*. 🤞
* - run some `explain`s to see actual query plans to test assumptions.
e.g. if all you do is `where a = ?` and `where a = ? and b = ?`, all you need is a composite index `(a,b)`, probably*. 🤞
* - run some `explain`s to see actual query plans to test assumptions.
March 3, 2025 at 7:14 PM
in other words, what are the queries you're gonna execute on this table? what `where`s are you using?
e.g. if all you do is `where a = ?` and `where a = ? and b = ?`, all you need is a composite index `(a,b)`, probably*. 🤞
* - run some `explain`s to see actual query plans to test assumptions.
e.g. if all you do is `where a = ?` and `where a = ? and b = ?`, all you need is a composite index `(a,b)`, probably*. 🤞
* - run some `explain`s to see actual query plans to test assumptions.
what are the access patterns?
March 2, 2025 at 9:39 AM
what are the access patterns?
query builders to the rescue.
February 18, 2025 at 7:30 PM
query builders to the rescue.