KeyStrike settled React for the frontend and ran on Convex. I still needed a permanent, self-hosted foundation for the other applications: the server, the database connections, the API layer, all the plumbing. There are dozens of options and picking the wrong one means lost time. Don’t get me wrong, I love a good organic rewrite, but not when it’s avoidable.

I spent a day building eight tiny starter projects, each with a different combination of tools. One paired React with Express, another with Hono. Several paired Convex with tooling I had never used: a documentation framework, a desktop app wrapper, a code quality enforcer, and alternative validation libraries. Each one was just big enough to see how the tool felt and small enough that I wouldn’t feel bad deleting it. None of them will ever see a user.

By the end of the day, I had actual opinions about tools I’d only read about or starred the day before. The desktop app wrapper (Tauri) worked fine but solved a problem I didn’t have and wasn’t going to have. The documentation framework (Starlight) was pretty but created build conflicts that weren’t worth fixing. The code quality enforcer (Husky) was useful - I didn’t keep it, but it gave me ideas for the dev workflow. Hono felt new and unproven. Express felt stable but dated.

The right answer wasn’t in this batch. React is settled, and SQLite is looking strong for the database (simple, portable, no server required, and there are upgrade paths if I outgrow it). The backend framework is still an open question, and I’ll answer it by building something real.