2024
Visiting Japan
I went to Japan and this would have been useful beforehand
2023
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
PostgREST: joins and join conditions
A look at how postgREST does joins and the gotchas involved
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
![slug](/assets/blog/ui-icons.png)
Opinionated UI: SVG icons in React
Opinionated way to use SVGR to serve SVG icons in a React design system library
![slug](/assets/blog/supabase-token-gen.png)
Generating Supabase JWT/access token manually
How to manually generate JWT tokens to use Supabase services as any user
![slug](/assets/blog/nextjs-data-pattern.png)
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
![slug](/assets/blog/ui-buttons.png)
Opinionated UI: <Button> in React
Opinionated way to create a Button component in a React design system library
2022
![slug](/assets/blog/complex-forms.png)
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.
2020
![slug](/assets/blog/navmesh.png)
2D Navmesh generation and pathfinding in Javascript
Minimal-dependency navmesh generation and path-finding in Javascript
![slug](/assets/blog/json-bottleneck.png)
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