Quote the real price, and stop the Free plan looking like the best one

Fixkamo-internal
Shipped
September 6, 2026 at 7:51 PM UTC
Author
Kamo
Commit
29bc946

Two things on this page were wrong in a way that reaches customers. The price. bestRate() took the cheapest rate across all three terms and printed it as "per seat, per month", so the page advertised Starter at $49 and Business at $99 — the THREE-YEAR committed rates — when month-to-month is $69 and $119. A prospect would have reached checkout to a number a third higher than the one that sold them. The term is now a control the reader sets, every figure names the commitment it is quoting, and the rates come from planRate/offeredRate — the same helpers the console that takes the money uses, so the two cannot drift. The live offer is applied from the catalogue rather than ignored, and the one-time $99-per-seat startup fee is shown beside the rate: quoting only the recurring amount understates a five-seat Starter order by $495, which is the whole first invoice. Enterprise no longer carries a number at all. Its plan_type is CUSTOM and the public site prices it on application; the catalogue happens to hold 119/109/99 rows, and printing them asserts terms nobody has agreed. Its startup fee is suppressed for the same reason — every term of a negotiated plan is negotiated. The trial. A trialling organization's plan row says FREE while the trial has everything on, so a table reading "Included" on all 56 rows showed the Free plan holding more than any paid plan beside it — the page arguing against itself. What is about to happen is a loss, so the page says so and counts it: the hero names how many features switch off, every row says whether it survives, and each plan is measured as how much of that loss it keeps rather than as an addition to a plan the customer is not really on.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing