Skip to content
Development
Skill

/factory

Self-contained SaaS pipeline — invoke directly, do not decompose. Generates a factory app with landing page, Stripe subscription checkout, Vibe Token economics, and deploys to Cloudflare Workers. Use when the user wants to monetize an app, add billing, create token-backed

From plugin
vibes
13311 skills2 hooks
Install
$ npx -y skills add popmechanic/VibesOS --skill factory --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/factory

Context preview

The summary Claude sees to decide when to auto-load this skill.

Self-contained SaaS pipeline — invoke directly, do not decompose. Generates a factory app with landing page, Stripe subscription checkout, Vibe Token economics, and deploys to Cloudflare Workers. Use when the user wants to monetize an app, add billing, create token-backed

SKILL.md

factory.SKILL.md
name: factory
argument-hint: "[app-name]"
description: Self-contained SaaS pipeline — invoke directly, do not decompose. Generates a factory app with landing page, Stripe subscription checkout, Vibe Token economics, and deploys to Cloudflare Workers. Use when the user wants to monetize an app, add billing, create token-backed revenue sharing, or turn an app into a business.
license: MIT
allowed-tools: Read, Write, Bash, Glob, AskUserQuestion
metadata:
  author: "Marcus Estes"

> **Plan mode**: If you are planning work, this entire skill is ONE plan step: "Invoke /vibes:factory". Do not decompose the steps below into separate plan tasks.

**Display this ASCII art immediately when starting:**

░▒▓████████▓▒░░▒▓██████▓▒░ ░▒▓██████▓▒░▒▓████████▓▒░░▒▓██████▓▒░░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░  ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░         ░▒▓█▓▒░  ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓██████▓▒░ ░▒▓████████▓▒░▒▓█▓▒░         ░▒▓█▓▒░  ░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░  ░▒▓██████▓▒░
░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░         ░▒▓█▓▒░  ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░  ░▒▓█▓▒░
░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░  ░▒▓█▓▒░  ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░  ░▒▓█▓▒░
░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░░▒▓██████▓▒░   ░▒▓█▓▒░  ░▒▓██████▓▒░░▒▓█▓▒░░▒▓█▓▒░   ░▒▓█▓▒░

Quick Navigation

  • [Critical Rules](#-critical-rules---read-first-) - Read this first
  • [Step 1: Pre-Flight](#step-1-pre-flight) - Verify prerequisites
  • [Step 2: Subscription Pricing](#step-2-subscription-pricing) - Set monthly price
  • [Step 3: AI Token Billing](#step-3-ai-token-billing) - Configure AI margins
  • [Step 4: Vibe Token Config](#step-4-vibe-token-configuration) - Set revenue share
  • [Step 5: Stripe Connect](#step-5-stripe-connect-onboarding) - Developer onboarding
  • [Step 6: Deploy](#step-6-deploy) - Build and deploy
  • [Step 7: Generate Invite Codes](#step-7-generate-invite-codes-optional) - Invite partners

---

CRITICAL RULES - READ FIRST

**DO NOT generate code manually.** This skill uses pre-built scripts and API calls:

| Step | Tool | What it does | |------|------|--------------| | Assembly | `assemble-factory.js` | Generates unified index.html | | Deploy | `deploy-cloudflare.js` | Deploys to Cloudflare Workers | | Configure | `POST /app/configure` | Stores billing config in KV | | Initialize | `POST /token/:appName/initialize` | Sets up Vibe Token economics | | Grant | `POST /token/:appName/grant` | Grants tokens to partners |

**Script location:**

VIBES_ROOT="${CLAUDE_PLUGIN_ROOT:-$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")}"

**Factory API base:** `https://factory.vibesos.com`

---

Factory - App Monetization Pipeline

Transform your Vibes app into a revenue-generating SaaS with token-backed contributor rewards.

Architecture

The factory skill sets up:

  • **Stripe Subscriptions** — flat monthly price + metered AI token billing
  • **Vibe Token Economics** — revenue-sharing tokens for distribution partners
  • **Factory Dashboard** — manage tokens, view revenue, process payouts

All configuration is stored in the factory worker. Token state lives in a Durable Object per app.

---

Terminal or Editor UI?

Detect whether you're running in a terminal (Claude Code CLI) or an editor. **Terminal agents** use `AskUserQuestion` for all input. **Editor agents** present requirements as a checklist comment, wait for user edits, then proceed. See the vibes skill for the full detection and interaction pattern.

Step 1: Pre-Flight

**Before starting, verify these prerequisites. STOP if any check fails.**

1.1 Auth Check

Auth is automatic — on first deploy, a browser window opens for Pocket ID login. Tokens are cached at `~/.vibes/auth.json` for subsequent deploys.

1.2 Detect Existing App

ls -la app.jsx 2>/dev/null || echo "NOT_FOUND"

**Decision tree:**

  • Found `app.jsx` -> Proceed to Step 2
  • Found multiple `riff-*/app.jsx` -> Ask user to select one
  • Found nothing -> Tell user to run `/vibes:vibes` first

1.3 Check Existing Config

VIBES_ROOT="${CLAUDE_PLUGIN_ROOT:-$(dirname "$(dirname "${CLAUDE_SKILL_DIR}")")}"
APP_NAME="${1:-}"
if [ -n "$APP_NAME" ]; then
  curl -s "https://factory.vibesos.com/connect/status/$APP_NAME" \
    -H "Authorization: Bearer $(cat ~/.vibes/auth.json | python3 -c "import sys,json; print(json.load(sys.stdin)['accessToken'])")" 2>/dev/null
fi

If the app already has billing configured, offer to update or show current config.

1.4 Pre-Flight Summary

> "Pre-flight checks passed: > - App found (app.jsx) > - Auth is automatic via Pocket ID > > Ready to configure your app factory."

---

Step 2: Subscription Pricing

Use AskUserQuestion:

Question 1: "What should your app cost per month?"
Header: "Monthly Price"
Options:
- "$5/month"
- "$10/month"
- "$25/month"
- Other (enter custom amount)
Description: "This is the flat monthly subscription price. AI token usage is billed separately."

Question 2: "Offer a free trial?"
Header: "Free Trial"
Options:
- "No trial"
- "7-day trial"
- "14-day trial"
Description: "Trial lets users try before paying. Stripe handles the trial period automatically."

Store: `price` (number, dollars), `trialDays` (number, 0/7/14)

---

Step 3: AI Token Billing

Use AskUserQuestion:

Question: "Does your app use AI features?"
Header: "AI Billing"
Options:
- Label: "No AI features"
  Description: "Skip AI billing setup"
- Label: "Yes, 2x margin (recommended)"
  Description: "Customers pay 2x the model cost. You keep the difference."
- Label: "Yes, 3x margin"
  Description: "Higher margin, customers pay 3x model cost."
- Label: "Yes, custom margin"
  Description: "Enter your own multiplier."

If AI is enabled, explain: > "OpenRouter routes to the underlying provider; the factory worker meters token usage per customer and posts events to a shared Stripe Billing Meter. Your customers will see AI usage as a line item on their

Read more
Ships withvibes

Instantly make your own small multi-user apps, without a backend. For apps made with Vibes, the front-end is the app.

Get the whole plugin
Stats
133
Stars
5
Forks
Maintained
Maintenance
HTML
Language
MIT
License
1mo ago
Last commit
8mo ago
Created

Repo: popmechanic/VibesOS

Other skills on vibes.