Skip to content

Commit bd0de8a

Browse files
jesseouecursoragent
andcommitted
chore: sharpen API SaaS positioning
Lead with the API SaaS recipe as the traction wedge and align the site, docs, README, registry metadata, and AI discovery copy around modules as editable source. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 6c55d57 commit bd0de8a

24 files changed

Lines changed: 299 additions & 230 deletions

File tree

AGENTS.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Agent Context
22

3-
StackFoundry is a public source registry for production SaaS modules.
3+
StackFoundry is a public source registry for production SaaS modules. The sharp public wedge is API SaaS: API keys, usage tracking, rate limits, credits, Stripe billing, docs, and webhooks as editable source.
44

55
## Product Rules
66

@@ -34,6 +34,8 @@ Before moving to a new phase:
3434

3535
Use this product positioning:
3636

37-
> Install production SaaS modules as editable source code.
37+
> shadcn for production SaaS systems.
38+
>
39+
> Install API keys, usage tracking, billing, webhooks, and production SaaS modules as editable source code.
3840
39-
Avoid overclaiming unsupported providers. Keep launch scope narrow and credible. AI-related modules are optional module categories, not the core project identity.
41+
Avoid overclaiming unsupported providers. Keep launch scope narrow and credible. Lead with the API SaaS recipe before broad catalog coverage. AI-related modules are optional module categories, not the core project identity.

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
### Changed
1616

17+
- Sharpened public positioning around the API SaaS wedge: API keys, usage tracking, rate limits, credits, Stripe billing, docs, and webhooks as editable source.
1718
- Pointed module maintenance skills to installed shared provider, framework, database, SDK, and platform skills.
1819
- Standardized provider adapter registry language and replaced legacy provider wording/paths.
1920
- Renamed public command examples to `stackfoundry`.

README.md

Lines changed: 44 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# StackFoundry
22

3-
Install production SaaS modules as editable source code.
3+
shadcn for production SaaS systems.
44

55
[![CI](https://github.com/jesseoue/stackfoundry/actions/workflows/ci.yml/badge.svg)](https://github.com/jesseoue/stackfoundry/actions/workflows/ci.yml)
66
[![CodeQL](https://github.com/jesseoue/stackfoundry/actions/workflows/codeql.yml/badge.svg)](https://github.com/jesseoue/stackfoundry/actions/workflows/codeql.yml)
@@ -14,25 +14,40 @@ Install production SaaS modules as editable source code.
1414
![Presets](https://img.shields.io/badge/presets-13-teal)
1515
![Inspired by shadcn](https://img.shields.io/badge/inspired%20by-shadcn-111111)
1616

17-
StackFoundry is a public source registry for the product plumbing most SaaS teams rebuild: billing, auth, API keys, webhooks, docs, analytics, notifications, operations, provider adapters, and launch readiness.
17+
StackFoundry is a public source registry for the production systems SaaS teams rebuild: API keys, usage tracking, rate limits, Stripe billing, credits, webhooks, auth, docs, analytics, and operations.
1818

1919
Modules install as source files in your app. You review the code, own the code, and keep the maintenance context that ships with it.
2020

21-
> [!NOTE]
22-
> The registry is the product. Presets are only curated bundles of modules.
21+
> [!IMPORTANT]
22+
> The registry is the product. Modules are the unit of value. Recipes are the guided path. Presets are convenience bundles.
2323
24-
StackFoundry is inspired by the shadcn registry/source-block model and applies that idea to production SaaS systems: modules ship as editable source, not opaque dependencies.
24+
Start with the sharp wedge: launch an API SaaS with billing, credits, API keys, usage tracking, docs, and webhooks as editable source.
2525

2626
## Why Use It
2727

2828
| Problem | StackFoundry gives you |
2929
| --- | --- |
30-
| Rebuilding the same SaaS systems | Installable source modules for common production capabilities |
30+
| Shipping an API product | API keys, usage, quotas, credits, billing, docs, and webhooks as source |
3131
| Black-box starter lock-in | Normal files, routes, schemas, docs, checklists, and maintenance skills |
3232
| Provider sprawl | Optional adapters around shared product concepts |
3333
| Unsafe copy/paste snippets | Manifests, env metadata, dependency metadata, and registry validation |
3434
| Hard-to-review upgrades | Dry runs, diff commands, tracked install metadata, and generated examples |
3535

36+
## Best First Use Case
37+
38+
```bash
39+
pnpm stackfoundry add recipe api-saas-starter --target ./my-app --dry-run
40+
pnpm stackfoundry add recipe api-saas-starter --target ./my-app
41+
```
42+
43+
The API SaaS recipe installs the path most developer tools, AI APIs, data APIs, and B2B platforms need first:
44+
45+
- API key lifecycle and verification
46+
- usage metering, quotas, and rate limits
47+
- credit wallet and Stripe billing foundations
48+
- webhook inbox and outbound delivery
49+
- API docs, request visibility, auditability, and operating checks
50+
3651
## Quick Start
3752

3853
```bash
@@ -43,8 +58,8 @@ pnpm registry:doctor
4358
pnpm registry:categories
4459
pnpm registry:list
4560

46-
pnpm stackfoundry add api-keys --target ./my-app --dry-run
47-
pnpm stackfoundry add preset next-saas --target ./my-app --dry-run
61+
pnpm stackfoundry recipe api-saas-starter
62+
pnpm stackfoundry add recipe api-saas-starter --target ./my-app --dry-run
4863
```
4964

5065
Install from the public registry URL when you want to consume generated registry items:
@@ -98,10 +113,31 @@ Current source registry coverage:
98113

99114
</details>
100115

116+
## Modules, Recipes, Presets
117+
118+
The public hierarchy is intentionally simple:
119+
120+
- Modules are the product.
121+
- Recipes explain the install path and order.
122+
- Presets are bundles for convenience.
123+
124+
## Recipes
125+
126+
Recipes are opinionated install paths that explain what to install together and in what order.
127+
128+
```bash
129+
pnpm stackfoundry recipes
130+
pnpm stackfoundry recipe api-saas-starter
131+
pnpm stackfoundry add recipe api-saas-starter --target ./my-app --dry-run
132+
```
133+
134+
High-priority recipes include `api-saas-starter`, `saas-starter-minimal`, `enterprise-saas`, `ai-saas-starter`, `cloudflare-saas`, `support-ops`, `security-center`, `integration-marketplace`, and `customer-intelligence`.
135+
101136
## Presets
102137

103138
| Preset | Intended path |
104139
| --- | --- |
140+
| `api-saas-starter` | API-first SaaS workflow with keys, usage, rate limits, credits, billing, webhooks, docs, and observability |
105141
| `next-saas` | Broad app foundation with database, billing, account surfaces, docs, ops, security, and growth modules |
106142
| `b2b-saas` | Team workspaces, tenant controls, RBAC, auditability, SSO, and SCIM |
107143
| `developer-platform` | API keys, public APIs, webhooks, docs, SDK snippets, and developer portal modules |
@@ -111,7 +147,6 @@ Current source registry coverage:
111147
| `vercel-native` | Vercel deployment, storage, workflows, edge config, and observability path |
112148
| `cloudflare-native` | Workers, D1, R2, KV, Queues, Workflows, Turnstile, and Cloudflare-native adapters |
113149
| `provider-adapters` | Concrete optional provider adapter examples |
114-
| `api-saas-starter` | API-first SaaS workflow with keys, usage, rate limits, billing, webhooks, docs, and observability |
115150
| `enterprise-saas` | Enterprise layer with SSO, SCIM, audit, access review, security, SLA, and support workflows |
116151
| `ai-saas-starter` | AI SaaS workflow with Vercel AI SDK chat, AI Elements, usage metering, quotas, and billing |
117152

@@ -120,18 +155,6 @@ pnpm registry:presets
120155
pnpm stackfoundry add preset next-saas --target ./my-app --dry-run
121156
```
122157

123-
## Recipes
124-
125-
Recipes are opinionated install paths that explain what to install together and in what order.
126-
127-
```bash
128-
pnpm stackfoundry recipes
129-
pnpm stackfoundry recipe api-saas-starter
130-
pnpm stackfoundry add recipe api-saas-starter --target ./my-app --dry-run
131-
```
132-
133-
High-priority recipes include `saas-starter-minimal`, `api-saas-starter`, `enterprise-saas`, `ai-saas-starter`, `cloudflare-saas`, `support-ops`, `security-center`, `integration-marketplace`, and `customer-intelligence`.
134-
135158
## StackFoundry Command
136159

137160
The `stackfoundry` command intentionally stays on Node + pnpm. It is a small registry/install engine, not an interactive component wizard.

apps/cli/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# StackFoundry Command
22

3-
The `stackfoundry` command is the local install engine for StackFoundry registry modules.
3+
The `stackfoundry` command is the local install engine for StackFoundry registry modules. The clean first path is the API SaaS recipe: keys, usage, quotas, credits, billing, docs, and webhooks as editable source.
44

55
## Responsibilities
66

7-
- List modules and presets.
7+
- List modules, recipes, and presets.
88
- Browse canonical categories and search modules.
99
- Validate registry source.
1010
- Build registry-compatible output.
11-
- Install modules or presets into a target app.
11+
- Install modules, recipes, or presets into a target app.
1212
- Install generated registry block JSON from local files or StackFoundry registry URLs.
1313
- Refuse to overwrite modified target files unless `--force` is explicit.
1414
- Write install metadata for future diff/update workflows.
@@ -33,8 +33,8 @@ pnpm stackfoundry recipes
3333
pnpm stackfoundry recipe api-saas-starter
3434
pnpm stackfoundry doctor
3535
pnpm stackfoundry build
36-
pnpm stackfoundry add api-keys --target /tmp/app --dry-run
3736
pnpm stackfoundry add recipe api-saas-starter --target /tmp/app --dry-run
37+
pnpm stackfoundry add api-keys --target /tmp/app --dry-run
3838
pnpm stackfoundry add preset provider-adapters --target /tmp/app --dry-run
3939
pnpm stackfoundry add https://stackfoundry.dev/r/api-keys.json --target /tmp/app --dry-run
4040
pnpm stackfoundry diff api-keys --target /tmp/app

apps/web/app/ai-seo.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ export const aiSeoPages: AiSeoPage[] = [
1111
{
1212
title: "Home",
1313
path: "/",
14-
description: "StackFoundry positioning, install flow, module previews, and product overview.",
15-
audience: "founders, builders, platform teams, and AI systems evaluating SaaS module coverage",
14+
description: "API SaaS positioning, install flow, module previews, and product overview.",
15+
audience: "founders, devtools builders, agencies, platform teams, and AI API teams",
1616
},
1717
{
1818
title: "Docs",
@@ -23,8 +23,8 @@ export const aiSeoPages: AiSeoPage[] = [
2323
{
2424
title: "Registry",
2525
path: "/registry",
26-
description: "Catalog of modules, presets, provider adapters, and registry families.",
27-
audience: "teams choosing SaaS capabilities, provider adapters, and install paths",
26+
description: "Catalog of modules, recipes, provider adapters, and registry families.",
27+
audience: "teams choosing API SaaS capabilities, provider adapters, and install paths",
2828
},
2929
{
3030
title: "Registry Index",
@@ -43,7 +43,7 @@ export function renderLlmsTxt() {
4343
.map((page) => `- [${page.title}](${absoluteUrl(page.path)}): ${page.description}`)
4444
.join("\n");
4545

46-
return `# StackFoundry\n\n> Install production SaaS modules as editable source code. StackFoundry is a public source registry for billing, auth, docs, API products, operations, analytics, provider adapters, and optional AI modules.\n\n## Primary Pages\n\n${links}\n\n## Machine-Readable Surfaces\n\n- [Registry JSON](${absoluteUrl("/r/registry.json")}): Public registry index.\n- [AI Sitemap](${absoluteUrl("/ai-sitemap.json")}): JSON summary of AI-discoverable pages.\n- [Full AI Context](${absoluteUrl("/llms-full.txt")}): Expanded context for systems that prefer one fetch.\n\n## Notes For Automation\n\n- The registry is the product; presets are only bundles of modules.\n- Modules install source files, docs, env notes, checklists, and maintenance skills.\n- Provider modules are adapters, not base dependencies.\n`;
46+
return `# StackFoundry\n\n> shadcn for production SaaS systems. Start with API keys, usage tracking, billing, webhooks, docs, and SaaS modules as editable source code.\n\n## Primary Pages\n\n${links}\n\n## Machine-Readable Surfaces\n\n- [Registry JSON](${absoluteUrl("/r/registry.json")}): Public registry index.\n- [AI Sitemap](${absoluteUrl("/ai-sitemap.json")}): JSON summary of AI-discoverable pages.\n- [Full AI Context](${absoluteUrl("/llms-full.txt")}): Expanded context for systems that prefer one fetch.\n\n## Notes For Automation\n\n- The registry is the product; modules are the unit of value.\n- Recipes explain install paths; presets are only bundles of modules.\n- The first traction path is api-saas-starter.\n- Provider modules are adapters, not base dependencies.\n`;
4747
}
4848

4949
export function renderLlmsFullTxt() {
@@ -54,13 +54,13 @@ export function renderLlmsFullTxt() {
5454
)
5555
.join("\n\n");
5656

57-
return `# StackFoundry Full AI Context\n\nStackFoundry helps teams install production SaaS modules as editable source code. Modules include source files, documentation, environment notes, verification checklists, and maintainer skills so teams can safely review what lands in an app.\n\n${pages}\n\n## Coverage\n\nStackFoundry covers foundation, database, auth and tenancy, billing, API products, operations, observability, analytics and growth, docs, SEO, support, security, storage, deployment, provider adapters, and optional AI modules.\n\n## Positioning\n\nUse StackFoundry when a team wants production SaaS capabilities without adopting a black-box starter. The installed code belongs to the target repository and can be edited, reviewed, diffed, migrated, and removed like normal source.\n`;
57+
return `# StackFoundry Full AI Context\n\nStackFoundry helps teams install production SaaS systems as editable source code. The sharp wedge is API SaaS: API keys, usage tracking, quotas, credits, Stripe billing, docs, webhooks, and request visibility.\n\n${pages}\n\n## Coverage\n\nStackFoundry covers foundation, database, auth and tenancy, billing, API products, operations, observability, analytics and growth, docs, SEO, support, security, storage, deployment, provider adapters, and optional AI modules.\n\n## Positioning\n\nUse StackFoundry when a team wants production SaaS capabilities without adopting a black-box starter. The installed code belongs to the target repository and can be edited, reviewed, diffed, migrated, and removed like normal source.\n`;
5858
}
5959

6060
export function getAiSitemap() {
6161
return {
6262
name: "StackFoundry",
63-
description: "Install production SaaS modules as editable source code.",
63+
description: "Install API SaaS systems and production SaaS modules as editable source code.",
6464
generatedAt: new Date().toISOString(),
6565
pages: aiSeoPages.map((page) => ({ ...page, url: absoluteUrl(page.path) })),
6666
feeds: {

0 commit comments

Comments
 (0)