Receber por email
← Voltar para o catálogo

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 revenue sharing, or turn an app into a business.

134estrelas
Atualizado há 6 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add popmechanic/VibesOS

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/factory-popmechanic/svg)](https://www.skillteca.com.br/skills/factory-popmechanic)

Skills relacionadas

Ver todas de DevOps e Infra →

Alerta por categoria

Receba novas skills de DevOps e Infra toda segunda

1 email curto, só com as skills novas de DevOps e Infra. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa
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 monthly invoice alongside the flat subscription fee."

Store: aiMarginPercent (number: 0 for no AI, 200 for 2x, 300 for 3x, etc.)

Step 4: Vibe Token Configuration

Use AskUserQuestion:

Question: "What percentage of revenue should flow to token holders? This is locked forever."
Header: "Revenue Share (Alpha)"
Options:
- "10% — Conservative"
- "15% — Balanced"
- "20% — Generous (recommended)"
- "25% — Very generous"
- Other (enter custom %)
Description: "Alpha determines how much of each invoice goes to Vibe Token holders. Higher alpha = more attractive to partners, but less developer take-home. This cannot be changed after launch."

Store: alpha (number, 0.10-0.50)

Auto-calculate remaining parameters:

const k = Math.max((price * 12) / 10_000_000, 0.005);
const preMint = Math.round(100 * price * 12);
const initialPrice = k * Math.sqrt(1000); // price at s_min

Show summary and confirm:

Use AskUserQuestion:

Question: "Confirm these token economics? (This is permanent)"
Header: "Token Summary"
Options:
- "Confirm and proceed"
- "Go back and adjust"
Description: |
  Revenue Share: {alpha*100}%
  Pricing Constant (k): {k}
  Treasury Size: {preMint} tokens
  Initial Token Price: ${initialPrice.toFixed(4)}
  Formula: P = {k} * sqrt(supply)

  At 100 subscribers ($X/mo each):
  - Monthly revenue: ${price * 100}
  - Token holder pool: ${Math.floor(alpha * price * 100 * 100)/100}
  - Token price: ${(k * Math.sqrt(1000 + preMint * 0.1)).toFixed(4)}

Step 5: Stripe Connect Onboarding

Get the auth token:

TOKEN=$(cat ~/.vibes/auth.json | python3 -c "import sys,json; print(json.load(sys.stdin)['accessToken'])" 2>/dev/null || echo "")

Create Stripe Connect account:

curl -s -X POST "https://factory.vibesos.com/connect/onboard" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"appName\": \"$APP_NAME\"}"

Expected response: { "ok": true, "url": "https://connect.stripe.com/...", "accountId": "acct_..." }

Open the onboarding URL in the user's browser:

open "$ONBOARD_URL"  # macOS

Poll for completion:

while true; do
  STATUS=$(curl -s "https://factory.vibesos.com/connect/status/$APP_NAME" \
    -H "Authorization: Bearer $TOKEN")
  COMPLETE=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('complete', False))")
  if [ "$COMPLETE" = "True" ]; then
    echo "Stripe Connect 
Compartilhar X LinkedIn