Joonas' blog


Next.js: request parameter reference

Reference guide to accessing request parameters in Next.js

Migrating to PKCE-compatible generateLink in Supabase

Generating links in a PKCE world


Next.js app directory: URL-synced state

How to store state in URL with Next.js app directory

PostgREST: joins and join conditions

A look at how postgREST does joins and the gotchas involved


How to fix a NPM package mess

Recover from NPM package chaos

Git: set working directory contents to a commit

Update files in the working tree to match the version in given [commitref] without updating HEAD

Blog idea hack: source your ideas from web history

A method to write about topics your past self wishes existed


PostgREST datetime operators

Quick reference to PostgREST operator behavior with datetime columns


Opinionated UI: SVG icons in React

Opinionated way to use SVGR to serve SVG icons in a React design system library


Implement user impersonation in Supabase

How to impersonate users in Supabase


Generating Supabase JWT/access token manually

How to manually generate JWT tokens to use Supabase services as any user


Type-safe prop passing in Next.js server components

Flexible method for easily passing typed data from server in Next.js server components

Creating a Postgres function for a Supabase RLS policy

How to create Postgres function to be used in Supabase RLS policies


Opinionated UI: <Button> in React

Opinionated way to create a Button component in a React design system library



Building complex and interactive forms for React

How I built a complex form for React (with react-hook-forms). An introduction and learned best practices on how some common complex form usecases might be handled.



2D Navmesh generation and pathfinding in Javascript

Minimal-dependency navmesh generation and path-finding in Javascript


JSON Serialization might be your Rails bottleneck

Why your Rails app might surprisingly be bottlenecked by JSON serialization and what can you do about it


PostGIS marker culling

Implementing low-priority marker culling for PostGIS queries