Skip Navigation code drift

Code

The beeps that boop. Posts about coding, the process, and the results.

Making nulls distinct in Postgres < 15

(1 min read) From the postgres docs on unique indexes: When an index is declared unique, multiple table rows with equal indexed values are not allowed. Null values are not considered equal. A multicolumn unique index will only reject cases where all indexed columns are equal in multiple rows. Unfortunately, disabling distinct null

How Vercel Gets Their Bundles Small

(1 min read) The @vercel/nft (Node File Trace) package is responsible for a lot of Vercel's bundling magic. It statically analyzes files and can find non-JS dependencies in the execution path by spotting filesystem intersections via readFile and readStream calls. The result of this call is a list of only

GraphQL Responses Treat [] as Having Errors

(1 min read) From the GraphQL Specification The errors entry in the response is a non‐empty list of errors, where each error is a map. If no errors were encountered during the requested operation, the errors entry should not be present in the result. That means a response of { "data"

GitHub's Hidden Discussion IDs

(1 min read) So that I don't forget this in the future, the Discussion API for GitHub behaves a differently than a lot of the other endpoints. As I implemented GitHub as a CMS, I needed to filter by discussion category, there's an example in the docs List the

Tailwind CSS for Email

(7 min read) I can no longer count the hours Tailwind saves me. I don't really hate the state of CSS-in-JS. I just find it gets in the way of quickly saying "make this blue, put it in a flex box oriented by row, with the items centered." It&