I Shipped a Multi-Tenant Flutter SaaS Overnight — Without Writing a Single Line of App Code A developer shipped a multi-tenant Flutter SaaS application — a futsal-pitch booking system with consumer and operator interfaces, QR check-in, and Firebase backend — in a single overnight session without writing any app code. The project used five parallel Claude Code agents orchestrated by Hermes Agent, each owning a separate directory in a shared monorepo, with the entire development timeline running from 19:38 to 03:09. The orchestration relied on goal-files dispatched to each agent pane, marker files for completion signaling, and a watcher that triggered APK builds and verified deployments. This is a submission for the Hermes Agent Challenge I shipped a multi-tenant Flutter SaaS — a futsal-pitch booking app with a consumer app, an operator admin console, QR check-in, walk-in POS, and a deployed Firebase backend — in one overnight sitting. The git timeline runs from 19:38 to 03:09 . I never typed app code. I drove four then five Claude Code agents in parallel , each in its own pane, each owning one directory of a shared monorepo. The conductor was Hermes Agent Nous Research, MIT . The visible substrate was This is the Write category. So this is not a product tour. It is the orchestration teardown: the patterns that let N agents grind one repo at once without colliding, how they signal "done" without anyone polling, and how a fresh build lands on a phone seconds after it compiles. Every claim below traces to a commit, a file on disk, or a Hermes skill. Pointers at the bottom. The basic architecture diagram is given bellow, Four panes, one repo, one conductor. No agent touches another's directory. Then the magic of the markerfile for pingback loop. Concurrent commits, from docs/timeline.md the wiki pane logs every commit, which agent, why : 2026-05-30 02:43–02:44 — Email/Password + PRD-007/008 backend callables AGENT: backend claude aa54dc9, 10dc2c6 + frontend claude fc20bf2 . 2026-05-30 00:21–00:28 — FirebaseApi wiring + multi-tenant data model AGENT: frontend claude 10beb79, 236fe01 + backend claude dacb833 — landed concurrently with this docs upgrade. The watcher catching an APK build and a "done" ping in the same window: php 03:06:10 APK INSTALL: app-arm64-v8a-release.apk - Success 03:07:10 frontend-done: auth errors now show the real code, not generic text... APK rebuilt: /tmp/futsal-frontend-apk; cold-launch- /signin verified. github.com/morsheded/futsal-booking github.com/NousResearch/hermes-agent assets/futsal-watcher-redacted.sh Orchestration: Hermes Agent conductor · Herdr visible terminal substrate · Claude Code CLI ×5 the workers . App: Flutter 3 / Dart 3 · Riverpod · go router · Firebase Auth + Firestore + Functions v2 asia-south1 node22 + Hosting + Storage . Delivery: Tailscale wireless adb · mobile scanner web QR . Memory: self-hosted Honcho localhost:8000 , Ollama-backed, Colima + Docker . This is the whole mental model. Hermes does not implement features. Hermes writes a goal-file per pane, dispatches it into a Claude Code instance, arms a watcher, reads the result marker, and reseeds the next goal. The Claude panes do every line of Dart and TypeScript. A real goal-file /tmp/goal-frontend.txt , trimmed : GOAL: ship PRD-006 auth routing fix + email/password on the CLIENT FLUTTER APP only. Your turf is app/ and packages/gameon core/ . READ FIRST: - docs/prd/PRD-006-auth-routing-fix-and-dual-login.md your spec - app/CLAUDE.md rule 0: never git add -A PRECONDITION: backend claude is enabling Email/Password provider in Firebase Auth in parallel. If sign-in fails with operation-not-allowed , the provider isn't on yet — wait, retry. Do NOT mock; this is real Firebase. WHEN DONE truly idle, not between subtasks : echo "