# SaaS

URL: /products/templates/saas · Id: `productTemplate:saas`

> SaaS adds an App for people to Headless SaaS, sold as a Subscription per seat, with onboarding to first value.

SaaS adds an [App](/business/nouns/app) for people to [Headless SaaS](/products/templates/headless-saas), sold as a [Subscription](/business/nouns/subscription) per seat with onboarding to first value. Cancelling takes one step.

## The business
| Line | Default |
| --- | --- |
| Earns | `subscription` |
| Typical Prices | $15 to $49 a month per seat; $290 a year per seat |
| First revenue on | A [Demand Budget](/business/nouns/demand-budget) of $100 |
| Supply | `digital`: Agents do the work |
| Motions | [b2b](/business/motions/b2b), [b2c](/business/motions/b2c) |
| One metric per state | Idea: [Problem interviews](/agents/founding#problem-interviews); Building: [Committed ICP members](/agents/founding#committed-icp-members); Live: [Outside paying Customers](/agents/founding#outside-paying-customers); Repeatable: [Logo churn](/agents/customer#logo-churn); Scale: [Net revenue retention](/agents/customer#net-revenue-retention) |
| Seed Plays | [Reserve drop](/workflows/plays/reserve-drop), [Launch sites](/workflows/plays/launch-sites), [Cold email](/workflows/plays/cold-email) |
| Compounding Plays | [Programmatic SEO](/workflows/plays/programmatic-seo), [Answer engine optimization](/workflows/plays/aeo), [Product-led growth](/workflows/plays/product-led) |

| Offer | Price | Features | Limits | At its bound | On sale |
| --- | --- | --- | --- | --- | --- |
| Starter (`starter`) | $15 per seat, billed monthly | [Dashboard.ask](/business/nouns/dashboard/ask) | [Collection.export](/business/nouns/collection/export): 10 per rolling day | `upgrade` to Pro | Always |
| Pro (`pro`) | $49 per seat, billed monthly | [Dashboard.ask](/business/nouns/dashboard/ask), [Collection.export](/business/nouns/collection/export), [SSOConnection.activate](/business/nouns/sso-connection/activate) | None. | None. | Always |

An Entitlement bounded by a Limit has `kind` `limit`; one without has `kind` `feature`. The `kind` is computed, never set.

| `atBound` | A call past the Limit |
| --- | --- |
| `upgrade` | Refused with 402 `payment-required`, naming the next Offer, which `Entitlement.check` returns as `upgrade`. |

[Offer.publish](/business/nouns/offer/publish) puts each Offer on every buy surface: `checkout`, `paymentLink`, `pricingTable`, `portalEntry`, `mcpBuyTool`, `http402`.

## Adds
| Kind | Item | From |
| --- | --- | --- |
| Built from | [Headless SaaS](/products/templates/headless-saas) | This template |

## Wakes
- [Onboarding](/workflows/processes/onboarding)
- [Billing](/workflows/processes/billing)
- [Retention](/workflows/processes/retention)

## Staffing
- [Designer](/agents/product/designer)
- [Onboarding Specialist](/agents/customer/onboarding-specialist)
- [Success Manager](/agents/customer/success-manager)
- [Billing Specialist](/agents/finance/billing-specialist)

## Floor
- [Renewals](/systems/legal-and-corporate/floor/renewals)
- [Splits](/systems/legal-and-corporate/floor/splits)
- [Identity checks](/systems/legal-and-corporate/floor/identity)

## Controls
- [One-way Action windows](/systems/trust-and-governance/controls/one-way-windows)

## Builders
- [SoftwareBuilder](/code/builders/software)
- [SalesBuilder](/code/builders/sales)

## Next
- [Solo SaaS](/start/templates/solo-saas)

## Example
A [Startup](/business/nouns/startup) sells a gallery App for wedding photographers at $25 a seat a month. Each photographer reaches first value, a shared gallery, in the first session, through the [screens every App derives](/code/builders/software/interfaces#screens-for-people).