Farther ShoreDocs
Go to Farther Shore
Find every platform capability
How Farther Shore works
Choose a product shape
Install the CLI
Quickstart
Core concepts
Build a hybrid product
A pay-as-you-go API
A subscription SaaS app
OutcomePrerequisitesDefine the productValidate and launchVerifyCommon failures and recoveryNext stepsAgent prompt
Environment variables
Glossary
Status
Docs/Cookbook/A subscription SaaS app

A subscription SaaS app

Sell a hosted app with a flat monthly plan and managed billing UI.

Outcome

Build Quillby, a hosted app with a $19/month Pro plan. Farther Shore serves the account UI and runs checkout. You do not need an origin API for this managed-component path.

Use this recipe when customers consume your product through a signed-in web UI. For an API, use Pay-as-you-go API.

Prerequisites

  • Authenticated CLI and a managed business repository
  • A business definition with a frontend surface

Define the product

Create this declaration in business/, or split it across sibling modules. The folder must contain exactly one default-exported fs.business() result.

ts
import * as fs from "@farthershore/business";

const requests = fs.requests();

fs.plan("pro", {
  kind: fs.plan.kind.flat,
  price: fs.money.usd(19).monthly(),
  limits: [requests.perMinute(60)],
});

export default fs.business();

Validate and launch

bash
farthershore build --format json
farthershore validate --format json
git add business/ && git commit -m "define Quillby Pro" && git push
farthershore business publish quillby --dry-run --format json
# After explicit approval of the first draft activation:
farthershore business publish quillby --format json --idempotency-key <persisted-business-publish-attempt-key>
farthershore business status quillby --format json

Publishing is asynchronous; poll the last command until status is ACTIVE and live is true. If a prerequisite blocks the dry run, follow its stable remediation hint and repeat the preview before publishing.

Verify

  • The account page shows billing and plans.
  • Checkout activates Pro and updates the subscriber's pinned plan.
  • farthershore plan list quillby --format json shows the published version.

Common failures and recovery

SymptomFix
Publish succeeds but the app is not livePoll business status and inspect the Apply Timeline.

Correct contract mistakes in business/, then build, push, and publish the next GitHub Release from the managed repository. A repriced plan reaches new subscriptions; existing subscribers keep their recurring-price pin.

Next steps

  • Gate frontend UI
  • Freemium
  • Change a price

Agent prompt

Define Quillby as a frontend-only Farther Shore business with a $19/month Pro
plan and an authenticated account page. Build, validate, push, inspect the
repository checks, and show the publish dry run. Ask before
publishing, then poll until ACTIVE and live. Verify checkout pins the Pro plan.
PreviousA pay-as-you-go APINextEnvironment variables

On this page

OutcomePrerequisitesDefine the productValidate and launchVerifyCommon failures and recoveryNext stepsAgent prompt