The profile URL that wouldn't stick. Users could set a personal link (website, portfolio, socials) next to their bio — but on every refresh the value flashed and then vanished. The field was fully wired on the front end and the database column existed, yet every backend layer silently dropped it: the account-update controller never read it, the update manager's field allowlist excluded it, the user mapper never returned it, and the “me” endpoint left it off the response. So saving the link was a no-op, and on reload the client rendered the cached value for a moment before the server came back without it and wiped it out. We threaded the link through all four layers (capped to 200 characters, blank clears it) — no migration needed, the column was already there.
New plans for 2026. The subscription tiers were re-priced and re-described:
- Starter — $5/mo · 500K tokens — unlimited private chats, unlimited voice chat, 40MB storage.
- Plus — $10/mo · 1.5M tokens — everything in Starter, 100MB storage.
- Pro — $20/mo · 5M tokens — 200MB storage and 2 hours of video.
- Premium — $200/mo · 50M tokens — 2GB storage and 10 hours of video.
- Enterprise — $45,000/mo · 10B tokens — a branded experience, custom setup, 24/7 full support, 2TB storage, and 10 hours of video.
The plan cards were rewritten to lead with what people actually care about — token volume, unlimited chats and voice, storage, and video hours — instead of the old “X emails / Y blog posts” estimates. Token ceilings were raised on the backend (Pro to 5M, Premium to 50M, Enterprise to 10B) in lockstep across both internal limit tables and the client's display fallback, and the live Stripe prices and product descriptions were updated to match exactly so the checkout page and the plan card always agree.
Why it matters
A profile link that silently fails to save is the kind of small breakage that erodes trust in everything else. And pricing has to be coherent end-to-end — the number on the card, the limit the server enforces, and the amount Stripe charges all telling the same story. This pass made all of that line up.