This file is a reference contract for framework quickstarts in this directory. It is not a rendered page (filenames starting with `_` are excluded from the docs build) — it exists so every quickstart conforms to the same shape, and so a future automated check has a single source to check against. ## Required frontmatter ```yaml --- title: 'Use Supabase with ' subtitle: '' breadcrumb: 'Framework Quickstarts' --- ``` ## Required section order Before the numbered steps, and before any heading: - `` — always first. Every id must exist as a key in `apps/docs/data/ai-prompts.data.ts`. - An optional `## Prerequisites` section, for guides whose toolchain isn't implied by the framework itself. `spring-boot.mdx` is the current example: Java 17, `curl`, `unzip`. Don't add one to restate the obvious. The list below is the canonical order, not the literal heading numbers. `quickstart_db_setup.mdx` supplies headings 1 and 2, so guides that use it start their own headings at 3. Guides that use `quickstart_create_project.mdx` alone get heading 1 from the partial and start at 2. A guide may also insert a framework-specific step — `astrojs.mdx` adds **Configure Astro for SSR** between the client library and the environment variables — so number each guide's headings sequentially from where its partial leaves off rather than copying numbers from here. 1. **Create a Supabase project** — via `<$Partial path="quickstart_create_project.mdx" />`, either directly or nested inside `quickstart_db_setup.mdx` (see below). - **Set up your database** (also numbered step 2, replacing the above) — only for guides that query the shared `instruments` sample table through a Supabase client library. Use `<$Partial path="quickstart_db_setup.mdx" />` instead (it nests the project-creation partial). Guides that connect directly to Postgres with their own ORM (Laravel, Rails, RedwoodJS, Spring Boot) skip this and use `quickstart_create_project.mdx` alone — add a one-line note stating the guide uses the framework's own tables instead, so the omission reads as deliberate rather than a gap. 2. **Create a `` app** 3. **Set up AI tooling (optional)** — `<$Partial path="quickstart_ai_tooling.mdx" />`. Covers both Agent Skills and the MCP server in one step. Keep them together: two adjacent optional AI steps push the first real Supabase code further down the page for no reader benefit, and the prose is identical across all 19 guides, so it lives in the partial rather than being copied per guide. 4. **Install the Supabase client library** - Guides that start from a scaffold which already depends on `supabase-js` keep the step but retitle it to what the reader actually does. `hono.mdx` uses **Install dependencies**, because `npx supabase bootstrap hono` already lists the packages in `package.json` and the reader only runs `npm install`. `nextjs.mdx` drops the step entirely, because the `with-supabase` template installs them as part of step 3. 5. **Declare Supabase environment variables** — env vars only, never literal credentials in code. Mobile guides (Flutter, iOS SwiftUI, Kotlin) are the documented exception — they use `YOUR_SUPABASE_URL` / `YOUR_SUPABASE_PUBLISHABLE_KEY` placeholder substitution instead of a `.env` file, with `<$Partial path="quickstart_mobile_env_note.mdx" />` explaining why. Include the `