A setup guide that verifies itself
Get Started rebuilt as a six-phase flow whose steps are proven from live data, live chat support in the console, and a subscription gate that holds server-side.
Added
6- ConsoleGet Started rebuilt as a six-phase setup flow — 22 steps in real dependency order, with a floating progress guide that follows you across the dashboard.
- ConsoleFourteen setup steps verify themselves against live tenant data and show their evidence; steps with no reliable signal stay manually tickable rather than showing a tick nobody earned.
- ConsoleEvery setup step links the documentation page, build guide or starter repository that helps finish it.
- ConsoleLive chat support in the console. Cloud only — a self-hosted install never ships the widget, and a read-only support session cannot write into a customer's conversation.
- BillingA subscription gate for cloud organizations: a lapsed plan now blocks the console and revokes tenant API access server-side. It fails open during an outage on our side, so a paying customer is never locked out by our downtime, and every degraded decision is logged for alerting.
- WebsiteAn affiliate program. Tracking is consent-gated and never ships in self-hosted installs.
Improved
1- BillingEntitlement decisions are cached in Redis rather than per process, so revoking access takes effect across every instance at once.
Fixed
6- BillingA brand-new organization whose provisioning failed was let in free under the fail-open rule. An organization that has never subscribed now blocks instead — there is no paying customer to protect.
- BillingSupport impersonation is exempt from the subscription gate everywhere, so a support session is never paywalled out of the unpaid organization it was sent in to look at.
- ConsoleEvery create dialog now runs the same validation as its edit form, and the server enforces the same rules, so a record created through one path can always be saved through the other.
- UsersNumber and boolean user attributes save again — values were coerced to strings before validation, so a typed default could never pass its own type check.
- ConsoleTable filters: dropdowns work inside dialogs, saved filter values survive editing, and a smart list's filters can be updated on their own.
- PlatformSetting workspace creation or member invites to Disabled now enforces — the flags were stored as strings, which the boolean guard never matched.