121 lines
4.1 KiB
JSON
121 lines
4.1 KiB
JSON
{
|
|
"schema": 1,
|
|
"id": "saas-starter",
|
|
"title": "SaaS Starter",
|
|
"description": "A multi-tenant SaaS web app with authentication, billing, a customer dashboard and an admin area.",
|
|
"tags": [
|
|
"web",
|
|
"saas",
|
|
"billing"
|
|
],
|
|
"thumbnail": ".w4c/preview.svg",
|
|
"agentId": "w4c-startup",
|
|
"defaultName": "saas-starter",
|
|
"skills": [
|
|
"project-bootstrap"
|
|
],
|
|
"fields": [
|
|
{
|
|
"key": "productName",
|
|
"label": "Product name",
|
|
"type": "text",
|
|
"required": true,
|
|
"placeholder": "Acme Cloud"
|
|
},
|
|
{
|
|
"key": "stack",
|
|
"label": "Tech stack",
|
|
"type": "select",
|
|
"options": [
|
|
"Vue 3 + Quasar",
|
|
"Nuxt 3",
|
|
"Next.js",
|
|
"React + Vite",
|
|
"Angular",
|
|
"SvelteKit",
|
|
"SolidStart",
|
|
"Remix",
|
|
"Astro",
|
|
"Laravel + Vue",
|
|
"Django + HTMX",
|
|
"Rails + Hotwire",
|
|
"Phoenix (Elixir)",
|
|
"Spring Boot + React",
|
|
"ASP.NET Core + Blazor",
|
|
"Go + Templ",
|
|
"Rust + Axum",
|
|
"Flutter",
|
|
"React Native (Expo)",
|
|
"SwiftUI",
|
|
"Jetpack Compose (Kotlin)"
|
|
],
|
|
"default": "Next.js",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "billing",
|
|
"label": "Billing provider",
|
|
"type": "select",
|
|
"options": [
|
|
"Stripe",
|
|
"Paddle",
|
|
"Lemon Squeezy",
|
|
"None (mock)"
|
|
],
|
|
"default": "Stripe",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "tenancy",
|
|
"label": "Tenancy model",
|
|
"type": "select",
|
|
"options": [
|
|
"Workspace per team",
|
|
"User accounts only",
|
|
"Both"
|
|
],
|
|
"default": "Workspace per team"
|
|
},
|
|
{
|
|
"key": "auth",
|
|
"label": "Authentication",
|
|
"type": "select",
|
|
"options": [
|
|
"Email + OAuth",
|
|
"Email magic link",
|
|
"SSO / OIDC"
|
|
],
|
|
"default": "Email + OAuth"
|
|
},
|
|
{
|
|
"key": "features",
|
|
"label": "Core features",
|
|
"type": "textarea",
|
|
"default": "customer dashboard, team invites, usage limits, invoices"
|
|
},
|
|
{
|
|
"key": "notes",
|
|
"label": "Additional notes",
|
|
"type": "textarea"
|
|
}
|
|
],
|
|
"promptTemplate": "You are starting a new project from the '{{title}}' template.\n\nRepository: {{repoFullName}}\nProduct: {{productName}}\nTech stack: {{stack}}\nBilling: {{billing}}\nTenancy: {{tenancy}}\nAuth: {{auth}}\nCore features: {{features}}\nAdditional notes: {{notes}}\n\nRead README.md, SPEC.md and the .w4c/ folder before writing code — they define the product scope, the routes/screens, the data model, the flows and the acceptance criteria. Then work top-down in layers (scaffold → auth & tenant scoping → dashboard → billing → first feature → admin → quality), keeping docs/PLAN.md, the board and .w4c/project.json in sync. Apply the project-bootstrap best practices. Bundled assets: {{elements}}\n\nFIRST TURN — lay the project out on its board before writing any code. Read `.w4c/boards/roadmap.json` and create one board card per layer in THIS repository (projectId = the repository full name above), prefixing every title with its unicode icon: 🧭 plan & scope, 🎨 design (mockups), 🗺️ architecture diagram, 🗄️ database & forms, ⚙️ backend & API, 💻 frontend (code), 🛡️ admin panel, 📊 control panel, 🔀 workflows, 🚀 deploy, ✅ quality & delivery. Each card body carries the goal, the deliverables, the acceptance criteria (a command or a runtime check) and the references; set the priority labels. Do not create or configure new agents — that is a follow-up, not part of bootstrap. Then report the card list and invite the user to continue on My Boards (/boards); do not start a layer before the user has reviewed the plan.",
|
|
"elements": [
|
|
{
|
|
"kind": "diagram",
|
|
"name": "Architecture",
|
|
"path": ".w4c/diagrams/architecture.excalidraw.json"
|
|
},
|
|
{
|
|
"kind": "board",
|
|
"name": "Project roadmap",
|
|
"path": ".w4c/boards/roadmap.json"
|
|
},
|
|
{
|
|
"kind": "workflow",
|
|
"name": "CI Build",
|
|
"path": ".w4c/workflows/ci-build.yaml"
|
|
}
|
|
]
|
|
}
|