Start a new Flisk project (blank with `flisk project`, or from an official starter or example with `flisk project <template>`) and generate new services in it with `flisk resource <name> --type backend|frontend|worker|agent|mcp --stack <stack>`. Use when starting a project, cloning a runnable example to learn from, or adding a service that does not exist yet. To wrap code or an image that already exists, use flisk-byo; for the agent runtime contract, use flisk-agents.
Installs into .claude/skills of the current project.
Are you the author of Flisk Scaffold?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/flisk-sh-flisk-scaffold)
---
name: flisk-scaffold
description: Start a new Flisk project (blank with `flisk project`, or from an official starter or example with `flisk project <template>`) and generate new services in it with `flisk resource <name> --type backend|frontend|worker|agent|mcp --stack <stack>`. Use when starting a project, cloning a runnable example to learn from, or adding a service that does not exist yet. To wrap code or an image that already exists, use flisk-byo; for the agent runtime contract, use flisk-agents.
license: MIT
compatibility: Requires the flisk CLI. Cloning a starter needs git and network access to github.com. Does not deploy.
metadata:
author: flisk-sh
version: "1.0"
---
# Scaffold Flisk projects and resources
Use the CLI to generate a consistent `service.json` and starter code instead of hand-writing boilerplate.
## Start a project
- Blank project in the current directory: `flisk project --yes`. It writes `.flisk/project.json`, the project `.env`, and the Flisk agent skills plus an `AGENTS.md` (skip those with `--no-agent-skills`).
- From a starter or example: `flisk project <template> --path <folder> --yes`, then `cd <folder>`. The clone already has `.flisk/project.json`; next run `flisk doctor` and `flisk up`.
| Template | What it is |
| --- | --- |
| `example` | The smallest one: Hono API, Postgres, NATS worker and a Vite app (bundled with the CLI, no clone) |
| `restaurant` (also `demo`) | Reservations, kitchen and floor apps and APIs |
| `saas` | Account dashboard, billing API and a checkout |
| `ecommerce` | Vue storefront and a catalog API |
| `agent-stack` | Bun agent, MCP tool server, Postgres and NATS |
| `user-management` | Admin and portal apps, an audit API and worker |
| `erp` | About 100 services: a scale test, not an app to build on |
The flisk repository also has small reference projects under [`examples/`](https://github.com/flisk-sh/flisk/tree/main/examples) (`one-backend`, `one-backend-python`, `one-backend-helm`, `byo`, `byo-jobs`). Read their `service.json` files to see a supported pattern.
## Add a resource
1. Decide the stack name (for example `shop`, `identity`). Resources of one stack start together and share a database.
2. Scaffold it:
```bash
flisk resource orders-api --type backend --stack shop --yes
flisk resource storefront --type frontend --stack shop --yes
flisk resource emails --type worker --stack shop --yes
flisk resource bot --type agent --stack shop --yes
flisk resource tools-mcp --type mcp --stack shop --yes
```
Add `--language`, `--framework` or `--feature` for other runtimes and features (see flisk-build-runtimes and flisk-databases).
3. Review the generated `service.json` and starter files under `services/<stack>/<name>/`.
4. Run `flisk doctor`, then `flisk up <stack>`.
## Guardrails
- Pass `--yes` in agent sessions; the pickers only run in an interactive terminal.
- Use kebab-case names, unique across the Flisk projects that share one Docker daemon.
- Do not hand-edit `.autogenerated/` files; change `service.json` and let `flisk up` regenerate them.
- Database migrations belong in a separate `migrator` resource, not in an API start script.
- Check the service schema before inventing a new type: the CLI accepts `backend`, `frontend`, `worker`, `mcp`, `agent`, `bring-your-own` and `sdk`.
- Use only one starter per project, and tell the user which one you cloned.