{
  "instructions": "Post the `reply` text below exactly as written. It already contains the demo link.",
  "reply": "🫧 @yourhandle your stack in bubbles: web · api · jobs. Checked service.json files, a CI-built repo, flisk up to run it. May be live for 2h.\n\nhttps://demo.flisk.sh/d/yourhandle-app-c0e4e0",
  "url": "https://demo.flisk.sh/d/yourhandle-app-c0e4e0",
  "id": "yourhandle-app-c0e4e0",
  "status": "ready",
  "plan": {
    "user": "yourhandle",
    "stack": "app",
    "detected": {
      "jobs": [
        "jobs",
        "cron"
      ],
      "cache": [
        "redis"
      ],
      "realtime": [
        "websocket",
        "chat"
      ]
    },
    "summary": "web · api · api-migrator · jobs",
    "integration": null,
    "env": [],
    "notes": [
      "No frontend framework named, so this uses React. Say vue, svelte or solid to switch."
    ],
    "services": [
      {
        "name": "web",
        "appType": "frontend",
        "port": 3000,
        "framework": "react",
        "dependsOn": [
          "api"
        ],
        "note": "react app",
        "file": "services/app/web/service.json",
        "manifest": {
          "$schema": "https://flisk.sh/schema.service.json",
          "schemaVersion": 1,
          "appName": "web",
          "appType": "frontend",
          "stack": "app",
          "port": 3000,
          "framework": "react",
          "dependsOn": [
            "api"
          ]
        }
      },
      {
        "name": "api",
        "appType": "backend",
        "port": 4000,
        "featuresEnabled": [
          "prisma",
          "redis",
          "websocket"
        ],
        "healthCheckPath": "/health",
        "dependsOn": [
          "api-migrator"
        ],
        "note": "bun + hono API",
        "file": "services/app/api/service.json",
        "manifest": {
          "$schema": "https://flisk.sh/schema.service.json",
          "schemaVersion": 1,
          "appName": "api",
          "appType": "backend",
          "stack": "app",
          "port": 4000,
          "healthCheckPath": "/health",
          "dependsOn": [
            "api-migrator"
          ],
          "featuresEnabled": [
            "prisma",
            "redis",
            "websocket"
          ]
        }
      },
      {
        "name": "api-migrator",
        "appType": "migrator",
        "scaffoldedBy": "api",
        "note": "runs Prisma migrations against the shared Postgres before the api starts",
        "file": "services/app/api-migrator/service.json",
        "manifest": {
          "$schema": "https://flisk.sh/schema.service.json",
          "schemaVersion": 1,
          "appName": "api-migrator",
          "appType": "migrator",
          "stack": "app"
        }
      },
      {
        "name": "jobs",
        "appType": "worker",
        "port": 4100,
        "featuresEnabled": [
          "nats"
        ],
        "dependsOn": [
          "api-migrator"
        ],
        "note": "background work: jobs, cron",
        "file": "services/app/jobs/service.json",
        "manifest": {
          "$schema": "https://flisk.sh/schema.service.json",
          "schemaVersion": 1,
          "appName": "jobs",
          "appType": "worker",
          "stack": "app",
          "port": 4100,
          "dependsOn": [
            "api-migrator"
          ],
          "featuresEnabled": [
            "nats"
          ]
        }
      }
    ],
    "commands": [
      "npm install -g @flisk-sh/flisk",
      "flisk doctor",
      "flisk project --yes",
      "flisk resource web --type frontend --stack app --framework react --yes",
      "flisk resource api --type backend --stack app --feature prisma redis websocket --yes",
      "flisk resource jobs --type worker --stack app --feature nats --yes",
      "flisk up app",
      "flisk status"
    ]
  },
  "diagram": "web -> api -> postgres + jobs",
  "createdAt": 1792936125004,
  "readyAt": 1792936149789,
  "repo": "https://github.com/flisk-sh/demos/tree/demo/yourhandle-app-c0e4e0",
  "checks": [
    "flisk resource ×3",
    "flisk board",
    "flisk config verify",
    "flisk up --dry-run"
  ],
  "urls": [
    {
      "name": "web",
      "url": "http://app.app-demo.localhost/web/health"
    },
    {
      "name": "api",
      "url": "http://api.app-demo.localhost/api/api/health"
    }
  ],
  "liveNow": true,
  "live": {
    "tilt": "https://lines-keyboards-pen-shadows.trycloudflare.com",
    "app": "https://occupied-domestic-cleanup-tiger.trycloudflare.com/web/",
    "until": 1792943490000
  }
}