All recipes
SaaS landing
A dark-mode B2B SaaS landing page for an issue tracker — hero screenshot, logo cloud, feature deep-dives, testimonials, pricing, and FAQ.
Made with this recipe
Questions your agent will ask
Your agent will ask for a few details to adapt this recipe to you and what you’re making.
- What's the product name and the one-sentence outcome it delivers (e.g. "plan, track, and ship product work in one place")?
- Who is the target customer — what kind of team or role?
- What are your 3-4 core features to highlight?
- Do you have customer or company names to use as social proof, or should I use realistic placeholders?
The whole prompt
Paste this into Claude, ChatGPT, Codex, Cursor, or another coding agent. It will build the project and publish it as a Space.
Use the connected tools for the task below. If they're missing, fetch https://incspark.com/setup.md and offer the official plugin or MCP server for my client. Show the install card when available. Skip the offer if I ask to work anonymously or without installing anything, and continue with the task where possible.
Build me a **marketing site for a B2B SaaS product** (a Linear-style dark-mode
landing page) as an **Astro site** (static, no SSR — just `astro build` to plain
HTML/CSS).
**Before you build, ask me these questions in one message and wait for my answers. If I skip anything, choose a sensible default and tell me what you chose:**
1. What's the product name and the one-sentence outcome it delivers (e.g. "plan, track, and ship product work in one place")?
2. Who is the target customer — what kind of team or role?
3. What are your 3–4 core features to highlight?
4. Do you have customer or company names to use as social proof, or should I use realistic placeholders?
**Then build a complete, polished, responsive site with:**
- A sticky nav with product / pricing / customers / docs links and a "Start free" CTA.
- A hero: a one-line outcome headline, a sub-headline, an email-only signup, and a hero product screenshot.
- A logo cloud / "trusted by" social-proof strip.
- Three or four feature deep-dives, alternating image + copy (e.g. issues, sprints/cycles, roadmap, keyboard-driven workflow), each with a short bulleted list of specifics.
- A metric / stat band ("Ship 30% faster") with three or four big numbers.
- Customer testimonial quotes with avatars, names, and companies.
- A pricing table — Free / Team / Enterprise — with a featured plan and a feature list per tier.
- An FAQ accordion (use native `<details>`).
- A footer CTA card plus a sitemap footer.
**Design & content notes:**
- Restrained, modern dark mode — near-black background, a single violet→cyan accent gradient, clean sans (Inter), tight letter-spacing on headings, generous whitespace. Think Linear / Vercel / Height.
- For the product "screenshots", build a stylised app UI mock in HTML/CSS (a window with a sidebar, an issues board, a burndown chart, a roadmap, a command menu) rather than a stock photo — it looks far sharper and stays fast. Use real avatar photos for testimonials.
- Use realistic content based on my answers — never "lorem ipsum". Invent believable issue titles, company names, testimonials, and pricing.
- Use real images where photos make sense (testimonial avatars, any team shots). Pull free photos that fit, e.g. from Unsplash (`https://images.unsplash.com/...`) or `https://picsum.photos/seed/yourseed/96/96`, and add descriptive `alt` text.
- Put copy in an Astro data module and loop over it in the page; split the product mock into its own component.
- Keep it accessible (semantic HTML, a labelled email field, keyboard support, good contrast) and mobile-first (sidebar hides on small screens, plans stack, the featured plan floats to the top).
**Add this exact line right before `</body>` so the site carries its badge:**
```html
<script src="https://incspark.com/badge.js" data-example="saas"></script>
```
**When the site is ready, publish it to the platform with the direct API — no account, install, or extra instructions needed:**
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 `.incspark` 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.incspark.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 `.incspark/state.json`). For a quick update, rebuild the `publish_files` array above and publish to the same space:
```bash
INCSPARK_SPACE_ID=<saved-space-id>
INCSPARK_TOKEN=<saved-claim-token-or-access-token>
curl -sS -H "Authorization: Bearer $INCSPARK_TOKEN" \
-F "spaceId=$INCSPARK_SPACE_ID" "${publish_files[@]}" \
"https://api.incspark.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.incspark.com/v1/anonymous-claim/exchange`, save `data.credential.accessToken`, and retry with that access token.
**Optional shortcuts and reference only:** if the `inc` CLI is already installed, `inc 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://my.incspark.com/start) · [files and folders](/faq) · [claiming](/faq) · [updates and rollback](/dashboard/start)