Blog


July 23, 2024

JSON data types in Postgres: json vs jsonb

Postgres provides two data types for storing JSON data: json and jsonb. Both validate the JSON before storing it, but they handle storage differently. The json...

Read

July 19, 2024

Just use Postgres

When you’re starting a new project, one of the first things you do is pick a database. The common choices tend to be between MySQL, Postgres, and MongoDB. Sometimes, you’ll see Sqlite, or some...

Read

July 16, 2024

Using GIN indices for efficient queries on jsonb and array columns

PostgreSQL offers a rich variety of data types for your database columns, from the standard TEXT, INT, and TIMESTAMPTZ to more complex types like...

Read

July 12, 2024

Using React Hook Form with auto-generated API types

Following my post on generating a type-safe API client from your Laravel API, I wanted to share how I then use those auto-generated request types not just for making requests, but also for ensuring...

Read

July 9, 2024

Type-safe API calls with Laravel and TypeScript

Working at incident.io, I’ve really come to appreciate our auto-generated API client. Whenever we make changes to our API, we do so by making a change to the API spec (in Go), which is used to...

Read

June 28, 2024

Handling null bytes in JSON payloads with postgres

Throughout this post, I'll refer to UTF-8 codepoints, null bytes, and escape sequences. Here's what they mean: A null byte is a byte representing nothingness. If you're inserting a null byte in...

Read

July 15, 2023

Improving type safety with real custom scalars in TypeScript

TypeScript’s type system is a bit loose, largely because it eventually has to compile down to JavaScript. One of the big limitations with its type system is that custom scalar types only act as...

Read

May 4, 2023

How I expose local sites with a self-hosted tunnel

Recently, I've been working on slackbot side projects (Decisionlog and Summarizer). Being Slackbots, they need to be able to receive requests from Slack. So, in order to develop them, I need to be...

Read

March 19, 2023

Progressive permissions for Slack apps

With Slack's deprecation of its legacy Workspace Apps, the ability to interactively request further permissions was lost. However, you can still request an extend permission scope using your own...

Read

November 2, 2022

Join the modern era - deploy every day

When I hear someone say “we don’t release on Fridays so developers don’t have to work late”, I shudder. If you won’t release on a Friday, I’m guessing you’re not releasing one change at...

Read