DEV Community

Nic Flemmer
Nic Flemmer

Posted on

Make the expensive feature opt-in, and let people switch it on where they need it

Some features cost something even when you aren't using them. In Styx, tracking every file an agent edits, so you can review it hunk by hunk, needs watchers on the task's worktree. On large changes those watchers can slow things down, so tracking is off by default.

The trade-off showed up on the Review screen. Open it with tracking off and you got an empty state with a button that sent you to Settings. You leave what you were doing, find the switch, flip it, and come back.

The fix was small. The button now turns tracking on through the same settings command and stays on Review. The default is unchanged, and nobody pays for the watchers until they ask for the screen that needs them.

The rule I took from it: if a feature is off by default for a good reason, the place where its absence hurts should be able to switch it on. Sending someone to Settings is a dead end dressed up as a link.

The cost is that the switch now lives in two places, so the copy and the tests have to agree about what it does. I'd still take that over a hidden setting.

Where do you draw the line between a sensible default and a setting people have to hunt for?

Top comments (0)