Personal Flisk demo · preview
@example_dev's Flisk stack
example_dev is an example handle
This plan is a sample, so nothing was built and nothing runs live. Put your own X handle in the link to get a stack of your own: demo.flisk.si/<your-handle>/solidity-dapp-with-postgres.
- webfrontend
- apibackend
- api-migratormigrator
- chainbring-your-own
- indexerworker
Why this stack
- chain · solidity, dapp
- db · postgres
Stack diagram
Browser → web → api → Postgres. Workers and migrators share the same database. Traefik routes every service on *.localhost.
Run it
npm install -g @flisk-sh/flisk flisk doctor flisk project --yes flisk resource web --type frontend --stack dapp --framework react --yes flisk resource api --type backend --stack dapp --feature prisma --yes flisk resource chain --type bring-your-own --stack dapp --image ghcr.io/foundry-rs/foundry:stable --yes flisk resource indexer --type worker --stack dapp --feature nats --yes flisk up dapp flisk status
Docs
- Quick startinstall, verify and boot a working stack
- service.json referenceevery field in the manifests above
- Required scriptspackage.json scripts per service type
- Agent skillslet Claude Code, Codex or Cursor drive Flisk
- Flisk on GitHubsource, issues and releases
- Tilt docsthe dev UI in the Tilt tab
Your service.json files
One service.json each. Postgres comes from "prisma" and Traefik routing is built in, so neither needs its own file.
webfrontendreact app
// services/dapp/web/service.json
{
"$schema": "https://flisk.sh/schema.service.json",
"schemaVersion": 1,
"appName": "web",
"appType": "frontend",
"stack": "dapp",
"port": 3000,
"framework": "react",
"dependsOn": [
"api"
]
}apibackendbun + hono API
// services/dapp/api/service.json
{
"$schema": "https://flisk.sh/schema.service.json",
"schemaVersion": 1,
"appName": "api",
"appType": "backend",
"stack": "dapp",
"port": 4000,
"healthCheckPath": "/health",
"dependsOn": [
"api-migrator"
],
"featuresEnabled": [
"prisma"
]
}api-migratormigratorruns Prisma migrations against the shared Postgres before the api starts
// services/dapp/api-migrator/service.json
{
"$schema": "https://flisk.sh/schema.service.json",
"schemaVersion": 1,
"appName": "api-migrator",
"appType": "migrator",
"stack": "dapp"
}chainbring-your-ownexperimentallocal Anvil node for your contracts. Not yet run end to end with flisk up: anvil must listen on the container port Flisk routes to
// services/dapp/chain/service.json
{
"$schema": "https://flisk.sh/schema.service.json",
"schemaVersion": 1,
"appName": "chain",
"appType": "bring-your-own",
"stack": "dapp",
"port": 4100,
"image": "ghcr.io/foundry-rs/foundry:stable"
}indexerworkerreads contract events into Postgres
// services/dapp/indexer/service.json
{
"$schema": "https://flisk.sh/schema.service.json",
"schemaVersion": 1,
"appName": "indexer",
"appType": "worker",
"stack": "dapp",
"port": 4200,
"params": {
"RPC_URL": "http://chain:3000"
},
"dependsOn": [
"chain",
"api-migrator"
],
"featuresEnabled": [
"nats"
]
}Note: No frontend framework named, so this uses React. Say vue, svelte or solid to switch.
Want one for a friend?
Ask @grok on X with their handle and what they build.