I set myself one rule for a side project: every tool has to run entirely in the user's browser. No file ever gets uploaded to a server. If I couldn't do something client-side, it didn't ship.

That rule turned out to be a great filter for what to build, and a brutal filter for how. Here's what actually broke along the way — a broken model file...