Grant Forrest
GitHub
Bluesky
Mastodon
Blog
An analogy is a tool
Aug 10, 2024
You can't escape complexity
Solve the cause, not the effects
Mar 14, 2024
At the risk of stating the obvious: it pays to care why things go wrong.
Building a Typescript + NodeJS Monorepo in 2024
Jan 18, 2024
The comprehensive guide to making your web app feel native
Aug 14, 2023
A deep dive into building a solid PWA and the UX tricks to employ that make native apps feel native
Replacing the battery on Nest Outdoor Camera
Aug 13, 2023
Calm tools
Jul 10, 2023
can software be better at helping us live without dictating how we do it?
Where I'm at on the bold claims of coding LLMs
Mar 27, 2023
Thoughts on the theory and practice of coding
Notes on Songwriting
Jan 2, 2023
Observations on rediscovering the process of songwriting
Compound index queries in IndexedDB
Dec 31, 2022
hacking unicode for advanced querying
Sustainable software should be simpler
Dec 3, 2022
I don't think we really need a fancy new model for this, just better scope.
Local-first data migrations
Nov 23, 2022
now with time travel!
Syncing local web app data
Sep 19, 2022
one naive approach, at least
Towards small, local web apps
Sep 15, 2022
why I'm building a new system for web storage and sync
Alarm Clock
Jun 22, 2020
A journey in reverse-engineering and IoT