Facebook, Messenger, Instagram, WhatsApp, Threads, X, Reddit, Discord. Eight platforms, eight different deletion policies. A full technical walkthrough of what 'delete' actually means on each one, the prep work nobody tells you to do first, and the human-side work the documentation doesn't mention.
Facebook, Messenger, Instagram, WhatsApp, Threads, X, Reddit, Discord. Eight platforms, eight different deletion policies. A full technical walkthrough of what 'delete' actually means on each one, the prep work nobody tells you to do first, and the human-side work the settings menu never mentions.
Facebook, Messenger, Instagram, WhatsApp, Threads, X, Reddit, Discord. Eight platforms, eight different deletion policies. A full technical walkthrough of what 'delete' actually means on each one, the prep work nobody tells you to do first, and the human-side work the settings menu never mentions.
A walkthrough of how I wired up Standard.site AT Protocol lexicons into this 11ty blog: from writing a custom publish script to migrating to Sequoia, with code for the link tags, and handle verification.
You don't need bloat. You can use CSS variables and Unicode symbols to add visual personality to your personal website while keeping it minimal, accessible, and fast-loading. Includes a reference of symbol sets (celestial, elemental, occult, card suits, chess, zodiac, and more) with colour examples using the Gruvbox palette.
By default, the OTWArchive codebase blocks all imports from AO3, a problem for every fork. My fix includes removing AO3 from PERMITTED_HOSTS, writing a custom Ruby story parser that extracts only the story content from AO3 work pages, and extending the same parser to support imports from other OTWA-based archives!
An ad-hoc, reproducible analysis for scanning public MRT updates for BGP communities, joining them with the IANA registry, and checking behavior against RFC text.
A step-by-step forensic investigation of the June 2026 Telegram BGP hijack using monocle and the BGPKIT API - public data, real commands, real output.
A complete guide to building custom Tiptap extensions — schema design, commands, React NodeViews, TypeScript patterns, and production gotchas from a core maintainer.
ProseMirror can feel intimidating at first because it does not think like most UI libraries. This guide explains the core mental model behind schemas, documents, state, transactions, and views.
A walkthrough of how I audited my 11ty build benchmarks and cut cold-start time from 14 seconds down to 2.6 seconds by caching two custom filters and swapping out a bare network fetch.
Use atproto to write a record because you can
A complete step-by-step tutorial for creating a bootable Catalina USB installer using mist-cli on modern macOS in order to downgrade an Early 2015 MacBook Pro from macOS Monterey to Catalina. Accidentally also a philosophical look at planned obsolescence, e-waste, and corporate control over hardware lifespan.
Learn a simple but effective technique that makes your blog more easily searchable for LLMs.
After building an IndieAuth comment system, I wanted to complete the loop by posting content to my site from an external client. Here's how I implemented a Micropub endpoint for my static site using Quill as the client.
A journey through authentication, CORS issues, and the joy of owning your comments! Learn how to build a comment system for your static site using IndieAuth and Netlify Functions, storing the comments in your git repository.
A simple gratitude journal online, with media tracking and Beeminder integration. Yes, yet another 11ty project technical write-up, but I promise you'll learn something.
A guide to automatically deploying your Eleventy static site to NeoCities using GitLab CI/CD, including authentication, error handling, and optimizations.
Reviving the classic guestbook for a static site using Netlify Forms and serverless functions, with lessons on distributed systems and race conditions.
Did you know you can just point AI at a blog post and have it build a piece of software? That‘s where we are now.
Learn a new and powerful way to build software on-demand, with little more than a simple description. No code required.
VMIL keynote arguing for post-POSIX shared memory interfaces like io_uring in language runtimes for high-performance concurrent computing.
Tutorial at ICFP 2025 on OxCaml extensions for performance engineering with modes and locals.
For the longest time, I’ve been using Cloudflare exclusively for web/API hosting and relatively lightweight tasks. For the most of my work on BGP, there is real...
took longer then it probably should have 😊
This is documented piecemeal elsewhere, but I ran into enough small issues as a WSL user that it seemed worth writing up, and while django-vite is a cool tool I think it assumes a lot of domain knowledge that new users may not have. Though I've been a fan of the HTMX minimal dependencies philosophy for a while, I am accepting the necessity of having some degree of JavaScript build pipeline: even if you're keeping all your logic on the back-end, there are plenty of things it's preferable to be a
I've been playing around with the idea of using Jupyter notebooks as a narrative game interface for a while, and finally got around to doing some prototyping this week. One thing I really wanted to do was require users to run code cells in Jupyter to unlock story beats: Jupyter notebooks are usually presented as a step-by-step tutorial, which is perfectly fine if you're trying to teach someone how to run a linear regression in sklearn but less so if you're trying to build suspense over the cours
A Technical Guide to Leaving a Legacy