— The real cost is bytes plus glue plus the shared-chunk tax.
— Price bytes against your slowest reader's connection.
— Ask for the exit plan before the install.
The real invoice
A dependency costs its own bytes, plus the glue you write, plus the shared-chunk tax — once it lands in a module the shell imports, every route pays. The site's build report attributes chunks to project modules precisely so this tax is visible before the merge, not after the release.
The arithmetic that matters: bytes ÷ your slowest reader's connection. A 40 KB utility is two seconds of a 2G reader's patience, per page, until it is cached.
The questions
Can the 40 lines it would replace be written and owned instead?
Does it enter the shared chunk, or a route's own?
Does it hydrate, or is it CSS-only?
What is the exit plan — is the API small enough to unpick later?
The ratchet
Shared-shell budgets only work when they fail loudly. This repo's harness fails the build that grows the shell past its recorded number — and the number only moves through a written rationale.
Practise the lesson
Theory sticks when you ship it. These original Motif assets put this guide's lesson to work — open one and copy it into your own page.