A signup form POSTing to Google Sheets is the most common "backend" on the indie web. It works for your landing page demo. It works when you test it with 5 friends. It works right up until the moment you don't want it to fail. Here's the part nobody tells you: Google's own values.append endpoint silently drops rows under concurrent writes. Two simultaneous POSTs can resolve to the same target row and one of them gets overwritten. No error in your logs. No error in your client. Just rows that silently didn't land. Every "Sheets as a backend" wrapper you've heard of — SheetDB, Sheety, SheetBest, NoCodeAPI — forwards your request straight to values.append . They inherit the bug. I spent the last few weeks building a fix. It's called SheetForge, it's MIT-licensed, and this post is about the actual bug and why the fix isn't as simple as "throw a mutex on it." The bug, reproduced in 4 lines await Promise . all ([ sheets . values . append ({ ... rowA }), sheets . values . append ({ ... rowB }), sheets . values .…