Blog

Consistency isn’t repetition

Apr 13, 2025
3 min read

We are terrible at being the same person two days in a row.

The Covering Index Paradox

Apr 10, 2025
3 min read

SQLite index performance gap explained by B-tree height difference.

You are the easiest person to fool

Mar 9, 2025
3 min read

We humans are remarkably good at deceiving ourselves.

Migrate remix eslint-config to ESLint v9

Mar 2, 2025
3 min read

Custom ESLint v9 flat config for Remix from scratch.

Sitemap generation by streaming from WordPress headless

Nov 3, 2024
3 min read

Optimize sitemap generation by leveraging streaming and chunked transfer encoding.

Building a Fast and Compact SQLite Cache Store

Jul 24, 2024
3 min read

bun:sqlite combined with Msgpackr serialization, an efficient solution for building fast and compact cache stores.

Validated forms with useFetcher in Remix

Jul 10, 2024
3 min read

Build a custom 'useFetcherForm' hook to easily handle fetcher requests.

Fast, Intuitive, Smart: Restaurant search engine with Cloudflare AI

Apr 13, 2024
3 min read

Discover 'Cule filo' - An AI-Powered Restaurant Finder.

HTMX with Bun: A Real World App

Mar 5, 2024
3 min read

Build a custom 'useFetcherForm' hook to easily handle fetcher requests.

Tower of Hanoi in P5.js + WASM

May 8, 2023
3 min read

Implementation of the Tower of Hanoi problem using P5.js for animation and Rust compiled to WebAssembly (WASM).

Self-Hosted Password Manager with Dokku

Apr 19, 2023
3 min read

Details the process of setting up a self-hosted password manager using Dokku