Commit Graph
176 Commits
Author SHA1 Message Date
Danny White b5462ee7bb feat(www + studio): promote Select 2026 in www and Dashboard (#49511)
## What kind of change does this PR introduce?

Feature. Promotes Supabase Select 2026 across www and the Dashboard.

## What is the current behavior?

There is no active Select promotion on www or in the Dashboard.

## What is the new behavior?

- Adds a dismissible Select 2026 banner above the www navigation.
- Adds a low-priority Banner Stack card across hosted Studio project
pages.
- Shares a lightweight pixel lockup and CSS-only motion across both
surfaces, with light, dark, and reduced-motion treatments.
- Opens the application page in a new tab and automatically expires both
placements after October 2 in San Francisco.

## To test

- Open `/database` on the www preview. Confirm the banner is legible in
light and dark mode, the complete message remains visible at a phone
width, and the CTA opens `select.supabase.com` in a new tab.
- Dismiss the www banner, then refresh the page. Confirm it stays
dismissed.
- Open any `/project/{ref}` route in the Dashboard preview. Confirm the
Select card appears in the bottom-right Banner Stack behind
higher-priority notices.
- Dismiss the Dashboard card, navigate to another project page, and
confirm it stays dismissed.


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

* **New Features**
* Added a time-limited Select 2026 promotional banner across the website
and Studio.
* Added responsive themed artwork, animated visuals, campaign messaging,
and an external “Apply to attend” CTA.
  * Banner dismissal preferences are saved and respected across visits.
  * Promotion automatically disappears after the campaign ends.

* **Accessibility**
* Improved announcement dismissal controls with semantic buttons and
accessible labels.
  * Added reduced-motion support for promotional artwork.

* **Bug Fixes**
* Improved product-card loading effects to prevent hydration
inconsistencies.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-08-25 18:07:38 +01:00
Miranda LimonczenkoandClaude Opus 5 70715790b8 chore(www): unpublish and redirect the legacy launch week pages (#49335)
Closes
[FE-4226](https://linear.app/supabase/issue/FE-4226/unpublish-and-redirect-legacy-launch-week-pages)

## 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?

Content removal.

## What is the current behavior?

`/launch-week/x`, `/launch-week/12`, `/launch-week/13`, and
`/launch-week/14` are still published. Each one carries its own page
component and a ticket flow for a launch week that ended. The
accessibility scan flags them, and they hold no SEO value.

This follows #49281, which took down `/launch-week/6` on the same
pattern.

## What is the new behavior?

- Delete the `/launch-week/x`, `/12`, `/13`, and `/14` page routes.
- Redirect each path to its recap blog post, matching the destinations
agreed in `#team-marketing`.
- Point the Launch Week 12, 13, and 14 blog summary components at
`/launch-week` instead of their deleted pages. `LWXSummary` already does
this.
- Drop the `disableStickyNav` and `showLaunchWeekNavMode` checks in
`Nav` that only matched the deleted routes.
- Drop the Launch Week X branches in `useDarkLaunchWeeks` and `_app`.

| Source | Destination |
| --- | --- |
| `/launch-week/x` | `/blog/launch-week-x-best-launches` |
| `/launch-week/12` | `/blog/launch-week-12-top-10` |
| `/launch-week/13` | `/blog/launch-week-13-top-10` |
| `/launch-week/14` | `/blog/launch-week-14-top-10` |

## Additional context

`/launch-week/7` and `/launch-week/8` stay published. Neither has a
recap post to redirect to, so they need a destination decision before
they come down.

The `components/LaunchWeek/{X,12,13,14}` trees stay. `BlogPostRenderer`
imports the summary component from each one, and those summaries read
the same `Releases/data` modules the deleted pages used. The stage and
nav components under those directories are now unreachable, so they need
their own dead-code audit.

Assets under `public/images/launchweek/` are untouched, same as #49281.

## Manual testing

Preview:
https://zone-www-dot-com-git-www-redirect-legacy-launch-weeks-supabase.vercel.app

1. Open
[/launch-week/x](https://zone-www-dot-com-git-www-redirect-legacy-launch-weeks-supabase.vercel.app/launch-week/x).
It returns a 308 and lands on `/blog/launch-week-x-best-launches`.
2. Open
[/launch-week/12](https://zone-www-dot-com-git-www-redirect-legacy-launch-weeks-supabase.vercel.app/launch-week/12).
It returns a 308 and lands on `/blog/launch-week-12-top-10`.
3. Open
[/launch-week/13](https://zone-www-dot-com-git-www-redirect-legacy-launch-weeks-supabase.vercel.app/launch-week/13).
It returns a 308 and lands on `/blog/launch-week-13-top-10`.
4. Open
[/launch-week/14](https://zone-www-dot-com-git-www-redirect-legacy-launch-weeks-supabase.vercel.app/launch-week/14).
It returns a 308 and lands on `/blog/launch-week-14-top-10`.
5. On each of those blog posts, the launch week summary card header
links to `/launch-week`.
6. Open
[/launch-week](https://zone-www-dot-com-git-www-redirect-legacy-launch-weeks-supabase.vercel.app/launch-week),
[/launch-week/7](https://zone-www-dot-com-git-www-redirect-legacy-launch-weeks-supabase.vercel.app/launch-week/7),
and
[/launch-week/8](https://zone-www-dot-com-git-www-redirect-legacy-launch-weeks-supabase.vercel.app/launch-week/8).
All still load.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 15:33:09 -07:00
Danny White 3bca21b3f8 chore(a11y): convert leftover focus recipes to focus-ring (#48219)
## What kind of change does this PR introduce?

Accessibility cleanup (DEPR-628).

## What is the current behavior?

Leftover call sites still use ad-hoc focus recipes
(`ring-foreground-muted`, `outline-brand`, Dialog/Sheet `focus:` rings,
etc.) instead of the shared utilities from #41575.

## What is the new behavior?

Converts those leftovers across `packages/ui`, Studio, www, docs, and
design-system to `focus-ring`, preferring `focus-visible`. Keeps
documented exceptions (`group-focus-visible`, InputGroup `:has()`).

## To test

Tab through controls (keyboard only). Expect a consistent offset ring on
`:focus-visible`, not a green/brand/custom stack, and no ring animation.

### www (marketing)

Preview:
https://zone-www-dot-com-git-danny-depr-628-focus-ring-fbccf9-supabase.vercel.app

- Global nav on `/`: Product, Developers, Solutions dropdowns; logo;
hamburger + mobile menu
- `/features`: view toggles and feature cards
- `/company`: card links
- `/changelog`: timeline / entry links
- `/partners/catalog`: grid/list toggle and partner cards
- `/pricing`: compute section expand control
- Product / Modules / Solutions sticky navs on product pages (e.g.
`/database`, `/storage`)
- `/state-of-startups`: TwoOptionToggle if present

### docs

Preview:
https://docs-git-danny-depr-628-focus-ring-long-tail-supabase.vercel.app

- Any guide page: top nav dropdowns and items
- Narrow viewport: hamburger, then mobile menu links + close
- Guide with PromptPanel / tabs: tab to prompt actions and tab list

### studio (dashboard)

Preview:
https://studio-staging-git-danny-depr-628-focus-ring-long-tail-supabase.vercel.app

- Project home: Connect section tiles; drag-handle focus on sortable
sections
- Integrations marketplace (`/project/<ref>/integrations`): featured
cards, list/grid toggle, list rows
- Auth (`/project/<ref>/auth/oauth-apps`,
`/project/<ref>/auth/providers`): open create/edit sheet, tab to close
(X)
- Database policies (`/project/<ref>/database/policies`): open policy
editor sheet, tab to close
- Storage policies (`/project/<ref>/storage/files/policies`): bucket
section links; policy modal close
- Query performance (`/project/<ref>/observability/query-performance`):
info icon buttons on metrics
- Replication pipeline detail (if available): slot lag / status info
icons
- Support (`/support/new`): attachment add/remove controls
- Table editor: spreadsheet import preview checkboxes; row text/JSON
editor TwoOptionToggle
- Any Dialog/Sheet/toast close (X): ring on keyboard focus only, not
mouse click

### design-system

Preview:
https://design-system-git-danny-depr-628-focus-ring-long-tail-supabase.vercel.app

- Colour palette swatches (keyboard focus)
- Form patterns sidepanel example: avatar / focusable control in the
example

## Additional context

- Linear: [DEPR-628](https://linear.app/supabase/issue/DEPR-628)
- Follow-ups: form-group CSS (DEPR-629), Storage columns selection
(DEPR-630), ESLint rule (DEPR-632)

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

* **Accessibility & Usability**
* Standardized keyboard focus indicators across navigation, dialogs,
forms, buttons, toggles, links, and tooltips using a consolidated focus
style.
* Improved toggle controls to use proper button semantics (instead of
clickable text), including `aria-pressed`/disabled handling and better
keyboard navigation.

* **Visual Updates**
* Harmonized hover/focus ring visuals across the design system, Studio,
documentation, and marketing pages while preserving existing layout and
interaction behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-23 08:52:22 +10:00
Danny White 6f6badae51 fix(eslint): promote require-explicit-tabindex to error (#48170)
## What kind of change does this PR introduce?

Accessibility / lint hardening (Safari keyboard focus).

## What is the current behavior?

`supabase/require-explicit-tabindex` is `'warn'`. Studio’s ratchet was
at 0 but the rule was still ratcheted; www / docs / design-system still
had raw `<button>` / `role="button"` call sites without an explicit
`tabIndex`.

[DEPR-627](https://linear.app/supabase/issue/DEPR-627) · follow-up to
#47984 / #48040

## What is the new behavior?

- Shared config: `'supabase/require-explicit-tabindex': 'error'`
- Swept www / docs / design-system (+ Studio test fixtures the ratchet
skipped)
- Removed the rule from the Studio ratchet + baselines

## To test

Prefer **Safari**. This PR only adds explicit `tabIndex` to raw
`<button>` / `role="button"` call sites — not links, and not controls
that already go through `Button` from `ui`.

### Marketing (`www`) ([staging
link](https://zone-www-dot-com-git-danny-depr-627-promote-req-7ae43c-supabase.vercel.app/))

- [x] Homepage frameworks / dashboard feature tabs — Tab through each
tab button
- [x] Product pages (e.g. `/auth`, `/database`) — section tab switchers
- [x] Narrow viewport — open the hamburger; Tab through menu buttons
- [x] `/partners/catalog` — filter / view controls
- [x] Blog view toggle (list ↔ grid)

### Docs ([staging
link](https://docs-git-danny-depr-627-promote-require-explici-25e46d-supabase.vercel.app/))

- [x] **Desktop (≥ lg):** top-right **⋯ menu** (hamburger icon) — opens
a dropdown that includes Theme. Not a separate theme button.
- [x] **Mobile (< lg):** top-right **hamburger** opens the sheet; close
(X) is the raw button we tagged. Theme inside the sheet uses
`ThemeToggle` / `DropdownMenuTrigger` from `ui` (already supposed to set
`tabIndex`).
- [x] **Code blocks** — copy / language controls
- [x] **Is this helpful?** — X / check are `Button` from `ui` (should
already Tab). After voting **while signed in**, the follow-up “What went
well?” / “How can we improve?” text button is the raw one we tagged.
- [x] **AI Tools → Copy as Markdown** (right rail on a guide) — this is
the only GuidesSidebar control this PR changed. “On this page” TOC items
are **links**, not covered by this lint.
- [x] **Reference docs** (e.g. JS client reference) — section headers
that expand/collapse in the left nav (`Collapsible.Trigger`)
- [x] **Troubleshooting index** — type in the search field, then Tab to
the **clear (X)** control

### Dashboard (`studio`)

No production UI changes in this PR (tests + lint config only). Quick
Safari smoke that prior tabindex work still holds:

- [x] Project sidebar — Tab through primary nav links
- [x] Settings → General — Tab through inputs / buttons
- [x] Storage → Files — Tab a bucket row / file actions
2026-07-23 05:21:15 +10:00
Francesco Sansalvadore a54a2b69e1 www: homepage (#47228)
- Update homepage based on new designs from #43455.
- Also improve a11y and semantics of homepage as per @czenko's
[review](https://github.com/supabase/supabase/pull/43455#pullrequestreview-4548881985)

PR breakdown of #43455 
Related: #47226 #47227 #47236
2026-07-01 12:13:15 +00:00
Gildas Garcia b30db91d71 chore: cleanup UI patterns exports (#47406)
## Problem

We now export components under a subpath in ui-patterns to avoid barrel
files as they slow down every tools (from IDE to linters, etc.) and may
also affect bundles our users have to download.

## Solution

- Remove the UI patterns index file
- Fix invalid impors
2026-06-30 09:23:17 +02:00
Francesco Sansalvadore 90ef7ea874 www: standardize container width (#47226)
Define and clean up standard container width definition for marketing
website.

PR breakdown of #43455 
Related: #47227 #47228 #47236
2026-06-24 10:26:38 +00:00
Gildas GarciaandIvan Vasilov 96d43099bb chore: refactor Button API so that it can be used a standard button (#46880)
## Problem

Our `<Button>` component breaks the default `button` contract by
redefining the `type` prop to set its variant (`primary`, `default`,
etc) instead of the button type (`submit`, `button`, etc).
This is confusing and forces to write more code when using it with
shadcn components that expect/inject the standard button props.

## Solution

- rename the `type` prop to `variant`
- rename the `htmlType` prop to `type`
- propagate the changes where necessary
- format code

## How to test

As this is just prop renaming, if it builds it's ok

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2026-06-16 23:59:58 +02:00
Joshen Lim 4633992f81 Fix inconsistent padding in www mobile menu (#46704)
## Context

As per PR title
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/4cf07471-a0c1-449d-9759-a0ccb3456e09"
/>

Also resolves FE-3565
Closes mobile menu when a link is clicked


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

* **Improvements**
* Mobile menu now closes reliably when selecting more navigation items
(Modules, various Developers/Solutions links and footer links).
* Enhanced link focus and interaction behavior in the mobile menu for
clearer keyboard/touch feedback.

* **New Features**
* Navigation links can now accept optional click handlers, enabling
custom onClick behavior.

* **Refactor**
* Internal reorganization of mobile menu styling and link composition to
simplify maintenance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-08 21:24:39 +08:00
Gildas Garcia 8577b5fe77 chore: remove <Accordion> _Shadcn_ suffix (#46107)
## Problem

The `_Shadcn_` suffix isn't needed anymore on Accordion components

## Solution

- Remove the `_Shadcn_` suffix
- Simplify UI package exports
- Apply prettier

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

## Summary by CodeRabbit

* **Refactor**
* Updated accordion component exports and imports to use unified naming
conventions across the codebase, improving consistency for developers
using the UI library.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46107?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-19 17:04:00 +02:00
Gildas Garcia 082c2546d2 chore: migrate from deprecated Accordion to new shadcn components (#46103)
## Problem

We have multiple Accordion components

## Solution

Migrate Accordion usages to Shadcn components

## Screenshots

### Documentation MDX pages
Before:
<img width="1156" height="1088" alt="image"
src="https://github.com/user-attachments/assets/0f7b90ec-a613-45cf-8b04-39d2fd4b9644"
/>

After:
<img width="1154" height="952" alt="image"
src="https://github.com/user-attachments/assets/05c5051d-fa2a-497a-8f6f-96d555098e33"
/>

### Documentation Mobile Menu
Before:
<img width="389" height="674" alt="image"
src="https://github.com/user-attachments/assets/c9a0fa7a-3590-4f10-acfd-8add16c28b7b"
/>

After:
<img width="376" height="665" alt="image"
src="https://github.com/user-attachments/assets/d85fe05d-6d71-4e63-b0ea-cdc495d2fa94"
/>

### www - Launch week pages
Before:
<img width="1434" height="718" alt="image"
src="https://github.com/user-attachments/assets/d777f887-65d4-49f2-8b12-5b05010ba95d"
/>

After:
<img width="1428" height="732" alt="image"
src="https://github.com/user-attachments/assets/4fa7eb02-12c7-4b3b-b77f-09846518690c"
/>



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

* **Refactor**
* Replaced and standardized accordion UI across docs, navigation, mobile
menu, pricing FAQs, Launch Week pages, and error/detail panels for a
more consistent, reliable expand/collapse experience.
* **Bug Fixes**
* Fixed inconsistencies in accordion behavior and item rendering (e.g.,
multi-open support and disabled states) to improve navigation and
content discovery.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46103?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-19 16:23:40 +02:00
Charis 6c560e1adb prevent www nav bar bailing out ssr (#45422)
www pages that use DefaultLayout are bailing out of SSR because of
useSearchParams. Removing the useSearchParams opts more pages (including
the pricing page) into SSR.

_However_, it breaks the build because once blog pages are opted into
SSR, they fail due to next-mdx-remote/codehike incompatibilities. So we
also need to opt blog pages back _out_ of SSR using next/dynamic. This
reproduces previous behaviour for the blog.

Also had to remove suspense wrapper around everything because that was
causing the content div to be streamed in a hidden later chunk

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

## Summary by CodeRabbit

* **New Features**
* Added support for the Contribute section with improved state
management integration.

* **Performance Improvements**
  * Optimized blog post rendering with client-side enhancements.
  * Improved navigation and layout loading strategies.

* **Refactor**
  * Simplified provider architecture for better maintainability.
  * Restructured internal component organization.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-30 23:19:56 +03:00
Ivan VasilovandJordi Enric 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
Ivan Vasilov 308cd791a2 chore: Prep work for migrating to Tailwind v4 (#45285)
This PR preps the monorepo for a migration to Tailwind v4:
- Bump all Tailwind dependencies and libraries to the latest possible
version, while still compatible with Tailwind 3.
- Cleans up obsolete Tailwind 3 specific options and configs.
- Cleans up unused CSS files and fixes the CSS imports.
- Migrates all `important` uses in `@apply` lines to using the `!`
prefix.
- Move `typography.css` to the `config` package and import it from the
apps.
- Migrated all occurrences of `flex-grow`, `flex-shrink`,
`overflow-clip` and `overflow-ellipsis` since they're deprecated and
will be removed in Tailwind 4.
- Make the default theme object typesafe in the `ui` package.
- Migrate all `bg-opacity`, `border-opacity`, `ring-opacity` and
`divider-opacity` to the new format where they're declared as part of
the property color.
- Bump and unify all imports of `postcss` dependency.
2026-04-28 11:33:53 +02:00
Alan DanielandClaude Opus 4.6 aab4550c1b State of Startups 2026 (#44248)
New pages for State of Startups 2026.

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

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added "State of Startups 2026" interactive survey results page with
dynamic charts, filterable analytics, and data visualizations across
industry, funding stage, location, and technology adoption
* Implemented animated statistics displays, word clouds, and participant
directory throughout the results experience
  * Updated navigation to prominently feature the survey section

* **Style**
* Added smooth animated transitions for survey data elements and page
sections

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 08:52:38 +01:00
Charis 5c1cf1a6ea fix: tsconfig auto-import resolution (#44496)
Ever since the update to TypeScript 6, IDE auto-imports are suggesting
"node_modules/package_name/...." rather than the correct "package_name".
This is due to our deprecated bare specifier wildcard in paths,
replacing this with a listing of all bare specifiers we currently
support (while migrating away) to restore auto-import suggestions.
2026-04-02 14:38:14 -04:00
Alan Daniel f8b0d3602a chore: update supabase wordmark in Nav.tsx (#44306)
Previously, blurry PNGs images were used as logos. Updated it to use a
single svg instead of two png versions.

| Before | After |
|--------|--------|
| <img width="1463" height="652" alt="Screenshot 2026-03-28 at 12 23 13"
src="https://github.com/user-attachments/assets/d816bd16-09f3-4bc9-8dbb-d1e5839531d7"
/> | <img width="1317" height="547" alt="Screenshot 2026-03-28 at 12 22
53"
src="https://github.com/user-attachments/assets/e83c9e4e-fad0-4225-9493-c755f8bc5e6d"
/> |
2026-03-30 17:26:20 +00:00
Ivan Vasilov ee8eae7309 chore: Clean the ui package from next imports (#44278)
This PR moves several components which rely on `next` out of the `ui`
package to the `ui-patterns` package.

`ui-patterns` package is intented to be imported with specific imports
so it's ok if there are components reliant on `next` in there.

The `SonnerToaster` component has removed its dependency by requiring a
prop for `theme`.
2026-03-30 10:58:37 +02:00
Mert YEREKAPAN 6c436d5aa3 fix(Nav): update dashboard link to point to sign-up page (#43384)
## 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?

Redirect to the signup page for "Start your project" button

## What is the current behavior?

That button redirects to signin page

## What is the new behavior?

Redirects to signup page

## Additional context

Add any other context or screenshots.
2026-03-04 14:58:14 +01:00
Prashant SridharanandAlan Daniel e8d6824285 Added four new solution pages (#43242)
## 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?

I added four new solution pages for marketing purposes:
- B2B SaaS
- Healthcare
- FinServ
- Agents

I followed the data model and components of all existing solution pages.

I also altered the mega menu to include a new category.

---------

Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
2026-03-02 23:28:29 +00:00
Sean OliverandCharis Lam 6bbe2c3297 feat(telemetry): add dev telemetry toolbar (#42259)
## Problem
We need a local-only UI to inspect client and server telemetry events
and override flags during development without touching non-local env
behavior. This work is intended to be shared across Studio, Docs, and
WWW.

## Changes
- Introduced a shared `dev-tools` package with the Dev Telemetry Toolbar
UI, trigger, and provider.
- Wired the toolbar into Studio, Docs, and WWW app shells (local-only
gating).
- Added a local-only `devTelemetry()` opt-in with storage gating and SSE
subscription.
- Wired client PostHog events into a local listener and re-exported
types.
- Added local flag override cookie support in the UI and CODEOWNERS for
the new package.
- Added unit tests covering local/non-local behavior and flag utilities.

## Testing
Manual (local only):
- Start each app locally: `pnpm dev:studio`, `pnpm dev:docs`, `pnpm
dev:www`
- Open the app, run `devTelemetry()` in the browser console
- Click around and confirm both client and server events appear (client
will be page views only)
- Verify feature flag overrides (PostHog + ConfigCat) persist and
restore correctly
- Confirm dismissing the toolbar clears local storage and hides the
trigger

Unblocked by https://github.com/supabase/platform/pull/29172

Resolves GROWTH-591

Demo:

[github.com/user-attachments/assets/60b376db-7440-4ada-82f5-d1bd4af4db3b](https://github.com/user-attachments/assets/60b376db-7440-4ada-82f5-d1bd4af4db3b)

Screenshots:

<img width="1368" height="972" alt="1"
src="https://github.com/user-attachments/assets/d2f20a0c-191f-4118-bb5e-15b25f5a54a9"
/>

<img width="1423" height="790" alt="2"
src="https://github.com/user-attachments/assets/115598e2-7287-49bf-9ed7-71ecc679dee3"
/>

<img width="1433" height="882" alt="3"
src="https://github.com/user-attachments/assets/51f666f2-9efc-410f-baec-378bdee9dbfe"
/>

<img width="608" height="483" alt="4"
src="https://github.com/user-attachments/assets/584d6cf5-1b2f-4cee-9e6a-d55ce2e3bae5"
/>

<img width="628" height="305" alt="5"
src="https://github.com/user-attachments/assets/991a9b39-578a-4565-b110-537a02040a53"
/>

<img width="659" height="447" alt="6"
src="https://github.com/user-attachments/assets/95ef405c-fffa-44af-bf6a-f974b780e3fc"
/>

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

* **New Features**
* Developer Toolbar (local only): view client/server telemetry, inspect
events, and manage/override feature flags with persistent overrides,
filtering, and clear/reload.
* Client-side telemetry hooks: surface structured events to dev tooling
for realtime inspection.

* **Bug Fixes**
  * Fixed end-of-file newline in shared code.

* **Chores**
* Added dev-tools package, integrated provider and trigger across
Studio, Docs, and marketing sites, and added CODEOWNERS entry.

* **Tests**
  * Added comprehensive tests and test setup for the DevToolbar.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2026-02-06 11:46:53 -08:00
Alan Daniel 66a7255d86 (www): better loading state for auth buttons at navbar (#42226)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

| Before  | After |
| --- | --- |
| <video
src="https://github.com/user-attachments/assets/51d20e23-6bd1-458c-b35a-374990a5804f"/>
| <video
src="https://github.com/user-attachments/assets/fb94af78-efb5-477d-a61e-93f0c6153f05"/>
|





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

## Summary by CodeRabbit

* **Bug Fixes**
* Navigation header now displays proper loading state while retrieving
user authentication data. User-specific interface elements including
Dashboard links and user menu controls now correctly remain hidden until
user data fully loads, preventing premature visibility and ensuring
consistent display timing during page initialization.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-30 13:21:18 -04:00
Danny White e406beaccb chore(www): remove Select banner and callout (#39253)
chore: remove Select stuff
2025-10-11 11:31:30 +11:00
Danny White efd8f161cc feat: select ‘25 banner (#38773)
* first push

* select branding

* banner data

* fix: type errors
2025-09-17 08:31:13 +00:00
Francesco Sansalvadore b4922199cd unblock cms draft mode (#38409)
* remove port from cms start script

* address cors

* 30s revalidation on blog index

* fix types

* remove duplicate cache strategy

* disable graphql

* fix cms build

* fix ProductDropdown crash

* fix env var turbo
2025-09-16 13:03:13 +02:00
00520ca1fe Added new solutions pages and a new case study (#37987)
* Added new solutions pages and a new case study

* ci: Autofix updates from GitHub workflow

* Fixed solution page navigation

* Updated th e Soshi case study

* improve solutions navigation

* fix prettier

* rebase

* refine single quote

* add firebase hero visuals

* fix z layer for sticky nav

* animate results graph

* animated counter

* prettier

* fix quote on hackathon

* nits

* remove visuals from heros

* gs

* fix

* improve graph label

---------

Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
2025-09-12 14:33:08 +08:00
Francesco Sansalvadore 2feda5ee19 cms www blog (#38045)
* show cms blog posts in www
* remove contentlayer from www
* outputFileTracingExcludes
* update remotePatterns
* fetch cms posts server-side with revalidation
* add cms env vars to turbo.json
* add www env vars to turbo.json
* include cms posts in www sitemap
* add migration to remove image from cms post
* update cms meta image mapping in www
2025-09-03 14:49:28 +02:00
Joshen Lim 32f55e8238 Chore/finalize setup configcat www (#38236)
* Finalize setup configcat for www

* Add comments

* Add comment

* Add a console error if env var is missing for DX clarity

* Nit
2025-09-01 16:17:45 +07:00
Francesco Sansalvadore 892000538a [www] use dynamic imports (#38239)
use dynamic imports
2025-08-28 10:44:14 +02:00
Joshen Lim b59b002764 www nav CTAs to only render after user is loaded (#38177) 2025-08-26 10:49:57 +08:00
Francesco Sansalvadore 6b172a2ee2 chore: remove lw15 banners (#37718)
remove lw15 banners
2025-08-06 07:42:27 -04:00
Francesco Sansalvadore 2afa8ba4f6 lw15 ticketing (#36916)
lw15 ticketing site
2025-07-08 17:43:04 +02:00
Francesco Sansalvadore 66c3cd1b1f remove state of startups 2025 banners (#36778) 2025-06-30 18:35:15 +01:00
Francesco Sansalvadore c62c2752a8 solutions pages (#36628)
* solutions: supabse for beginner

* solutions: supabse for beginner

* solutions: supabse for beginner

* solutions: supabse for beginner

* solutions: supabase for developers

* solutions: supabase for postgres developers

* solutions: supabase for no-coders

* solutions: no code builders

* solutions: sticky nav

* solutions pages

* fix metadata

* add ai prompts to no code page

* prerify

* Solutions dropdown nav

* update footer

* update mobile menu

* fix visual

* chore: add startups solution page

* chore: startups page

* chore: metadata

* chore: update solutions labels

* chore: remove old export

* fix footer links
2025-06-30 11:24:40 +02:00
Joshen LimandIvan Vasilov 27d9b44526 Consolidate copy to clipboard (#36353)
* Consolidate copy to clipboard

* Fix

* Fix some extra clipboard events.

* Fix the tests. Fix a small issue with the copy button.

* Fix

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2025-06-13 13:08:08 +02:00
Francesco Sansalvadore 4f6e65a6f5 state of startups 2025 (#36047)
* state of startups page init

* state of startups page design

* finish dark aware design

* embed placeholder typescript form

* embed typeform in popup

* newsletter form to hubspot

* update typeform id and increase circle size on mobile

* update meta description

* promo

* fix line height and yc

* update subheading

* fix conflict and error handling

* fix anime js
2025-06-03 15:42:43 +02:00
Francesco SansalvadoreandAlaister Young a4cfcd9b2e global user dropdown in docs and www (#35063)
* docs: user nav dropdown

* www: user dropdown nav

* update menus

* chore: add complete local storage allowlist

* move all local-storage to common

* reload after logOut

* add local storage key changes from #35175

* fix errors

* add more keys

* fix merge bugs

---------

Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-05-05 11:48:06 +02:00
741993cc93 feat: ai builders landing page (#34616)
* chore: init ai builders paage

* add content

* ai builders wip

* feat: ai builders features section

* feat: videos section

* feat: fix types

* chore: add video urls

* updated Quotes

* ai builders form

* submit

* fix type error

* add solutions to nav dropdown

* fix pagename

* add ai builders logos

* docs link

* update ai builders page

* update quotes

* reduce padding

* update author role

* update quote

* React

* add env in turbo.json

* fix og image

* connect your app

---------

Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Wen Bo Xie <5532241+w3b6x9@users.noreply.github.com>
2025-04-04 14:46:40 +00:00
Ivan Vasilov eca4cc15a2 chore: Bump vulnerable deps (#33915)
* Consolidate different versions of postcss. Remove @mertasan/tailwindcss-variables from ui package.

* Bump vitest in pg-meta to remove a vulnerable version of vite.

* Bump dompurify.

* Bump all octokit deps to solve 2 vulns.

* Fix warnings about destructuring json imports.

* Remove a console.log in docs.

* Fix the changelog page to use an ESM import.

* Stabilize the generate-sitemap script output.

* Try another fix for the changelog.
2025-03-03 12:18:14 +01:00
Long Hoang 69726689c9 chore: remove event enums (#33730)
* chore: remove event enums

* chore: remove more event enums

* chore: remove unused HomepageHeroRequestDemoClickedEvent

* chore: remove unused HomepageHeroRequestDemoClickedEvent

* chore: rename custom_report events to use underscores

* chore: remove telemetry enum

* chore: remove unused imports

* chore: remove enums from merged events

* chore: remove unused imports

* chore: add typedocs for module and hide exported types that are not events
2025-02-25 13:08:31 +08:00
Pamela Chia df6e6c6f8b Feat/add www events (#33031)
* feat: add card click events in other pages

* feat: add location for hero, nav and banner button clicks

* add request demo form event

* add newline for long comment/descriptions
2025-01-24 14:49:32 +08:00
Pamela Chia d50fa11757 feat: add homepage click events (#33005)
* feat: add homepage click events

* fix codeowners telemetry filepath
2025-01-22 17:20:47 -08:00
Francesco Sansalvadore 592af2ffa2 feat: careers jobsCount in nav (#32771)
* add jobsCount to careers nav

* badge styling

* mobile career counter

* refactor static content generation

* refactor

* fix gh number formatting

* remove comment

* remove component

* fix fresh local dev & update spacing
2025-01-15 18:03:22 +01:00
Alaister Young ed227efb3f chore(www): reduce dashboard button layout shift (#32542) 2025-01-06 13:21:23 +08:00
Julien Goux aa0fedfc39 chore: node v22 LTS compatibility for contributing (#30970)
* chore: node v22 LTS compatibility for contributing

* missing assertions

* apply prettier
2024-12-12 11:29:07 +01:00
439af38592 feat: add Supabase Cron (#30870)
* d3

* change Cron tagline to Schedule Recurring Jobs

* update images

* feat: add Supabase Cron docs (#30822)

* feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
docs homepage layout

feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
docs homepage layout

feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
docs homepage layout

* fix: add pg_cron back to extensions sidebar

* update Supabase Cron docs

* Add screenshots to CRON guides (#30851)

add screenshots to CRON guides

* Update apps/docs/content/guides/cron.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/install.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/install.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/database/extensions/pg_cron.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* remove no longer needed cron mdx files

* move cron unschedule image to the right section

* link job history image

* update Cron taglines

---------

Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: Oliver Rice <github@oliverrice.com>

* Chore/cleanup 3 (#30861)

* cleanup

* rss

* LM images

* updates for Supabase Cron blog post (#30868)

---------

Co-authored-by: Wen Bo Xie <5532241+w3b6x9@users.noreply.github.com>

* www cron (#30859)

* new products menu

* set up cron page

* set up cron page

* placeholder sections

* basic suggestion for cron

* video placeholder + images

* sql snippet

* Cron landing page updates

* change API to SQL

* cron page update

* cron page update

* cron logs image

* update ogs

* update image url

* update metadata

* update cron metadata

* cleanup

* updates to cron landing page

* more updates

---------

Co-authored-by: Copple <10214025+kiwicopple@users.noreply.github.com>
Co-authored-by: Wen Bo Xie <wenbo.xie3@gmail.com>

* add Supabase Cron to www features page

* fix mobile nav and footer

* update images

* Update lw13_data.tsx

* update images

* remove old SVGs

* Update video link

* Fix a eslint error.

* Update apps/docs/content/guides/cron/quickstart.mdx

Co-authored-by: Thor 雷神 Schaeff <5748289+thorwebdev@users.noreply.github.com>

* Update apps/www/_blog/2024-12-04-supabase-cron.mdx

Co-authored-by: Copple <10214025+kiwicopple@users.noreply.github.com>

* Sm edits

* add video slug

* Update apps/www/_blog/2024-12-04-supabase-cron.mdx

Co-authored-by: Copple <10214025+kiwicopple@users.noreply.github.com>

* plurals

* update citus data callout

* cleanup images

* fix yt embed in features page

* update images

* minizie

* accept Cron

* accept [Cc]ron

* fix vale?

---------

Co-authored-by: Terry Sutton <saltcod@gmail.com>
Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: Oliver Rice <github@oliverrice.com>
Co-authored-by: Copple <10214025+kiwicopple@users.noreply.github.com>
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Thor 雷神 Schaeff <5748289+thorwebdev@users.noreply.github.com>
2024-12-04 10:51:57 -04:00
Francesco SansalvadoreandJonathan Summers-Muir f05a7c60c1 tiger init (#30620)
* lw13 interactive realtime grid

* 3d metal ticket

* add dynamic text to ticket

* reset ticket tilt on mouseout

* improve canvas sizing and ticket positioning and originate tilt from ticket

* test lw layout

* test lw layout

* fix imports

* .

* fix .length bug

* usual ticketing flow

* reduce ticket padding

* reduce fade delay

* add name from db

* text size

* use multiplayer.dev cursor logic

* lodash samplesize

* good state

* working users cursors

* single partyMode off

* clean up

* refactor ticket layout and positioning logic

* regular and platinum tickets

* regular theme based og

* add mono font to ticket, finish textures and ogs

* ticket cleanup

* restore countdown with ticket

* update og

* update og

* remote year add hour

* drag ticket to flip

* remove

* add presence

* remove cursor on own touch device

* test hidden mobile cursor

* fix mobile dragging

* scale ticket on interaction

* code logic

* secret ticket logic

* cleanup

* persist won game

* enable game on mobile

* fix mobile game

* add announcement banners

* update text layout

* hide game from share page and if game won

* fix mobile flip 🎉

* fix meetups time formatting

* faster flip

* tiger init styling (#30649)

* update

* mobile fix

---------

Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>

* use multilanguage font

* lineheight

* only published meetups

* comment on timezone column

* better mobile input positioning

* fix sudden lighting change

* increase cell size for better performance

* increase cell size for better performance

* last touches

---------

Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
2024-11-25 13:45:21 -04:00
Francesco Sansalvadore 9a3d0992c3 www features section (#30072)
* init features page

* fix filtering

* seo boostg

* add features to sitemap

* update copywriting

* improve features descriptions

* more studio features

* moar featuress

* better back to features

* prev next feature nav

* clean

* improve page footer

* fixes

* stuff

* sync filters with query params on page load

* better mobile layout

* 16px mobile input fontsize

* add cover images or videos to features

* improve a11y

* update sitemap

* last changes

* update schema definitions
2024-10-24 17:38:51 +02:00
Ivan Vasilov ddd52215dd fix: Optimize json data when including it in the www nav (#30041)
* Add a script to separate the latest blog posts from the contentlayer json into a separate json.

* Use the new json data for the latest blog posts.
2024-10-24 11:08:04 +02:00
Francesco Sansalvadore 438e1f0b6e remove webinar announcement link (#30059)
* remove webinar announcement link

* watch now
2024-10-24 09:47:37 +08:00