Write in public

Write at least one post every week.

Blog and TIL posts count, but microblogging and other small posts don’t.

This is part shipping, and part wanting to put down more of my ideas and projects and technical undertakings in public.

Inspired by Simon Willison’s (much more aggressive, and impressive) year-long daily posting streak.

Oh, I forgot to mention: lower your standards! Waiting until a piece feels as good as you can get it is a recipe for an empty blog and a huge folder full of drafts

I try to hit publish while I am still unhappy with what I’ve written

Simon Willison

It is currently week 48 of 2025, I have published 44 of 48 posts so far.

  1. (blog) Disgust is paleolithic moral software
  2. (blog) Fraktur history
  3. (blog) Hold Your Horses
  4. (blog) My focalarium
  5. (blog) Books and Bibliographer
  6. (blog) Ask culture fits the web
  7. (newsletter) February 2025 update
  8. (blog) Whatever I want
  9. (til) POSIX man pages on every system
  10. (til) scrollbar-gutter: stable
  11. (blog) LDAPEnforcer alpha release
  12. (til) Generate Kubernetes CRD documentation
  13. (til) Raspberry Pi and device tree
  14. (blog) U-Boot partition detection
  15. (blog) Conflating access and community considered harmful
  16. (til) Argo Workflows path trigger
  17. (blog) Play Tunic and read Nabokov
  18. (til) git note
  19. (blog) Using the plan/execute cycle with agentic LLMs
  20. (blog) Hammerspoon docs content adapter
  21. (blog) GridCraft
  22. (til) Writing docs for Hammerspoon spoons
  23. (til) Bash networking redirects
  24. (til) Pin prettier
  25. (blog) Named entities for any text field
  26. (blog) Announcing KeymapKit
  27. (blog) My earliest ErgoDox keymap
  28. (blog) Search is not a user feature
  29. (blog) Claude Code in a Chinese Room
  30. (blog) Advantage360 keymap (summer 2025)
  31. (blog) /visual: A web component gallery
  32. (blog) Building .app bundles for launchd with AppleScript
  33. (blog) package.json scripts with default arguments
  34. (blog) jj statlog
  35. (blog) Idempotently creating windows with AeroSpace
  36. (blog) Deepfakes: just rip the bandaid off
  37. (blog) Fandom considered harmful
  38. (blog) AWS account hygiene
  39. (blog) Kindle Notebook export
  40. (blog) Automated GitHub Issues search
  41. (til) hugo deploy, S3, and CloudFront
  42. (til) Hugo render templates for links
  43. (blog) Typography, CSS, and wrapping paper
  44. (blog) Wrapping paper

Focus