Sextant
FAQ

Questions, answered.

Everything about installing Sextant, how the intelligent widgets compute their numbers, and how pricing works. Still stuck? Email hello@sextant.sh.

Getting started

What Sextant is and how to install your first widget.

What is Sextant?
Sextant is a paid shadcn/ui component registry of intelligent chart widgets for React across product, growth, finance and ops — conversion funnels, retention curves, revenue and NRR waterfalls, cash runway, forecasting, and anomaly detection. Every widget ships with built-in loading, empty, error and stale states and a one-sentence narrative that explains the chart automatically. Install any widget with `npx shadcn add @sextant/<widget>`.
How do I install a Sextant widget in a shadcn/ui project?
Register the @sextant namespace once in your `components.json` (`"@sextant": "https://sextant.sh/r/{name}.json"`), then run `npx shadcn add @sextant/<widget>`. The CLI copies a typed React/Recharts component into your repo, resolves its dependencies, and it inherits your existing shadcn theme tokens. Free-tier widgets install with no license; paid widgets validate a license key at install time.
Are there free Sextant widgets I can try before buying?
Yes. Sextant's chart primitives and one intelligent widget per category are free — including the states and narrative wrappers, a revenue area chart, a retention curve, an NRR waterfall and an anomaly time-series. Install a free widget directly with `npx shadcn add https://sextant.sh/r/<widget>.json`, read the source, and stress-test it before you decide. Only paid widgets require a license key.
How do I add a cash runway chart to a React or Next.js app?
Run `npx shadcn add @sextant/fpa-cash-runway`. The CLI copies a typed React/Recharts component into your project that renders monthly cash balance, a projected depletion line, a runway-in-months figure, and an auto-generated narrative. Pass your own data through the typed prop — no chart wiring required.

How the widgets work

The math, the states, and the parts generic chart libraries leave to you.

How is Sextant different from Tremor or raw shadcn charts?
Tremor and the built-in shadcn chart primitives give you generic chart shapes — you still build the domain logic, the loading/empty/error states, and the explanation yourself. Sextant ships domain-specific widgets across product, growth, finance and ops with the math, production states, and a deterministic narrative already baked in, so a retention curve or cash-runway card is one install instead of a day of work.
What are production states and why do they matter?
Every Sextant widget renders four states out of the box: a loading skeleton shaped like the chart (so the layout doesn't jump when data arrives), an intentional empty state, an error state, and — the one most dashboards forget — a stale state for when the numbers are old. They're wired through a single `<ChartStates>` wrapper, so a dashboard you'll be held accountable for never silently shows a broken or out-of-date chart.
Do Sextant charts need an LLM or API key to generate insights?
No. Every narrative — anomaly callouts, forecast bands, variance drivers, cohort highlights — is computed by pure, deterministic TypeScript (z-scores, Holt linear forecasting, waterfall bridges). There is no LLM, no API key, no network call, and no hallucination risk — which is what teams shipping production dashboards need.
How do Sextant's forecasts and uncertainty bands work?
Sextant's forecasting widgets compute prediction intervals from the model's own residuals (ETS/Holt one-step errors), not decorative bands, and report a backtested coverage number so you can see whether the interval actually held on your own history. When a series is short, an optional cohort prior lets the band borrow strength from its segment and shrinks back to your own errors as history accumulates. The result is an uncertainty cone you can defend when someone asks how you produced it.
Can I use my own data with a Sextant widget?
Yes — that's the normal path. Each widget declares a typed data contract (a Zod schema) with a `safeData` adapter, so you map your rows onto the widget's shape and bad data fails at the boundary with a clear message instead of crashing deep in a render. You can paste CSV/JSON to auto-map columns, or bind a live source through the optional MCP data hook.
Can I customize the theme and colors of Sextant charts?
Widgets inherit your existing shadcn/ui theme tokens, so they look like your app by default. For finer control, Sextant ships a chart-first theme builder that tunes the chart palette in OKLCH and exports the tokens back into your project. Because you own the JSX after install, anything beyond that is a normal code edit.

Stack & compatibility

The frameworks Sextant targets and the versions it's tested against.

Which stack does Sextant work with?
Sextant targets React 19, Next.js, Tailwind CSS v4, Recharts 3, and shadcn/ui. Widgets install through the standard shadcn CLI, resolve their dependencies automatically, and inherit your existing shadcn theme tokens — plus a chart-first theme builder for tuning the chart palette.
Does Sextant support the Next.js App Router and React Server Components?
Yes. Sextant is built and tested on Next.js with the App Router and React 19. The widgets are client components (charts are interactive), so you drop them into a server-rendered page the usual way. The published version-support matrix at https://sextant.sh/version-support lists the exact Next.js, React and Node versions each release is tested against in CI.
Are Sextant widgets accessible (WCAG)?
Yes. Sextant widgets target WCAG 2.1 AA — they are keyboard-navigable, expose accessible names, and provide a text alternative to the chart, backed by the deterministic one-sentence narrative that gives non-visual users the same takeaway a sighted reader gets from the shape.

AI agents & MCP

How coding agents discover and install Sextant.

Can AI coding agents like Cursor or Claude Code install Sextant widgets?
Yes. Sextant ships an MCP server so AI agents can search the catalog, inspect a widget's data contract, bind your data, and emit a ready-to-paste `npx shadcn add @sextant/<widget>` command. The widgets are also fully documented for agents that read `/llms.txt`.
Does Sextant have an MCP server and llms.txt?
Yes to both. The MCP server exposes tools for an agent to search the catalog, read a widget's Zod data contract, map your data onto it, and produce the exact `npx shadcn add @sextant/<widget>` command. Sextant also publishes an `llms.txt` at https://sextant.sh/llms.txt so any assistant that reads it can navigate the full catalog. Sextant is meant to be installable by an agent, not only by a human.

Pricing & licensing

What you pay for, and what happens to the code you install.

How much does Sextant cost?
Sextant has three tiers, all with published prices. Indie is $99 one-time and includes 12 months of updates, for a solo developer and a single product. Product is $490 per product per year for a product that embeds analytics. Business is $1490 per year for up to five products, including customer-facing embedding. A set of widgets is free with no license, and every purchase carries a 14-day money-back guarantee.
Why a subscription if the code installs into my repo?
You're not paying for the code — you own that after one install. You're paying for it to stay correct: new widgets, refinements, and fixes as React and Next change underneath you. Cancel anytime and you keep every widget you've already installed, frozen at its current version; the subscription only gates pulling new and updated ones. Solo devs and single products can instead buy the Indie tier once — no subscription, and it installs updates and new widgets for 12 months, after which the widgets in your repo stay yours and are frozen the same way.
What happens to my widgets if I cancel or my Indie updates expire?
You keep every widget you've already installed, frozen at its current version, forever — the code is in your repo and licensed perpetually. What lapses is the ability to pull new and updated widgets: a canceled subscription, or an Indie key past its 12-month window, stops installing new versions but never reaches into your app to disable anything.
Can I use Sextant in a commercial or customer-facing product?
Yes. Indie covers a solo developer shipping a single product, and Product covers one commercial product with ongoing updates. Embedding Sextant into a product you ship to your own customers, or covering up to five products, is the Business tier. The full terms are on the license page at https://sextant.sh/license.
Does Sextant offer refunds?
Yes — a 14-day money-back guarantee on every purchase. Paddle is the merchant of record, so EU VAT and invoicing are handled at checkout. See https://sextant.sh/refund for details.