Update for the week ending on Friday, Jun 12, 2026
mtlynch.io
- Published my May 2026 retrospective
- Fixed some broken links
- Including every twitter link, as Twitter now rejects link checking from CircleCI.
Refactoring English
- Improved the preface after re-reading it for the first time in a couple of months
- Cleaned up stray unused files that were being exported in the HTML build
- Gave editorial feedback to a reader
Feedback App
- Added support for capturing feedback
- Massive 4 KLOC change
- Added support for replying to feedback
- Added an author feedback dashboard for summarizing feedback
- Use more HTTP verbs like
PUTandDELETEinstead of making everything aPOST - Added more strongly typed structs instead of relying on strings
- Split the design milestones into more granular chunks to mitigate the great blockade
- Integrated htmx
- Switched comment edit and deletes to return HTTP 204 instead of HTTP 200 and force a page reload for no reason
- Merged together the types for
PageandChapterintoChapter - Renamed a bunch of functions / types for consistency and brevity
- Prevented SQL implementation details from bleeding into handlers
- Deleted
commentItemstruct- Refactored code to simplify, eliminating the need
- Modified the chapter discovery to better match the output format of the real book
- No nested HTML files
- No static assiets with
.htmlextension
Little Moments
Little Moments is an open-source web app I’m working on to replace the current family photo sharing app (TinyBeans) I used (which I strongly dislike).
- Partially implemented magic login authentication
- We don’t actually send login emails yet, so it’s essentially just verifying you know a valid email, but it puts a lot of the plumbing in place to implement magic logins without getting into the complexity of actually sending emails.
- Added more ignore directories to .air.toml
- We don’t need to rebuild the app on any of those source files changing
- Added an IPv4-based ratelimit to prevent email enumeration
- Enabled
PRAGMA foreign_keysexplicitly- I think our library does it implicitly, but might as well be sure
- Changed the UI semantics from “Sign in” to “Log in”
- Changed S3 config to be based on env vars instead of a config file
- Everything else is env vars, so it’s confusing for S3 to use a config file.
- Plus, I’m more familiar with all secrets just being env vars.
- Moved redirect path type to core types package
- Replaced duplicated test helpers
- And again
aw-web-ng
- Got interested in recording time tracking locally without relying on a cloud service that sees all my computer behavior
- Activity Watch is pretty neat, but I found the web UI terrible
- I vibe coded a CLI to match my tastes, and it’s been interesting so far.
- I’m planning to extend it into a web UI, but I’m taking baby steps to figure out what data I want to see.
Misc
- Worked on hammering out dates for local founder meetups
- We stopped meeting for 6+ months and it’s just because of the friction of getting meetings dates figured out
NixOS config
- Upgraded my laptop to NixOS 25.11