Public submission repo for the Archestra Apps Hackathon (July 22–29). Each submission is an app-session recording — a self-contained, replayable demo of an app someone vibe-coded in Archestra, captured straight from the product and shared here as a pull request.
Merged submissions are published to the gallery on the Archestra website, where each app gets a card and a detail page with an interactive-ready player.
An App in Archestra is a rich, interactive UI (charts, dashboards, forms, games) built entirely in chat and powered by the MCP servers you already have. See archestra.ai/apps-hackathon.
You don't hand-write anything in this repo. In Archestra:
- Record an app session (Record/Stop in the app surface), then trim it in the built-in player to the final cut you want to show.
- Fill in the one-shot build prompt / description the player drafts for you and pick a category.
- Hit Share to gallery and sign in to GitHub. Archestra opens a pull request here on your behalf.
The PR adds exactly one folder:
apps/<your-github-login>_<app-name-slug>/
├── recording.json # the final-cut recording bundle (the demo)
└── thumbnail.png # optional opening-frame image (a card is generated if absent)
GitHub logins can't contain underscores, so the first _ splits your login from
the app slug. One folder per app; re-sharing the same app updates the same PR.
- Submit as many apps as you like — there's no limit on open submissions per person.
- Submit only your own app, under
apps/<your-login>_.../. The folder login must match the PR author. - The bundle must be a valid, playable final-cut recording produced by Archestra (CI validates the schema, playability, and content). Don't hand-edit it.
- Categories: one of the canonical set or a short free-text Other you chose at submit time.
- Your GitHub username and public profile name are attached as the author. Your email is never read, stored, or sent.
- Validation (
.github/workflows/validate.yml, read-only): checks every changed file is one of your two submission files, then validatesrecording.jsonagainst the bundle schema, plus playability, category, and thumbnail. Runs onpull_requestand never executes anything from the PR. - Review: a maintainer is auto-assigned (round-robin), and when a submission includes a thumbnail, its cover image, description, and build prompt are posted to the PR for a quick look.
- Owner approval gates everything. Only a maintainer can approve, and by repo policy PR workflows for outside contributors run only after a maintainer approves. Merges require a maintainer (code-owner) review; nobody else can merge.
- On merge, the gallery index (
index.json) is regenerated and published to thegallery-indexbranch, which the website reads.
apps/ # submissions, one folder each (apps/<login>_<slug>/)
categories.json # canonical gallery categories (mirrored on the website)
schema/ # vendored, pinned copy of the Archestra bundle contract
scripts/ # validation + index-build tooling (Node, only zod at runtime)
.github/workflows/ # validation, governance, review, publish-index
npm install
npm test # unit + contract tests
npm run validate:all # validate every folder under apps/
npm run build-index -- --out index.json # build the website manifest locallyThe schema/ copy is pinned to a platform version and hand-synced; npm test
includes a contract test that a real Archestra bundle still validates against it.