/docs-content
Write, edit, organize, and review Supabase content anywhere in apps/docs — guides, explainers, tutorials, troubleshooting entries, reference docs, and partials. Use for MDX/TOML authoring, frontmatter, navigation, terminology, links, code samples, content listings, and docs
$ npx -y skills add supabase/supabase --skill docs-content --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/docs-content
Context preview
The summary Claude sees to decide when to auto-load this skill.
Write, edit, organize, and review Supabase content anywhere in apps/docs — guides, explainers, tutorials, troubleshooting entries, reference docs, and partials. Use for MDX/TOML authoring, frontmatter, navigation, terminology, links, code samples, content listings, and docs
SKILL.md
docs-content.SKILL.mdname: docs-content
description: Write, edit, organize, and review Supabase content anywhere in apps/docs — guides, explainers, tutorials, troubleshooting entries, reference docs, and partials. Use for MDX/TOML authoring, frontmatter, navigation, terminology, links, code samples, content listings, and docs validation.
Supabase docs authoring
Sources of truth
Before changing docs content:
1. Read `apps/docs/CONTRIBUTING.md` for content types, structure, components, and style. 2. Read `apps/docs/WORD_LIST.md` for preferred terminology, spelling, and capitalization. 3. Inspect nearby content of the same type and the relevant navigation section before deciding on file placement or structure. Guides, explainers, and tutorials live under `apps/docs/content/guides`. Troubleshooting entries live under `apps/docs/content/troubleshooting` and use TOML frontmatter — follow `_template.mdx` in that directory rather than a guide's YAML frontmatter. Reference docs are generated from `apps/docs/spec` and library source, so look for the spec file or repo definition instead of editing rendered output directly.
When guidance conflicts, follow `apps/docs/CONTRIBUTING.md`. Match literal code, API names, UI labels, and third-party product names even when they differ from the word list.
Writing workflow
1. Identify the document type: explainer, tutorial, guide, or reference, per `apps/docs/CONTRIBUTING.md`. A guide is a concise procedure for a targeted task; a tutorial covers a larger goal and includes more explanatory context; an explainer is conceptual and prose-based; reference content is factual, like a dictionary entry. Troubleshooting entries follow their own TOML structure rather than these four types. 2. Define the reader's goal and prerequisites before drafting. 3. Classify substantial sections as contextual, procedural, or reference content. In a mixed page, group sections by information type so that context doesn't interrupt the procedural path. 4. For a long or mixed page, add a short introduction that links to its major section groups and tells readers when to use each one. Skip this navigation when a short page is already easy to scan. 5. Connect contextual sections to their corresponding procedures when useful. Add introductions to section groups, transitions between information types, and outcomes after procedures. Don't link every adjacent section. 6. Use second person, present tense, short paragraphs, and ordered steps for sequential actions. 7. Search `apps/docs/WORD_LIST.md` when introducing or reviewing technical terms, UI actions, abbreviations, and potentially ambiguous language. 8. Keep code samples executable in their stated context and consistent with repository formatting. Clearly mark intentionally omitted code. Use lowercase SQL keywords. 9. Reuse repeated content through `apps/docs/content/_partials` instead of copying it. 10. Add new guide, explainer, and tutorial pages to `apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts`. File placement alone doesn't add a page to navigation. Troubleshooting entries are indexed automatically and don't need a navigation entry. 11. Use `/docs/...` paths for pages in Supabase docs and site-root paths such as `/dashboard` for pages outside docs. Use descriptive link text and sparse admonitions with the appropriate severity.
Validation
From `apps/docs`, run:
pnpm lint:mdx
pnpm build:guides-markdown
`pnpm lint:mdx` covers all content under `apps/docs/content`, including troubleshooting entries. `pnpm build:guides-markdown` only applies to guides, explainers, and tutorials.
From the repository root, run `pnpm format` to apply Prettier to any changed MDX (and other) files. This enforces repo-wide formatting rules, including lowercase SQL keyword casing in code samples.
Run broader type checking or tests when the change affects MDX components, content listings, navigation code, or generated output.
For a mixed page, verify that context and procedures are grouped, introductory navigation links resolve to the intended sections, related context and procedures are cross-referenced where useful, and transitions make the reading path clear.
Treat lint replacements as suggestions when context matters. Rewrite the sentence instead of applying a replacement that changes its technical meaning.
Anchor IDs are generated from heading text at render time, and nothing in CI checks that `#anchor` links still resolve. Before renaming, removing, or substantially rewording a heading, run `grep -rn "#<old-anchor-slug>" apps/docs/content` to find in-page and cross-file links that target it, and update every match. If a heading needs a stable anchor independent of its wording, pin it with a custom anchor, for example `## Some heading [#some-heading]`.
Read more
name: docs-content description: Write, edit, organize, and review Supabase content anywhere in apps/docs — guides, explainers, tutorials, troubleshooting entries, reference docs, and partials. Use for MDX/TOML authoring, frontmatter, navigation, terminology, links, code samples, content listings, and docs validation.
Supabase docs authoring
Sources of truth
Before changing docs content:
1. Read `apps/docs/CONTRIBUTING.md` for content types, structure, components, and style. 2. Read `apps/docs/WORD_LIST.md` for preferred terminology, spelling, and capitalization. 3. Inspect nearby content of the same type and the relevant navigation section before deciding on file placement or structure. Guides, explainers, and tutorials live under `apps/docs/content/guides`. Troubleshooting entries live under `apps/docs/content/troubleshooting` and use TOML frontmatter — follow `_template.mdx` in that directory rather than a guide's YAML frontmatter. Reference docs are generated from `apps/docs/spec` and library source, so look for the spec file or repo definition instead of editing rendered output directly.
When guidance conflicts, follow `apps/docs/CONTRIBUTING.md`. Match literal code, API names, UI labels, and third-party product names even when they differ from the word list.
Writing workflow
1. Identify the document type: explainer, tutorial, guide, or reference, per `apps/docs/CONTRIBUTING.md`. A guide is a concise procedure for a targeted task; a tutorial covers a larger goal and includes more explanatory context; an explainer is conceptual and prose-based; reference content is factual, like a dictionary entry. Troubleshooting entries follow their own TOML structure rather than these four types. 2. Define the reader's goal and prerequisites before drafting. 3. Classify substantial sections as contextual, procedural, or reference content. In a mixed page, group sections by information type so that context doesn't interrupt the procedural path. 4. For a long or mixed page, add a short introduction that links to its major section groups and tells readers when to use each one. Skip this navigation when a short page is already easy to scan. 5. Connect contextual sections to their corresponding procedures when useful. Add introductions to section groups, transitions between information types, and outcomes after procedures. Don't link every adjacent section. 6. Use second person, present tense, short paragraphs, and ordered steps for sequential actions. 7. Search `apps/docs/WORD_LIST.md` when introducing or reviewing technical terms, UI actions, abbreviations, and potentially ambiguous language. 8. Keep code samples executable in their stated context and consistent with repository formatting. Clearly mark intentionally omitted code. Use lowercase SQL keywords. 9. Reuse repeated content through `apps/docs/content/_partials` instead of copying it. 10. Add new guide, explainer, and tutorial pages to `apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts`. File placement alone doesn't add a page to navigation. Troubleshooting entries are indexed automatically and don't need a navigation entry. 11. Use `/docs/...` paths for pages in Supabase docs and site-root paths such as `/dashboard` for pages outside docs. Use descriptive link text and sparse admonitions with the appropriate severity.
Validation
From `apps/docs`, run:
pnpm lint:mdx pnpm build:guides-markdown
`pnpm lint:mdx` covers all content under `apps/docs/content`, including troubleshooting entries. `pnpm build:guides-markdown` only applies to guides, explainers, and tutorials.
From the repository root, run `pnpm format` to apply Prettier to any changed MDX (and other) files. This enforces repo-wide formatting rules, including lowercase SQL keyword casing in code samples.
Run broader type checking or tests when the change affects MDX components, content listings, navigation code, or generated output.
For a mixed page, verify that context and procedures are grouped, introductory navigation links resolve to the intended sections, related context and procedures are cross-referenced where useful, and transitions make the reading path clear.
Treat lint replacements as suggestions when context matters. Rewrite the sentence instead of applying a replacement that changes its technical meaning.
Anchor IDs are generated from heading text at render time, and nothing in CI checks that `#anchor` links still resolve. Before renaming, removing, or substantially rewording a heading, run `grep -rn "#<old-anchor-slug>" apps/docs/content` to find in-page and cross-file links that target it, and update every match. If a heading needs a stable anchor independent of its wording, pin it with a custom anchor, for example `## Some heading [#some-heading]`.
Supabase is the Postgres development platform. We're building the features of Firebase using enterprise-grade open source tools. [x] Hosted Postgres Database. Docs [x] Authentication and Authorization. Docs [x] Auto-generated APIs. [x] REST. Docs [x] GraphQL.
Repo: supabase/supabase
Other skills on supabase.
- /clickhouse-logs-queries
Write, review, and migrate Supabase logs queries against the ClickHouse-backed `logs` table (the `logs.all.otel` analytics endpoint). Use this whenever a task involves Logs Explorer SQL, the `log_attributes` map, querying a log `source` (edge_logs, postgres_logs, auth_logs,
Open skill - /copywriting
Write or audit UI copy (buttons, labels, empty states, error messages, tooltips, form text) anywhere in the monorepo. Load it before shipping or reviewing any user-facing text — including when copy is incidental to the task, like a new feature that adds buttons, toasts, dialogs,
Open skill - /dev-toolbar-review
Safety rules for the dev toolbar, PostHog client, and feature flags. Use
Open skill - /react-hook-form
Correct React Hook Form usage anywhere in the monorepo — data flow, subscriptions,
Open skill - /safe-sql-execution
Use whenever code will build, return, fetch, or execute SQL that runs against a user's real Postgres database — even when the request reads like an ordinary feature or bug fix and never says "security," "injection," or "SafeSqlFragment." This covers: writing or editing any
Open skill - /studio-e2e-tests
Write and run Playwright E2E tests for Supabase Studio (e2e/studio).
Open skill

