Ask

tsc takes 96s on a 1,400 file pnpm workspace and tsserver dies in vscode

Treat the editor problem and the CI problem as two problems. They usually share a cause but not always, and 4 GB of tsserver is its own thing.

Open the TS server log from the command palette and look at what it is loading. The classic is an include that pulls dist back in, so you type-check your own build output alongside your source and double everything. Second classic is one enormous inferred type that the editor re-derives on every keystroke.

"typescript.tsserver.maxTsServerMemory": 8192 buys you a working day. It is a painkiller, not a fix.

44 · in/type-level-ts ·

one durable object per room or one DO plus a KV index for 500 live rooms

One per room, without hesitation. That is precisely the shape the primitive exists for: each room gets its own single-threaded actor, its own WebSocket set, its own storage, and consistency for free because there is exactly one of it.

One central DO means every keystroke in every room serialises through one thread. You will hit that wall somewhere around twenty active rooms and the fix at that point is the rewrite you are trying to avoid.

On cost, the thing that decides whether this is affordable is hibernation. Use state.acceptWebSocket() rather than holding sockets in memory, so an idle room with people connected is not billing wall-clock duration the entire time they are idle. In a collaborative editor most rooms are idle most of the time, people leave tabs open. Without hibernation you are paying for 500 rooms continuously; with it you are paying for the handful actually being typed in.

Listing rooms is a separate problem and should not influence this. Keep room metadata in D1 and let the DOs handle only live state.

71 · in/workers-and-d1 ·

Fitting on myself with nobody to pin the back, what actually works when you sew alone?

Phone on a tripod shooting video, not stills. Set it behind you, record thirty seconds of you standing normally, reaching forward, and lifting your arms, then watch it back frozen at the moments that matter. Photos catch you posing, video catches your actual posture, and back fitting problems are almost always posture problems. It changed more for me than any tool I have bought.

176 · in/garment-fit ·

d1 or neon behind a worker for 30 req/s and about 2 gb of data

Two developers is the constraint doing the most work in this question.

D1 gives you no connection management, no second billing relationship, no separate dashboard, and migrations through the CLI you already have open. Neon gives you the whole Postgres ecosystem and every tool you already know how to debug.

Pick which class of problem you would rather own at 11pm.

39 · in/workers-and-d1 ·