Commit Graph

35 Commits

Author SHA1 Message Date
Jeremias Menichelli
6e08c11bb7 fix: Rely on docs tag for wrappers content fetching (#46622) 2026-06-04 10:41:42 +02:00
Aleksi Immonen
3efc8a12ca fix: correct canonical tags on 4 docs pages (#46620)
## Summary

Four pages in `apps/docs` have a mismatch between the `pathname` in
`generateMetadata` and the `pathname` in `GuideTemplate`. The
`generateMetadata` pathname is what generates the `<link
rel="canonical">` and `<link rel="alternate" type="text/markdown">` tags
— so both tags point to the wrong URL on all 4 pages.

The wrong canonical destinations either loop back to the source page
(308 → source) or end in a 404, meaning Google is being told the
authoritative URL is somewhere it can't reliably reach.

## Changes

One-line fix in each file — update `pathname` in `generateMetadata` to
match the `pathname` already correctly set in `GuideTemplate`:

- `apps/docs/app/guides/database/database-advisors/page.tsx` —
`/guides/database/database-linter` →
`/guides/database/database-advisors`
- `apps/docs/app/guides/local-development/cli/config/page.tsx` —
`/guides/cli/config` → `/guides/local-development/cli/config`
- `apps/docs/app/guides/deployment/ci/[slug]/page.tsx` —
`/guides/cli/github-action/${slug}` → `/guides/deployment/ci/${slug}`
- `apps/docs/app/guides/deployment/terraform/[[...slug]]/page.tsx` —
`/guides/platform/terraform` → `/guides/deployment/terraform`

## Verification

Before fix — view source on any of these pages and search for
`canonical`:
- https://supabase.com/docs/guides/database/database-advisors
- https://supabase.com/docs/guides/local-development/cli/config
- https://supabase.com/docs/guides/deployment/ci/testing
- https://supabase.com/docs/guides/deployment/terraform

After fix — canonical on each page should be self-referencing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Fixed documentation routing paths across multiple guides to align with
proper navigation structure:
    * Database advisors guide
    * CI/deployment guide
    * Terraform deployment guide
    * Terraform provider reference guide
    * Local development CLI configuration guide
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-04 09:01:59 +03:00
Jeremias Menichelli
2450f38ce4 fix: Generate wrappers pages statically on preview and production (#46572)
During the migration to make `PREVIEW` match `PRODUCTION` environment we
got a negation wrong.

With this fix, now wrappers pages are rendered statically on build, so
we can catch errors on MDX syntax on the fly.
2026-06-02 13:23:17 +02:00
Bo Lu
a195c3b7d0 docs: [WRA-23] add docs for new wrappers (#46534)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

This PR is add missing docs for the newly added wrappers:

- Cal
- Calendly
- Cloudflare D1
- DynamoDB
- Gravatar
- Hubspot
- Infura
- MySQL
- OpenApi
- Orb
- Shopify
- Slack

## What is the current behavior?

Those wrappers was added to Wrappers extension but docs links are not
updated.

## What is the new behavior?

- The missing wrappers docs are added.
- Removed the repetitive `Connecting to` title prefix in the Navigation.
- Collapse the lengthy wrappers list into a `Sources` sub navigation
item to make the UI tidy.

## Additional context

N/A


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Added guides for new federated data wrappers: Cal, Calendly,
Cloudflare D1, Gravatar, Infura, MySQL, OpenAPI, Shopify, and Slack.
* Reorganized Foreign Data Wrappers navigation menu with an improved
hierarchical structure for easier discovery of available vendor
integrations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-01 21:21:46 +10:00
Pamela Chia
5ce163fd69 feat(docs): add BreadcrumbList JSON-LD to guide pages (#45477)
## Summary

Emits `BreadcrumbList` JSON-LD on every `/docs/guides/*` page served by
`GuideTemplate`. Search engines and AI crawlers get an explicit
hierarchical signal for the docs site (the marketing site already
shipped JSON-LD via #45451). The chain prepends `Docs > Guides` to the
existing resolver output, so a page like `/docs/guides/auth/passwords`
produces a 5-level chain with the leaf URL set per Google's spec.

## Changes

- New `apps/docs/lib/breadcrumbs.ts`: pure pathname → chain resolver,
server-safe. Extracted from the existing client `useBreadcrumbs` hook so
the same logic runs in both contexts.
- New `apps/docs/lib/json-ld.ts`: `serializeJsonLd` +
`breadcrumbListSchema` mirroring `apps/www/lib/json-ld.ts`.
- `Breadcrumbs.tsx` (visual) now delegates to the shared resolver —
single source of truth for visual + SEO chains.
- `GuideTemplate` takes a required `pathname` prop and emits `<script
type="application/ld+json">` next to `<Breadcrumbs />`. Skipped when the
chain is empty (e.g., page not in nav menu). Middle items without URLs
(e.g., the "Auth" section root) omit `item`, matching the visual
breadcrumb.
- 8 explicit-prop callers updated; `[[...slug]]` callers already spread
`data` (which carries `pathname`).

## Scope

**Out of scope:**
- `/docs/reference/*` (SDK reference) — no breadcrumbs rendered today,
would need separate traversal over spec JSON.
- `/guides/troubleshooting/*` — uses its own template, not
`GuideTemplate`.
- `TechArticle` per-page schema — high maintenance for marginal value.

## Testing (Vercel preview)

```bash
curl -s https://<preview>/docs/guides/auth/passwords | grep -oE '<script type="application/ld\+json"[^>]*>[^<]+</script>'
```

Expect a script tag with the chain `Docs > Guides > Auth > Flows
(How-tos) > Password-based`, leaf URL
`https://supabase.com/docs/guides/auth/passwords`.

- [x] `/docs/guides/auth/passwords` — 5-item chain, leaf URL present
- [x] `/docs/guides/getting-started/features` — 4-item chain, all items
have URLs
- [x] `/docs/guides/getting-started/ai-prompts/<slug>` — special-case
chain (`Getting started > AI Tools > Prompts > <slug>`), leaf URL falls
back to pathname
- [x] `/docs/guides/database/database-advisors` (explicit-prop caller) —
chain renders
- [x] Visual breadcrumb on the same pages still renders correctly
- [ ] Validate output through [Google Rich Results
Test](https://search.google.com/test/rich-results) on a deployed preview
URL
- [x] `/docs/guides/troubleshooting/<slug>` — no JSON-LD emitted
(different template, intentional)

## Linear

- fixes GROWTH-820

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added JSON-LD breadcrumb markup to guide pages to improve
search/discovery.

* **Improvements**
* Centralized breadcrumb generation for consistent, accurate breadcrumbs
across guides.
* Multiple guide pages updated to ensure breadcrumbs and page context
display correctly.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-07 12:09:41 +08:00
Jeremias Menichelli
5065e3ae9f build: Enable static generation on preview (#45592) 2026-05-06 11:08:34 +02:00
Ivan Vasilov
56de26fe22 chore: Migrate the monorepo to use Tailwind v4 (#45318)
This PR migrates the whole monorepo to use Tailwind v4:
- Removed `@tailwindcss/container-queries` plugin since it's included by
default in v4,
- Bump all instances of Tailwind to v4. Made minimal changes to the
shared config to remove non-supported features (`alpha` mentions),
- Migrate all apps to be compatible with v4 configs,
- Fix the `typography.css` import in 3 apps,
- Add missing rules which were included by default in v3,
- Run `pnpm dlx @tailwindcss/upgrade` on all apps, which renames a lot
of classes
- Rename all misnamed classes according to
https://tailwindcss.com/docs/upgrade-guide#renamed-utilities in all
apps.

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2026-04-30 10:53:24 +00:00
Jeremias Menichelli
5e6e2ec0c1 fix(Docs): Migrate the rest of the raw.githubcontent calls to new util (#44274) 2026-03-27 11:55:36 +01:00
Jeremias Menichelli
b84068f173 fix(Docs): Apply retry strategy, improve error throwing (#44173) 2026-03-25 11:08:56 +01:00
Jeremias Menichelli
c0e60adf3d fix(Docs): Remove raw GitHub endpoint calls and move ot Octokit. Create common util for GitHub files. (#44079) 2026-03-24 15:05:55 +01:00
Jeremias Menichelli
1cde4de0dc fix(Docs): Expose errors on dynamically fetch content under database … (#43976) 2026-03-19 19:44:31 +01:00
Steven Eubank
54332ad78a docs: revamp metrics guide (#40984)
* docs: revamp metrics guide

* add tier availability

* docs: polish metrics ux

* Update apps/docs/content/guides/telemetry/metrics/grafana-cloud.mdx

* Update grafana-cloud.mdx

* chore: run prettier on metrics docs

* fix: close metrics landing link

* fix 404 from <a>

* chore: format metrics landing page

* fix: tolerate database advisor fetch errors

* try to fix <a>

* Update linter words

* Fix Linter

* Update apps/docs/content/guides/telemetry/metrics/grafana-self-hosted.mdx

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* Update apps/docs/content/guides/telemetry/metrics/datadog.mdx

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* Update apps/docs/content/guides/telemetry/metrics/grafana-cloud.mdx

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* Update apps/docs/content/guides/telemetry/metrics/grafana-self-hosted.mdx

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* Update apps/docs/content/guides/telemetry/metrics/grafana-self-hosted.mdx

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* Update apps/docs/content/guides/telemetry/metrics/grafana-self-hosted.mdx

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* Update apps/docs/content/guides/telemetry/metrics/datadog.mdx

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>

* fix links and move to existing accordion

* Update apps/docs/content/guides/telemetry/metrics/datadog.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update apps/docs/content/guides/telemetry/metrics/datadog.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Convert custom component to accordian partial

* Update apps/docs/content/_partials/metrics_access.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Linter

---------

Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-05 10:15:58 +00:00
Ivan Vasilov
c5bf65b0b4 feat: Create FDW for S3 Vectors buckets (#40206)
* Fix childProps in Admonition so that they're added as a prop to the main div.

* Replace the admonition with Alert in Wrapper tab page to add a gap between childs.

* Add s3 vectors fdw.

* Minor fix to FormSection.

* Update the fdw mutations to support passing in options.

* Refactor the vector flow to create fdws.

* Revert cron description change.

* If the bucket can't be created, don't create a fdw.

* Update/delete the fdw when deleting a table or a bucket.

* Minor fixes.

* Clean up the delete modal.

* Handle edge cases when missing a wrapper.

* Remove the admonition in the create bucket modal.

* Fix the loading state when creating a bucket.

* Fix the createWrapper sheet to work with s3 vectors.

* Fix undefined wrapperMeta issue.

* Create the schema when installing a wrapper.

* Tiny cleanup.

* Clean up unneeded useState. Create a wrapper only if the all conditions are met.

* Fix all comments.

* Add s3 vectors for docs.

* Add a link and fix the file name for S3 Vectors in docs.

* Hide the table editor button if the wrapper instance is missing.

* Small fixes.
2025-11-12 11:00:38 +01:00
Chris Chinchilla
e01699cce5 docs: Further toggles for Nimbus project (#39010)
chore: feature flag footer and fdw section

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-09-25 14:26:46 +00:00
Charis
553da3cb28 chore: generate pages on demand for staging (#37207)
Continuing the work to generate pages on-demand in staging so we can lower preview build times
2025-08-05 18:35:36 -04:00
Charis
8b72d96d66 docs: add product-specific troubleshooting views (#37671)
We have a global troubleshooting view at /guides/troubleshooting, but
for greater visibility, we should also have product-specific
troubleshooting views. This is the same view and same data as the global
page, but filtered down to a specific product.
2025-08-05 18:31:11 -04:00
Tomas Pozo
ec1c534013 New GuideTemplate with composable components (#36893)
* Add db wrappers open in dashboard cta

* Restore getLatestRelease return to null

* Add guide template components with flexible content positioning

* Add Guide components with composition pattern

* Remove default branch on tag value

* Add GuideTemplate component and do some clean up

* Restore original GuideTemplate

* Clean up code and unused props

* Remove displayName

* Remove unwanted export

* Refactor EditLink to its own helper file

* Apply several fixes

* Fix underline on cta button

* Remove default main tag

* More descriptive button cta label

* fix(docs): add iceberg_wrapper dashboard integration

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-07-09 16:42:54 +00:00
Bo Lu
6e84bd1d72 docs: add Iceberg and DuckDB FDW docs (#36965)
* docs: add Apache Iceberg FDW docs

* docs: add DuckDB FDW docs

* fix(tests): fix docs tests erroring in CI

GitHub Auth was enabled in our supabase config.toml, which causes the supabase startup to try finding GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET in env. We don't actually need these for tests, so we can just mock them.

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-07-09 11:00:54 -04:00
Tomas Pozo
f96922b218 docs: fix wrappers assets (images) (#36365)
* Load wrappers assets with external url

* Refactor assets url transformer as rehype plugin
2025-06-16 12:04:51 -04:00
Ivan Vasilov
181f15752c chore: Move the files in ui-patterns under src folder (#36032)
* Move all components in ui-patterns into src folder. Add exports field for all files.

* Fix all apps to use the new ui-patterns.

* Fix the design-system build.

* Remove all unused rexports from ui-patterns index. Apps should use direct imports instead.

* Change the tailwind content property to include src folder of ui-patterns.

* Remove autoprefixer from the tailwind configs.

* Remove autoprefixer as a dependency.

* Fix the CVA conditions in FormLayout.
2025-05-30 12:46:22 +03:00
Charis
33b9e1ed29 chore(docs): convert all scripts to esm (#35996)
Scripts currently use CJS, which is causing a bit of a mess when trying
to use shared utilities from the app. Converting everything to ESM so
there are fewer conflicts when adding new scripts going forward.
2025-05-29 15:44:55 -04:00
Ivan Vasilov
0cb08341f6 chore: Bump nextjs for the docs app (#35333)
* Bump all versions of postcss to 8.5.3.

* Run next/codemod on the docs app.

* Move two experimental flags into stable. Add next-mdx-remote as a transpiled package.

* Add extra folders to the clean command in docs.

* Fix type errors in docs test.

* Run prettier on the new files.

* remove turbopack, fix fetch revalidation, fix metadata awaits

Couple of minor fixes:
- Turbopack doesn't work in dev because of known MDX loader limitations
(cannot load functions in MDX plugin config)
- Fetches not cached by default anymore in Next 15 so need to manually
cache the ones we need
- Missing a few awaits for metadata generation with page params

* Bump the graphiql version because headlessui/react is not building with Next 15.

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-05-08 09:27:22 +00:00
Charis
84ff291a09 fix(docs): wrappers tags (#35386)
Pull wrappers tags from tag docs_v*, not tag v*
2025-05-01 10:24:09 +10:00
Charis
f3583a05bc fix(docs): branch for wrappers docs (#35340)
Wrappers docs should not be pulled from the main branch, which contains
unreleased content, but instead from the latest release tag.
2025-04-29 15:39:46 -04:00
Charis
9d9fdcd9fc feat (docs): on-demand revalidation for graphql and wrappers (#35177)
Before:

Revalidation was turned off entirely for wrappers pages, and done daily for GraphQL pages.

After:

Revalidation is via tag. There is an /api/revalidate endpoint that is used by GitHub Actions on the federated repos to trigger the revalidation. This decreases the number of unnecessary page generations by Vercel, and gives the maintainers of federated repos more fine-grained control over when to reploy their docs (see the docs deployment playbook for more info).
2025-04-24 14:59:38 -04:00
Alaister Young
3d766bc1c1 [FE-1426] feat(studio): clerk fdw (#33803)
* feat(studio): clerk fdw

* prettier

* docs: add Clerk FDW docs

* Smol update

---------

Co-authored-by: Bo Lu <lv.patrick@gmail.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-03-03 15:50:09 +08:00
Bo Lu
05f49e0b9b docs: add Notion Wasm FDW docs (#33799) 2025-02-24 13:11:20 +11:00
Charis
44db2d3f16 refactor: split guide layouts by section (#32694)
Split guide layouts by section, so that nav data fetches can be pushed down to thesection where they're actually used. Limits blast radius of any data fetch problems, and also lets us push down client components in the future, since layouts now have context on the request path and we don't need a high-level usePathname.
2025-01-30 11:04:43 -05:00
Charis
a29dc5de4b feat(docs): main troubleshooting page (#29120)
* feat(docs): main troubleshooting page

* feat(docs): global troubleshooting page layout

* feat(docs): global troubleshooting page filter logic

* enhance(docs): troubleshooting page ui & filters

Improve UX and accessibility of global troubleshooting search page.

- Implement TroubleshootingFilterStateProvider for managing filter state
- Add TroubleshootingFilterEmptyState component
- Improve TroubleshootingFilter UI with applied filters display
- Update TroubleshootingPreview component with better layout and accessibility
- Add TroubleshootingEntryAssociatedErrors component for displaying related errors
- Refactor Troubleshooting utils and schemas
- Update troubleshooting content template

* feat(docs): individual troubleshooting pages

Add individual pages for detailed information on troubleshooting
entries. Small fixes to UI for troubleshooting displays.

- Wrap GlobalTroubleshootingPage with SidebarSkeleton
- Add TroubleshootingErrorListDetailed component for detailed error display
- Implement TroubleshootingBackLink component for navigation
- Update TroubleshootingPreview to use Next.js Link and include parent page
- Refactor Footer component to accept className prop
- Add hideFooter option to SidebarSkeleton
- Minor updates to TopNavBar and other utility functions

* fix: minor styling issues

* tweak(troubleshooting docs): use breadcrumbs

* tweak(troubleshooting docs): use sidebar for filter

* enhance(troubleshooting docs): navigation, keywords

Better navigation for individual troubleshooting entries, using a
version of the sidebar + keywords handling via search params for good
linking behavior

Details:

- Add TroubleshootingSidebar to TroubleshootingPage
- Implement query state management for keywords using nuqs
- Improve accessibility and styling of troubleshooting components
- Update empty state handling and related keywords display
- Upgrade nuqs package to version 1.19.1

* fix(docs): wrap useSearchParams in Suspense

* seo(docs): add canonical link to troubleshooting

* enhance(docs,troubleshooting): auto-reveal errors

On troubleshooting search pages, if the searched term matches a hidden
error, auto-reveal it when searching. When the search term is cleared,
hide programmatically-opened errors while preserving user-opened ones.

* enhance(docs,troubleshooting): search bar

Add search bar to individual troubleshooting pages

* fix(docs): breadcrumb links

Fix breadcrumb linking so it uses next/link instead of reloading entire
app on navigation.

* fix(docs): typo

* enh(docs): new troubleshooting design

* enh(docs): use new multi-select

* enh(docs): troubleshooting responsive styles

* Update apps/docs/content/troubleshooting/monitor-supavisor-postgres-connections.mdx
2024-10-02 17:10:12 +00:00
Charis
33924f0e62 fix: remove frontmatter and repeated H1 from wrappers docs (#28704) 2024-08-16 17:41:17 +00:00
Bo Lu
2af2a132e6 docs: change wrappers docs dir for new docs pages (#28472) 2024-08-09 00:43:05 +10:00
Bo Lu
4c6f93f253 docs: add Snowflake and Paddle foreign data wrappers (#28305)
* docs: add Snowflake and Paddle foreign data wrappers

* docs: add links to left nav menu

* add wasm fdw intro

* fix: inline code wrapping in table cells

* adjust wording

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2024-08-02 10:37:54 +10:00
Charis
837e314088 feat(docs): add visual contributing guide (#28214)
Add a contributing guide to docs, which links to resources for contributors
and includes examples of usable components when writing docs content.
2024-07-26 15:54:20 -04:00
Charis
9fb97becb9 fix: revalidate fetches every day (#27828)
The Vercel Data Cache caches data across deployments, and we want to
check for updates in federated content, so let's revalidate the data
once a day.

It may be more efficient to revalidate on-demand, since we don't change
most of these sources once a day, but that requires setting up an API
endpoint (and figuring out how to authenticate it), so this is
quick-and-easy for now.
2024-07-08 13:12:19 -04:00
Charis
f4779d4844 refactor: migrate guides to app router (#23101)
Migrate guides to App Router.
2024-07-03 10:25:06 -04:00