Somebody installs a data grid on a Tuesday afternoon. It takes them an hour. After that, over the life of the product, it gets touched by the engineer who built the screen, the two who joined the team that year, a contractor covering parental leave, the agency doing the redesign, the platform engineer who moved it behind a new API, and whoever inherits the repository when the original author has moved on.
That is one installation and eleven people. Priced per developer, it is eleven licences. Nothing about the product changed.
The arithmetic, live
The grid above models it. Each row is a team shape we have actually seen. The head counts are the only stored numbers; every money column is computed in your browser from those two, so you can widen the columns and check the sums rather than take ours.
The per-seat column is labelled with its assumption in the heading, because it has to be: we are not going to publish somebody else’s price list, and a comparison that hides its own inputs is not a comparison. Seven hundred and fifty dollars a developer a year is a plausible figure for a commercial grid. Change it in your head, multiply the column, and the shape of the curve stays the same, because the shape is the argument rather than the number.
Ours is one thousand dollars per domain, including a year of support. Ten thousand covers a wildcard if you would rather not name the subdomains at all. There is no per-developer component to add up, because there is no per-developer component.
Read the first row before anything else. A solo developer shipping one thing pays less per seat than per domain, and the difference column shows that in parentheses rather than hiding it. A solo developer shipping one product is the one case where a per-seat licence can cost less; the second row is where it crosses over, and most teams are past it within a year.
What per-seat pricing actually costs
The money is the smaller half. The larger half is that per-seat pricing makes a grid something you have to administer.
It means somebody keeps a list of who has the dependency installed. It means a new starter is a purchase order before they are productive. It means the agency you brought in for six weeks needs a temporary seat, which needs an approval, which needs a person whose afternoon that becomes. It means an audit clause in the contract, and audit clauses mean that at some point a supplier will ask your engineering manager to account for a number they have never had a reason to know.
We have been on the buying side of that and it changes behaviour in ways nobody intends. Teams stop putting the good grid on the internal admin screen because the admin screen is not worth another seat. They keep a hand-rolled table alongside the licensed one. The tool gets used less precisely where using it more would have been cheapest.
What licensing by domain means in practice
One domain, one licence, however many people work on what runs there. Add developers, contractors and an agency without adding cost and without an audit. What multiplies is the number of places you deploy, which is a fact you already know, rather than the number of people you employ, which is a fact that changes every quarter.
Development on localhost is free and needs no key at all. You can build the real screen against your real data, put it in front of the people who will use it, and decide afterwards whether it earned the thousand dollars. There is no trial clock counting down while you wait for a design review, and there is no call to book first.
The grid above is running under the same licensing it describes, which is the only endorsement we can offer that costs us anything.
See what a licence covers or build against it locally first.