diff --git a/recipes/2048/meta.json b/recipes/2048/meta.json index ac8982d..17bbf5b 100644 --- a/recipes/2048/meta.json +++ b/recipes/2048/meta.json @@ -4,7 +4,7 @@ "slug": "2048", "vertical": "Tools, apps & games", "tech": "Vanilla JS", - "summary": "The classic 2048 sliding-tile puzzle — arrow-key and swipe controls, smooth merge animations, score and persistent best score, and a win/lose overlay with restart and undo.", + "summary": "Play 2048 with keyboard or swipe controls. Keep your best score in the browser.", "order": 300, "live_url": "https://2048.view.fast/", "setup_questions": [ diff --git a/recipes/2048/prompt.md b/recipes/2048/prompt.md index c4e842b..916c870 100644 --- a/recipes/2048/prompt.md +++ b/recipes/2048/prompt.md @@ -32,28 +32,12 @@ Build me a **fully playable 2048 sliding-tile puzzle game** as a vanilla-JS app ``` -**When the site is ready, publish it to Spacefast with the direct API — no account, install, or extra instructions needed:** +**When the site is ready, publish it to Spacefast:** 1. Use `./site` as the publish folder. For no-build projects, put only the finished public files in that dedicated folder. Confirm it has `index.html` at its root and no secrets, source files, `.git`, or `.spacefast` state. -2. First publish: send every file as multipart form data. This Bash/Zsh block preserves relative paths and works for one file or a whole folder: - ```bash - PUBLISH_ROOT=./site - publish_files=() - while IFS= read -r -d "" file; do - relative=${file#"$PUBLISH_ROOT"/} - publish_files+=(-F "files=@$file;filename=$relative") - done < <(find "$PUBLISH_ROOT" -type f -print0) - curl -sS "${publish_files[@]}" "https://api.spacefast.com/v1/publish?wait=1" - ``` -3. From the `{ "data": ... }` receipt, give me `data.space.liveUrl`, `data.version.immutableUrl`, `data.claim.url`, and `data.claim.expiresAt`. Remind me to claim within 6 hours. Keep `data.claim.token` secret. -4. Save `data.space.id` and `data.claim.token` locally (for example in an ignored, mode-600 `.spacefast/state.json`). For a quick update, rebuild the `publish_files` array above and publish to the same space: - ```bash - SPACEFAST_SPACE_ID= - SPACEFAST_TOKEN= - curl -sS -H "Authorization: Bearer $SPACEFAST_TOKEN" \ - -F "spaceId=$SPACEFAST_SPACE_ID" "${publish_files[@]}" \ - "https://api.spacefast.com/v1/publish?wait=1" - ``` - If an update after claiming returns `space_claimed_credential_available`, exchange the saved claim token once at `POST https://api.spacefast.com/v1/anonymous-claim/exchange`, save `data.credential.accessToken`, and retry with that access token. - -**Optional shortcuts and reference only:** if the `sf` CLI is already installed, `sf publish ./site --wait` does the same job. A zip of the publish folder is also supported, but neither the CLI nor a zip is required. Docs: [direct agent/API publishing](https://spacefast.com/setup) · [files and folders](https://spacefast.com/help/publishing) · [claiming](https://spacefast.com/help/anonymous-publish) · [updates and rollback](https://spacefast.com/help/versions) +2. Fetch https://spacefast.com/setup.md and follow its current direct API publishing instructions. Check for an existing Space before creating one, and follow the returned upload and polling steps. +3. Report success only when `data.next.action` is `done` and the intended version is serving. If more work is needed, report the returned next step. +4. For an anonymous publish, give me `data.claim.message` unchanged. It contains the private preview (`data.claim.url`), the owner's claim link (`data.claim.claimUrl`), and the deadline (`data.claim.expiresAt`). Keep both links private. Never print the separate `data.claim.key`. +5. Keep `data.space.id` and the returned credential securely for updates to the same Space. Follow the guide for credential recovery after claiming. Keep credentials and `.spacefast` state out of the published files, commits, and logs. + +If the `sf` CLI is already installed, `sf publish ./site --wait` follows the same publishing flow. See [publishing](https://spacefast.com/docs/publish/) and [claiming a Space](https://spacefast.com/docs/anonymous-and-claim/). diff --git a/recipes/app/meta.json b/recipes/app/meta.json index d5008ff..57a9fcb 100644 --- a/recipes/app/meta.json +++ b/recipes/app/meta.json @@ -4,7 +4,7 @@ "slug": "app", "vertical": "Tools, apps & games", "tech": "Vite + React", - "summary": "A multi-view task app prototype — a draggable kanban board, a sortable list view, and a task detail drawer with subtasks, comments, filters, and search, all saved on your device.", + "summary": "Organize tasks on a kanban board or list. This prototype saves changes on your device.", "order": 300, "live_url": "https://app.view.fast/", "setup_questions": [ diff --git a/recipes/app/prompt.md b/recipes/app/prompt.md index c207120..c9a13b6 100644 --- a/recipes/app/prompt.md +++ b/recipes/app/prompt.md @@ -64,28 +64,12 @@ browser (no backend, no accounts, all state in `localStorage`). ``` -**When the site is ready, publish it to Spacefast with the direct API — no account, install, or extra instructions needed:** +**When the site is ready, publish it to Spacefast:** 1. Use `./dist` as the publish folder. For no-build projects, put only the finished public files in that dedicated folder. Confirm it has `index.html` at its root and no secrets, source files, `.git`, or `.spacefast` state. -2. First publish: send every file as multipart form data. This Bash/Zsh block preserves relative paths and works for one file or a whole folder: - ```bash - PUBLISH_ROOT=./dist - publish_files=() - while IFS= read -r -d "" file; do - relative=${file#"$PUBLISH_ROOT"/} - publish_files+=(-F "files=@$file;filename=$relative") - done < <(find "$PUBLISH_ROOT" -type f -print0) - curl -sS "${publish_files[@]}" "https://api.spacefast.com/v1/publish?wait=1" - ``` -3. From the `{ "data": ... }` receipt, give me `data.space.liveUrl`, `data.version.immutableUrl`, `data.claim.url`, and `data.claim.expiresAt`. Remind me to claim within 6 hours. Keep `data.claim.token` secret. -4. Save `data.space.id` and `data.claim.token` locally (for example in an ignored, mode-600 `.spacefast/state.json`). For a quick update, rebuild the `publish_files` array above and publish to the same space: - ```bash - SPACEFAST_SPACE_ID= - SPACEFAST_TOKEN= - curl -sS -H "Authorization: Bearer $SPACEFAST_TOKEN" \ - -F "spaceId=$SPACEFAST_SPACE_ID" "${publish_files[@]}" \ - "https://api.spacefast.com/v1/publish?wait=1" - ``` - If an update after claiming returns `space_claimed_credential_available`, exchange the saved claim token once at `POST https://api.spacefast.com/v1/anonymous-claim/exchange`, save `data.credential.accessToken`, and retry with that access token. +2. Fetch https://spacefast.com/setup.md and follow its current direct API publishing instructions. Check for an existing Space before creating one, and follow the returned upload and polling steps. +3. Report success only when `data.next.action` is `done` and the intended version is serving. If more work is needed, report the returned next step. +4. For an anonymous publish, give me `data.claim.message` unchanged. It contains the private preview (`data.claim.url`), the owner's claim link (`data.claim.claimUrl`), and the deadline (`data.claim.expiresAt`). Keep both links private. Never print the separate `data.claim.key`. +5. Keep `data.space.id` and the returned credential securely for updates to the same Space. Follow the guide for credential recovery after claiming. Keep credentials and `.spacefast` state out of the published files, commits, and logs. -**Optional shortcuts and reference only:** if the `sf` CLI is already installed, `sf publish ./dist --wait` does the same job. A zip of the publish folder is also supported, but neither the CLI nor a zip is required. Docs: [direct agent/API publishing](https://spacefast.com/setup) · [files and folders](https://spacefast.com/help/publishing) · [claiming](https://spacefast.com/help/anonymous-publish) · [updates and rollback](https://spacefast.com/help/versions) +If the `sf` CLI is already installed, `sf publish ./dist --wait` follows the same publishing flow. See [publishing](https://spacefast.com/docs/publish/) and [claiming a Space](https://spacefast.com/docs/anonymous-and-claim/). diff --git a/recipes/arcade/meta.json b/recipes/arcade/meta.json index 2db5c80..a2d9189 100644 --- a/recipes/arcade/meta.json +++ b/recipes/arcade/meta.json @@ -4,7 +4,7 @@ "slug": "arcade", "vertical": "Local & small business", "tech": "HTML5 canvas game", - "summary": "A neon barcade site whose hero is a playable retro brick-breaker game, wrapped around a real cabinets list, draft beer menu, events, and hours.", + "summary": "Build a barcade site with a playable brick-breaker, a games list, and opening hours.", "order": 4, "live_url": "https://arcade.view.fast/", "setup_questions": [ diff --git a/recipes/arcade/prompt.md b/recipes/arcade/prompt.md index 1b25400..a4b1351 100644 --- a/recipes/arcade/prompt.md +++ b/recipes/arcade/prompt.md @@ -14,14 +14,14 @@ Build me a **website for my retro arcade bar, with a playable mini-game as the h - **On tap** — a rotating draft-beer list (name, brewery, style, ABV, price) plus a few house cocktails. - **Events** — a week of tournament nights and happy-hour specials with prizes. - **Visit** — address, a weekly hours table, age policy, and a map/photo with a link out to Google Maps. -- **Book a party** — a private-event request form (name, email, date, guest count, notes) that shows a friendly success message on submit. +- A private-event request form with name, email, date, guest count, and notes. For any form that sends information, ask for my form endpoint or hosted signup URL. Use the supplied destination and show success only after it confirms receipt. A link to another service does not confirm completion. Without a destination, label the form "Demo only" beside its fields, label its button "Preview", and say "Preview complete. Nothing was sent." Never treat `localStorage` as delivery or store personal form data there. - A footer with social links and the address. **Design & content notes:** - Neon-and-CRT mood: near-black/deep-violet background, hot-pink + cyan + lime accents, a pixel display font (e.g. "Press Start 2P") for headings and a clean sans (e.g. "Space Grotesk") for body. Add subtle scanlines and glow, plus a scrolling marquee strip — but keep text high-contrast and readable. - Make the game genuinely fun: smooth 60fps loop with delta timing, the ball's bounce angle depends on where it hits the paddle, the paddle shrinks and the ball speeds up on later waves, and a launch-on-Space/tap mechanic. -- Use realistic content based on my answers — never "lorem ipsum". Invent believable brewery names, prices, tournament prizes, and hours. +- Use my confirmed brewery list, prices, prizes, and hours. Omit missing business facts or label the entire site as a fictional demo. - Use real images. Pull free photos that fit, e.g. `https://picsum.photos/seed/retro-arcade-1/1200/800` (vary the seed) or Pexels, and add descriptive `alt` text. - No build step: a single `index.html` plus `styles.css`, `game.js`, and a tiny `ui.js`. Persist the high score in `localStorage`. - Keep it accessible (semantic HTML, labelled form fields, keyboard support, good contrast, a skip link, and `prefers-reduced-motion` respected). @@ -32,28 +32,12 @@ Build me a **website for my retro arcade bar, with a playable mini-game as the h ``` -**When the site is ready, publish it to Spacefast with the direct API — no account, install, or extra instructions needed:** +**When the site is ready, publish it to Spacefast:** 1. Use `./site` as the publish folder. For no-build projects, put only the finished public files in that dedicated folder. Confirm it has `index.html` at its root and no secrets, source files, `.git`, or `.spacefast` state. -2. First publish: send every file as multipart form data. This Bash/Zsh block preserves relative paths and works for one file or a whole folder: - ```bash - PUBLISH_ROOT=./site - publish_files=() - while IFS= read -r -d "" file; do - relative=${file#"$PUBLISH_ROOT"/} - publish_files+=(-F "files=@$file;filename=$relative") - done < <(find "$PUBLISH_ROOT" -type f -print0) - curl -sS "${publish_files[@]}" "https://api.spacefast.com/v1/publish?wait=1" - ``` -3. From the `{ "data": ... }` receipt, give me `data.space.liveUrl`, `data.version.immutableUrl`, `data.claim.url`, and `data.claim.expiresAt`. Remind me to claim within 6 hours. Keep `data.claim.token` secret. -4. Save `data.space.id` and `data.claim.token` locally (for example in an ignored, mode-600 `.spacefast/state.json`). For a quick update, rebuild the `publish_files` array above and publish to the same space: - ```bash - SPACEFAST_SPACE_ID= - SPACEFAST_TOKEN= - curl -sS -H "Authorization: Bearer $SPACEFAST_TOKEN" \ - -F "spaceId=$SPACEFAST_SPACE_ID" "${publish_files[@]}" \ - "https://api.spacefast.com/v1/publish?wait=1" - ``` - If an update after claiming returns `space_claimed_credential_available`, exchange the saved claim token once at `POST https://api.spacefast.com/v1/anonymous-claim/exchange`, save `data.credential.accessToken`, and retry with that access token. - -**Optional shortcuts and reference only:** if the `sf` CLI is already installed, `sf publish ./site --wait` does the same job. A zip of the publish folder is also supported, but neither the CLI nor a zip is required. Docs: [direct agent/API publishing](https://spacefast.com/setup) · [files and folders](https://spacefast.com/help/publishing) · [claiming](https://spacefast.com/help/anonymous-publish) · [updates and rollback](https://spacefast.com/help/versions) +2. Fetch https://spacefast.com/setup.md and follow its current direct API publishing instructions. Check for an existing Space before creating one, and follow the returned upload and polling steps. +3. Report success only when `data.next.action` is `done` and the intended version is serving. If more work is needed, report the returned next step. +4. For an anonymous publish, give me `data.claim.message` unchanged. It contains the private preview (`data.claim.url`), the owner's claim link (`data.claim.claimUrl`), and the deadline (`data.claim.expiresAt`). Keep both links private. Never print the separate `data.claim.key`. +5. Keep `data.space.id` and the returned credential securely for updates to the same Space. Follow the guide for credential recovery after claiming. Keep credentials and `.spacefast` state out of the published files, commits, and logs. + +If the `sf` CLI is already installed, `sf publish ./site --wait` follows the same publishing flow. See [publishing](https://spacefast.com/docs/publish/) and [claiming a Space](https://spacefast.com/docs/anonymous-and-claim/). diff --git a/recipes/arcade/site/index.html b/recipes/arcade/site/index.html index af27731..6329174 100644 --- a/recipes/arcade/site/index.html +++ b/recipes/arcade/site/index.html @@ -18,6 +18,12 @@ +