## 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?
Feature — A/B experiment for a new pricing calculator on the `/pricing`
page, gated behind a PostHog feature flag.
## What is the current behavior?
The pricing page shows a single compute pricing section
(`PricingComputeSection`) to all visitors with no experimentation
support.
## What is the new behavior?
- Introduces a **pricing calculator A/B experiment**
(`pricingCalculatorExperiment`) using PostHog feature flags evaluated
client-side.
- **Control variant**: Renders the existing `PricingComputeSection` (no
change).
- **Test variant**: Renders a new `NewPricingComputeSection` with:
- A plan selector toggle (Pro / Team)
- An interactive compute calculator with slider-based instance sizing
- Ability to add/remove multiple project instances
- Live monthly cost estimate breakdown (plan + compute - credits)
- Expandable compute pricing table with detailed specs
- Adds `getFeatureFlag` and `onFeatureFlags` methods to the shared
`PostHogClient` for client-side flag evaluation on www pages (where
server-side evaluation lacks full person context).
## Additional context
- The experiment is scoped to the `/pricing` page only.
- New components (`NewPricingComputeSection`,
`NewComputePricingCalculator`) are created alongside the existing ones —
the control path is completely untouched.
- Feature flag evaluation happens client-side because www pages don't
have full person context on the server.
- Telemetry type `PricingCalculatorExperimentExposedEvent` is added to
`telemetry-constants.ts`.
---------
Co-authored-by: Sean Oliver <882952+seanoliver@users.noreply.github.com>
Co-authored-by: Mert YEREKAPAN <mertyerekapan@gmail.com>
Co-authored-by: Mert YEREKAPAN <33198490+myerekapan@users.noreply.github.com>
## 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 adds a component showing a list of AI curated related threads to
the detail thread view.
## What is the current behavior?
This is not available.
## What is the new behavior?
A new component on the thread view.
## Additional context
Add any other context or screenshots.
---------
Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
## 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.
## 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>
## 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?
Bug fix
## What is the current behavior?
The dropdown menu items in the ComputePricingCalculator component use a
hardcoded key value of `"custom-expiry"` for all plan items in the map
function. This causes React to not properly identify unique list items,
which can lead to rendering issues and state management problems when
multiple plans are displayed.
## What is the new behavior?
Changed the key prop from the hardcoded `"custom-expiry"` to
`plan.name`, which uniquely identifies each plan item. This ensures
React can properly track and render each dropdown menu item.
## Additional context
This is a common React anti-pattern where using a constant key for list
items prevents React from properly reconciling the virtual DOM. Using
`plan.name` as the key ensures each plan has a unique identifier for
proper rendering and state management.
https://claude.ai/code/session_01HDfar7A1XXJFJDchPPSQTK
Co-authored-by: Claude <noreply@anthropic.com>
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.
YES/NO
## What kind of change does this PR introduce?
Bug fix, feature, docs update, ...
## What is the current behavior?
Please link any relevant issues here.
## What is the new behavior?
Feel free to include screenshots if it includes visual changes.
## Additional context
Add any other context or screenshots.
This PR removes all CMS code from the `www` app. This includes fetching
of blog posts, API routes for proxying blog posts and types.
All functionality should remain the same (and the number of blog posts
should be the same).
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Removed CMS integration, APIs, preview/draft/revalidate endpoints,
related env vars and dependency; switched to static markdown-only blog
pipeline.
* **Refactor**
* Simplified image and author resolution, tightened component props to
static post shapes, and migrated imports to path aliases.
* **Documentation**
* Deleted CMS integration docs and rich-text conversion helpers.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## 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>
Move the /pricing/ page to the app router
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added a dedicated pricing page with pricing plans, interactive cost
calculators, add-ons options, and plan comparison tools.
* **Updates**
* Enhanced pricing components with performance improvements and
streamlined navigation handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## 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 -->
## What kind of change does this PR introduce?
Frontmatter name change.
## What is the current behavior?
We repeatedly mistake `thumb` for `image` and visa versa, meaning the
wrong images are used for Open Graph and in-site thumbnails on blog
posts. Events and case studies use the same naming convention too.
## What is the new behavior?
These two bits of frontmatter are renamed for clarity:
- Blog posts: `imgThumb` + `imgSocial`
That mapping for blog posts:
- `thumb` is now `imgThumb`
- `image` is now `imgSocial`
These related bits remain as-is:
- Events
- Case studies
The
[www/README.md](https://github.com/supabase/supabase/blob/dnywh/chore/blog-image-frontmatter/apps/www/README.md#best-practices)
file has been expanded to clarify all of the above. It now also provides
instructions on image optimisation.
## To test
A lot of files were touched here. Please help make sure:
- [ ] The CMS works as intended. This is the **biggest unknown**.
- [x] All blog posts render the correct image as their on-site thumbnail
and Open Graph image. You can test the latter by firing up a draft
iMessage. Online Open Graph services like Facebook cache images, so
aren’t reliable.
- [x] All events render their correct images
- [x] All case studies render their correct images
- [x] All customer stories render their correct images ([known
issue](https://supabase.slack.com/archives/C072FL5KKKP/p1768888063209359?thread_ts=1768885681.502169&cid=C072FL5KKKP),
predates this work)
* fix(www): update cobe version to reduce lag on /career and remove height/width assignment per frame
* fix: update cobe version to reduce lag on /career and remove height/width assignment per frame
* remove pnpm-lock.yaml from PR
* lockfile
---------
Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
* open source section
* Implement kFormatter utility for number formatting in thousands notation and update OpenSourceSection to use it for displaying GitHub stars.
* Rough contribute ui
* Clean up filter area
* Tweak query with new threads schema
* Unify table and apply some ui nits
* Fix types issues
* Setup types
* FilterS
* Fix filters
* Make search global
* Add icons for table rows
* Add single thread view
* Loading state for threads
* Fix icon colors
* Add leaderboard
* Fix conversation text overflow and add op badge
* Rename leaderboard
* Turn of leaderboard
* Formatting
* Remove other from product areas
* And from stacks
* Prettier types
* Start contribute/about
* About cards
* Add avatar component
* Polish up about page
* Nudges
* Add application form
* Add squad form
* Change to last 30 days instead of 24hrs
* Responsive nudges
* Format components for conversation view
* Re use ui components on about page
* Fix prettier errors
* Filter nudges
* chore(www): improve contribute UI (#41481)
* hero tweaks
* better table
* wrap post time
* nip and tuck
* use table component
* use table component
* Add menu item
* Alan/polish contribute filtering UI (#41504)
* polishing tabs
* nits in tables
* nit in filtering
* nits
* ship it
* fix selection style
* nit search bar
* Add view for authors
* Format author page
* Add contribute menu item
* Tidy up about page
* More about page edits
* Update
* basics
* copy cleanup
* improvements to thread table
* threads improvements
* remove extraneous div
* thread improvements
* chore(www): improve contribute UI (#41605)
* basics
* improvements to thread table
* threads improvements
* remove extraneous div
* thread improvements
* Add feature flag for contribute page
* Add feature flag for contribute page
* Fix ts error
* Thread view nudges
* Undo env change
* Cleanup
* Cleanup
* Typos
---------
Co-authored-by: Tomas Pozo <tomaspozogarzon@gmail.com>
Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
* wip
* wip
* single page
* new sections and polishing up
* reponsive
* nits
* semantic titles
* optimize imgs
* nits
* wup
* hero bubbles
* Update apps/www/components/Wrapped/Pages/SupabaseSelect.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix: Use `amaro` for stripping types in code samples (#41229)
* Fix the error for babel/preset-typescript in docs.
* Unfix the version.
* Try using amaro for type stripping.
* Run prettier after stripping types.
* Fix tests.
---------
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
* fix: Fix minor issue in the foreign key selector (#41235)
Change the isPending state to isLoading.
* docs: Remove empty troubleshooting fields (#41236)
* Remove emoty fields
* Fix lock file
* chore: update self-hosted image versions (#41234)
* Feature: show index advisor in table editor (#41166)
* added table advisor query
* updated to include table editor performance
* updated JSON B
* added side panel
* updated query indexes to show highlights context
* show index advisor in table editor
* updated invalidation logic
* added color updates
* added query indexes
* updated query performance type
* updated overflow and title
* put behind flag
* remove gap
* added on close
* Update apps/studio/data/database/table-index-advisor-query.ts
Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
* updated styling
---------
Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
* fix: useFlag to update initial check of flag store (#41209)
* fix flag lib
* updated uneeded logic
* updated logic
* remove line
* updated comment
* fix: Hide favourites and share snippets on self-hosted variant (#41227)
* Hide favorite and share actions for self-hosted version.
* Rename the query on save only on platform.
* Simplify useCheckOpenAiKeyQuery.
* Rename with AI now depends if the OPENAI_API_KEY is set.
* Minor fixes.
* Fix the tests to use .skip for skipping tests. Remove extra port params.
* Make the test for favourites work only on platform variant.
* feat(reports): support new database report granularity FE-2221 (#41228)
* handle new granularity
* undo unnecessary type change
* rm console log
* fix: blog auto scroll post app router migration for blog (#41220)
Enhance TOC highlighting and anchor scroll in blog posts
Refactored useActiveAnchors hook to support smooth hash scrolling and improved TOC highlighting based on scroll position. Added options for custom selectors and offset, and updated BlogPostClient to enable scroll-to-anchor and TOC highlight functionality.
* fix: remove flakiness with launch options and default timeouts (#41245)
* attempt to make table editor tests less flaky
* updated race conditions for table editor
* updated playwright config with optimized launch options
* reduce workers
* updated timeouts for tests
* updated config to have a global timeout of 20 seconds
* updated to be visible
* chore: update changelog and image versions file (#41244)
* feat(design-system): improve table docs (#41215)
* docs updates
* docs expansion
* minor docs fix
* improvements
* fix dependencies
* docs expansion
* more table examples
* map over data
* improve copy
* Update apps/design-system/registry/default/example/table-row-link-actions.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update apps/design-system/registry/default/example/table-row-link-actions.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fixes
* fix
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore(studio): improve table presentation (#41217)
* billing improvements
* wrapper improvements
* border fix
* Nit adjustments
* fixes
* fix aria
* fix loading
* fixes
* fix
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Save opened side bar in local storage, and init on new session (#41224)
* Save opened side bar in local storage, and init on new session
* Fix test
* Fix
* Nit
* docs(design-system): Data Table and Data Grid documentation (#41252)
* basic differentiation
* docs
* data-grid examples
* data-grid-demo
* data-table
* demo
* use existing components
* improvements
* markup
* docs
* remove data table
* lint
* Update apps/design-system/content/docs/ui-patterns/empty-states.mdx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix ref
* use TanStack sorting
* grammar
* dependency
* 📝 Add docstrings to `dnywh/docs/data-table-data-grid` (#41255)
Docstrings generation was requested by @MildTomato.
* https://github.com/supabase/supabase/pull/41252#issuecomment-3640781017
The following files were modified:
* `apps/design-system/registry/default/example/data-grid-demo.tsx`
* `apps/design-system/registry/default/example/data-grid-empty-state.tsx`
* `apps/design-system/registry/default/example/data-table-demo.tsx`
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* docs: fix grammatical error in generate-text-embeddings guide (#41187)
* docs: fix grammatical error in generate-text-embeddings guide
* Update generate-text-embeddings.mdx
Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
---------
Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
* chore: uniform card and panel padding-x (#41237)
* docs: Fix typo in API introduction documentation (#41251)
* chore(billing): regenerate api-types to include vanity subdomain entitlement (#41257)
chore(billing: regenerate api-types to include vanity subdomain entitlement
* Add liam to humans.txt (#41169)
* docs: Add link to restoring backup to new Supabase project (#39108)
Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
* feat(code-block): add word wrap functionality and controls to code bl… (#39689)
* feat(code-block): add word wrap functionality and controls to code blocks
* feat(code-block): enhance layout of code block with improved line number display and structure
* fix h-full issue
* fix Prettier issue
---------
Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
* wip
* wip
* single page
* optimize imgs
* revert
* pkg
* update new content
* rm overflow
* new data
* nits
* nits
* og
* border
* fix: improve AnimatedCounter and FloatingStatBubbles/Intro components
- Update AnimatedCounter to correctly reflect value changes in the DOM.
- Add lifetime management for timers in FloatingStatBubbles and FloatingBoxes to prevent memory leaks.
- Ensure cleanup of timers on component unmount for better resource management.
* dbs
* minify images
* text-brand-link on light mode
* fix grid
* max-width on images
* address comments
* fixes
* faster image rotation
* upd og
* new launch
* nitsgs
* last nits
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
Co-authored-by: Andrey A. <56412611+aantti@users.noreply.github.com>
Co-authored-by: Ali Waseem <waseema393@gmail.com>
Co-authored-by: Jordi Enric <37541088+jordienr@users.noreply.github.com>
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Dinesh Dawonauth <dineshddawo@gmail.com>
Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
Co-authored-by: 李子衿 <160584929+hhhez@users.noreply.github.com>
Co-authored-by: Kanishk Dudeja <kanishk@kanishkdudeja.com>
Co-authored-by: lch-supa <liam.hogan@supabase.io>
Co-authored-by: Timothy Lim <tim.lim@supabase.io>
Co-authored-by: Priyanshu Thapliyal <114170980+Priyanshuthapliyal2005@users.noreply.github.com>
- Move from Audit Trail naming to more explicit "Auth Audit Logs" / "Platform Audit Logs" (we were throwing in the term trails on the pricing page but using logs in dashboard and docs)
- New Platform Audit Logs docs under security
- Moved Platform Audit Logs under Security on pricing page given it is not just for dashboard (previous category), but also for API
- Added tooltips for both on pricing page
* docs: update Refine svg in HeroFrameworks
* docs: use capital R for Refine mentions
* docs: use main branch for Refine repository references
* docs: update connect interface example code for Refine
* docs: update Refine quick start tutorial with Refine v5
* examples(refine-user-management): upgrade to Refine v5
* docs: update Refine getting started tutorial with Refine v5
* chore(studio): update Refine icon on Connect modal
* docs: update Refine svg
* docs: update welcome screen screenshot in Refine tutorial
* docs: update dimensions of welcome screen screenshot in Refine tutorial
* chore: remove leftover dist assets from Refine example
* chore(linter): add Refine to Rule001 and Rule003
* chore: format getting started with Refine.mdx
* chore: remove .prettierrc file from the example
* Added agencies page
* Updated agencies solution page with quotes
* Final approval on al quotes secured
* lint
* ts
---------
Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
* add new tweets and remove old
* randomise on sign in
* prefer higher weights
* single source of truth
* additional tweet
* clean up extraneous content