Recipes
Shape the TinyShip starter into a concrete SaaS product with tinyship-recipe
Use tinyship-recipe to shape the starter into a concrete product (image or video SaaS, directory, digital product store, waitlist, and more). It is a playbook, not another hard-coded sub-template in the repo.
Philosophy
Every extra "sub-template" means three frameworks to maintain, and they drift when the main starter updates. So:
- Skills lock contracts: schema, migration names, credit rules, nav hide/keep, acceptance checks
- Agents do the rest: home copy, page details, and brand-facing text for your product
- Reuse existing modules: auth, payments, credits, AI pages — no duplicate stacks
Framework (Next / Nuxt / TanStack) and database (PG / SQLite / D1) stay your choice (or tinyship-setup); the recipe does not pick them for you.
Install and trigger
Same as other Agent Skills:
npx skills add TinyshipCN/tinyship-skillsExample prompts:
- "use a recipe for a directory site"
- "make an AI image app"
- "build a waitlist"
- "build an AI video generator"
- "build a digital product store"
- "SaaS template with TinyShip"
That runs the tinyship-recipe wizard: detect project → pick recipe → setup if needed → ask scope/brand/copy → apply → verify.
Available recipes
| ID | Product | Notes |
|---|---|---|
ai-image | AI image SaaS | Reuses /image-generate + credits + plans |
ai-video | AI video SaaS | Reuses /video-generate + credits + plans; a failed video returns its credits |
ai-chat | AI chat / GPT wrapper | Reuses /ai + credits + plans |
membership-content | Paid membership content | Blog, pricing, premium page |
waitlist | Pre-launch signup | Auth-first; hide pay and demos |
directory | Directory / navigation site | New schema + submit/review; credit listings and ad slots |
digital-product | Digital product store | Multi-product catalog; real-money one_time unlock + download; no license in v1 |
Complex recipes (like directory and digital-product) add tables and pages plus acceptance scripts; simple ones mostly reshape nav and copy toward existing capabilities.
Recipe intros
ai-image
AI image SaaS. Users sign in, spend credits on /image-generate, and buy more via plans. Other demos are hidden; Generate is promoted in the nav. After apply, configure an image provider key with tinyship-ai.
ai-video
AI video SaaS on /video-generate + credits + plans. Needs a starter recent enough to store video jobs in the ai_video_task table (libs/ai/video-task-service.ts must exist) so a failed generation returns its credits. If your project is older, the recipe stops and asks you to update the starter first.
After applying it, run tinyship-ai to add a video provider key (FAL_API_KEY, QWEN_API_KEY, or VOLCENGINE_ACCESS_KEY_ID). See AI video generation for models and per-model credit costs.
The recipe deliberately ships a minimal product: one generate page, credits, and plans. Your agent will suggest optional extensions at the end (a "My videos" list, a task detail page, an admin video list, clearer failure copy); it only builds them if you ask.
ai-chat
AI chat / GPT wrapper. Reuses /ai with credits and plans. Promotes Chat in the nav and hides image/video demos. After apply, configure a chat provider key with tinyship-ai.
membership-content
Paid membership around posts. Public blog teasers, pricing plans, and a gated premium page (e.g. /premium-features). Primary CTA goes to /pricing; Blog and Pricing stay in the nav. Configure a payment provider with tinyship-payment.
waitlist
Pre-launch signup. Auth is the product: hide pricing and demos, collect accounts via Better Auth signup (no extra waitlist schema). Switch to another recipe when you open the product.
directory
Directory / navigation site (complex). Home becomes the listing; signed-in users submit, admins approve; credits pay for listings and featured slots, plus hand-entered ads. Ships new tables, a migration, acceptance scripts, and an admin Directory entry.
digital-product
Digital product store (complex). Multi-product catalog; real-money one_time checkout on the product page; delivery is a purchase entitlement plus file download — no license key in v1. Hides Pricing, Demos, and Blog from the nav. New tables plus payment fulfillment hooks (providers untouched). Acceptance uses fake orders only — never live Stripe / Creem / etc.
Usage and acceptance
After apply, check the running app (default Chinese locale and /en):
- Home reflects your product, not the TinyShip three-framework pitch
- Primary CTA lands on the recipe target (image generate, submit, signup, product page, etc.)
- Hidden demo links are gone from header and footer (including mobile); route files stay
- Sign-in / sign-up titles use the product name
- Complex recipes: required pages return 200; migrations and seeds match the playbook
Logo text may still say TinyShip until tinyship-brand; report it, do not treat it as a recipe failure.
How skills divide work
| Need | Skill |
|---|---|
| Env, database, framework cleanup | tinyship-setup |
| App name, logo, theme | tinyship-brand |
| OAuth / SMS | tinyship-auth |
| Payment providers | tinyship-payment |
| AI provider keys | tinyship-ai |
| Shape a product type | tinyship-recipe |
| Brand-new tables/pages | tinyship-feature |
| Deploy | tinyship-deploy / tinyship-cloudflare |
Product direction: roadmap. Release notes: Updates 2.7.0.