Skip to content

feat(core): implement <BrowserOnly> with React browser() API (AI-assisted) - #12496

Merged
slorber merged 5 commits into
mainfrom
feat/browser-only-react-browser-api
Sep 25, 2026
Merged

slorber merged 5 commits into
mainfrom
feat/browser-only-react-browser-api

Conversation

@slorber

@slorber slorber commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Pre-flight checklist

  • I have read the Contributing Guidelines on pull requests.
  • If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
  • If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation

Supersedes #12443 (AI-assisted), keeping the useful idea and dropping the rest.

<BrowserOnly> now relies on React 19.3's use(browser()) inside its own <Suspense> boundary, instead of reading the useIsBrowser() context:

  • Server: React renders the fallback, never calls children, and reports a browser bailout, not an error. Our renderToHtml onError is not triggered.
  • Client: use(browser()) is a no-op. The children render after hydration, and right away on client-side navigation.

Behavior changes:

  • Suspense is contained: when children suspend (for example React.lazy), the <BrowserOnly> fallback is displayed. The suspension no longer reaches the parent <Suspense>, so siblings stay visible. The docs are updated, and the react-18 dogfooding page is renamed to a version-agnostic suspense-tests page (Argos path updated).
  • Slightly larger SSR HTML: each instance emits <!--$!--><template data-dgst=""></template>…<!--/$-->, about 50 bytes.
  • docusaurus build --dev output: React's development SSR build also adds data-msg and data-cstck (a full component stack) to these boundaries. Production builds don't. Argos text snapshots are built with --dev, so argos/normalizeTextSnapshots.mjs now strips these attributes from <template data-dgst=""> markers to avoid noisy, line-number-dependent diffs. A non-empty digest (a real SSR error) is left untouched.

Not changed:

  • Same UX: the SSR HTML still contains the fallback, and the client still swaps it after hydration. The layout shift is the same as before.
  • Same errors: the dev-mode "children must be a render function" error still only happens on the client. In production, non-function children still throw instead of failing silently.
  • Same API: no new props.

Test Plan

Rewrote the BrowserOnly unit tests, since the old ones relied on the context:

  • client rendering, dev-mode children validation, and suspense containment
  • SSR through the real renderToHtml: renders the fallback, never calls children, doesn't validate children
  • SSR then hydrateRoot: children rendered, no onRecoverableError, no console.error
  • children of <BrowserOnly> see useIsBrowser() === true, even on a client render without hydration (thanks to refactor(core): reimplement useIsBrowser() with useSyncExternalStore (AI-assisted) #12498)

Test links

Deploy preview: https://deploy-preview-12496--docusaurus-2.netlify.app/

Related issues/PRs

🤖 Generated with Claude Code

@slorber
slorber requested a review from Josh-Cena as a code owner September 25, 2026 13:28
@meta-cla meta-cla Bot added the CLA Signed Signed Facebook CLA label Sep 25, 2026
@slorber slorber added the pr: new feature This PR adds a new API or behavior. label Sep 25, 2026
@netlify

netlify Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

✅ [V2]

Name Link
🔨 Latest commit 9e67cf6
🔍 Latest deploy log https://app.netlify.com/projects/docusaurus-2/deploys/6ab6a25e496756000927cf9f
😎 Deploy Preview https://deploy-preview-12496--docusaurus-2.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Size Change: +62.1 kB (+0.5%)

Total Size: 12.4 MB

📦 View Changed
Filename Size Change
website/build/blog/2017/12/14/introducing-docusaurus.html 67.5 kB +157 B (+0.23%)
website/build/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus.html 46.6 kB +105 B (+0.23%)
website/build/blog/2018/09/11/Towards-Docusaurus-2.html 51 kB +110 B (+0.22%)
website/build/blog/2021/11/21/algolia-docsearch-migration.html 56.1 kB +53 B (+0.09%)
website/build/blog/2022/08/01/announcing-docusaurus-2.0.html 137 kB +53 B (+0.04%)
website/build/blog/2022/09/01/docusaurus-2.1.html 52.2 kB +209 B (+0.4%)
website/build/blog/preparing-your-site-for-docusaurus-v3.html 130 kB +1.15 kB (+0.89%)
website/build/blog/releases/2.2.html 52.3 kB +105 B (+0.2%)
website/build/blog/releases/2.3.html 62.9 kB +156 B (+0.25%)
website/build/blog/releases/2.4.html 66.8 kB +365 B (+0.55%)
website/build/blog/releases/3.0.html 109 kB +677 B (+0.62%)
website/build/blog/releases/3.1.html 55 kB +53 B (+0.1%)
website/build/blog/releases/3.2.html 50.8 kB +157 B (+0.31%)
website/build/blog/releases/3.3.html 58.1 kB +105 B (+0.18%)
website/build/blog/releases/3.4.html 57.3 kB +209 B (+0.37%)
website/build/blog/releases/3.5.html 60.1 kB +209 B (+0.35%)
website/build/blog/releases/3.6.html 79.1 kB +521 B (+0.66%)
website/build/blog/releases/3.7.html 52.7 kB +157 B (+0.3%)
website/build/blog/releases/3.8.html 88.4 kB +422 B (+0.48%)
website/build/blog/releases/3.9.html 62.8 kB +157 B (+0.25%)
website/build/blog/releases/3.10.html 93.6 kB +521 B (+0.56%)
website/build/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing.html 127 kB +469 B (+0.37%)
website/build/docs.html 52.5 kB +260 B (+0.5%)
website/build/docs/advanced/client.html 70.7 kB +469 B (+0.67%)
website/build/docs/advanced/plugins.html 55.6 kB +261 B (+0.47%)
website/build/docs/advanced/routing.html 70.9 kB +261 B (+0.37%)
website/build/docs/advanced/ssg.html 75.5 kB +521 B (+0.69%)
website/build/docs/api/docusaurus-config.html 242 kB +1.98 kB (+0.82%)
website/build/docs/api/misc/@docusaurus/eslint-plugin.html 51.6 kB +416 B (+0.81%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-html-links.html 36.8 kB +105 B (+0.29%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text.html 35.8 kB +105 B (+0.29%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading.html 37.1 kB +105 B (+0.28%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages.html 40.8 kB +105 B (+0.26%)
website/build/docs/api/misc/@docusaurus/logger.html 39.2 kB +53 B (+0.14%)
website/build/docs/api/misc/create-docusaurus.html 38.4 kB +216 B (+0.57%)
website/build/docs/api/plugin-methods.html 63.1 kB +113 B (+0.18%)
website/build/docs/api/plugin-methods/extend-infrastructure.html 59.2 kB +260 B (+0.44%)
website/build/docs/api/plugin-methods/i18n-lifecycles.html 58.2 kB +209 B (+0.36%)
website/build/docs/api/plugin-methods/lifecycle-apis.html 162 kB +833 B (+0.52%)
website/build/docs/api/plugin-methods/static-methods.html 45.2 kB +105 B (+0.23%)
website/build/docs/api/plugins/@docusaurus/plugin-client-redirects.html 60.2 kB +365 B (+0.61%)
website/build/docs/api/plugins/@docusaurus/plugin-content-blog.html 187 kB +1.1 kB (+0.59%)
website/build/docs/api/plugins/@docusaurus/plugin-content-docs.html 193 kB +838 B (+0.44%)
website/build/docs/api/plugins/@docusaurus/plugin-content-pages.html 75.2 kB +474 B (+0.63%)
website/build/docs/api/plugins/@docusaurus/plugin-css-cascade-layers.html 47.8 kB +313 B (+0.66%)
website/build/docs/api/plugins/@docusaurus/plugin-debug.html 48.5 kB +365 B (+0.76%)
website/build/docs/api/plugins/@docusaurus/plugin-google-gtag.html 49.4 kB +313 B (+0.64%)
website/build/docs/api/plugins/@docusaurus/plugin-google-tag-manager.html 48.2 kB +313 B (+0.65%)
website/build/docs/api/plugins/@docusaurus/plugin-ideal-image.html 57.9 kB +420 B (+0.73%)
website/build/docs/api/plugins/@docusaurus/plugin-pwa.html 118 kB +469 B (+0.4%)
website/build/docs/api/plugins/@docusaurus/plugin-rsdoctor.html 40.9 kB +261 B (+0.64%)
website/build/docs/api/plugins/@docusaurus/plugin-sitemap.html 66.2 kB +365 B (+0.55%)
website/build/docs/api/plugins/@docusaurus/plugin-svgr.html 46.1 kB +313 B (+0.68%)
website/build/docs/api/plugins/@docusaurus/plugin-vercel-analytics.html 41.2 kB +261 B (+0.64%)
website/build/docs/api/themes/@docusaurus/theme-classic.html 44.1 kB +313 B (+0.71%)
website/build/docs/api/themes/@docusaurus/theme-live-codeblock.html 37.1 kB +261 B (+0.71%)
website/build/docs/api/themes/@docusaurus/theme-mermaid.html 35.9 kB +261 B (+0.73%)
website/build/docs/api/themes/@docusaurus/theme-search-algolia.html 33.6 kB +208 B (+0.62%)
website/build/docs/api/themes/configuration.html 254 kB +1.82 kB (+0.72%)
website/build/docs/blog.html 204 kB +1.67 kB (+0.82%)
website/build/docs/browser-support.html 48.5 kB +266 B (+0.55%)
website/build/docs/cli.html 68 kB +884 B (+1.32%)
website/build/docs/configuration.html 93.6 kB +988 B (+1.07%)
website/build/docs/create-doc.html 62.3 kB +469 B (+0.76%)
website/build/docs/creating-pages.html 57.6 kB +157 B (+0.27%)
website/build/docs/deployment.html 67.5 kB +728 B (+1.09%)
website/build/docs/deployment/github-pages.html 120 kB +468 B (+0.39%)
website/build/docs/deployment/netlify.html 39.3 kB +156 B (+0.4%)
website/build/docs/docs-introduction.html 51.2 kB +261 B (+0.51%)
website/build/docs/docs-multi-instance.html 74.8 kB +781 B (+1.05%)
website/build/docs/docusaurus-core.html 227 kB +1.88 kB (+0.83%)
website/build/docs/i18n/crowdin.html 149 kB +1.87 kB (+1.28%)
website/build/docs/i18n/git.html 81.1 kB +1.2 kB (+1.51%)
website/build/docs/i18n/introduction.html 49.8 kB +156 B (+0.31%)
website/build/docs/i18n/tutorial.html 170 kB +1.82 kB (+1.08%)
website/build/docs/installation.html 71.6 kB +1.56 kB (+2.23%)
website/build/docs/markdown-features.html 85.7 kB +366 B (+0.43%)
website/build/docs/markdown-features/admonitions.html 118 kB +677 B (+0.58%)
website/build/docs/markdown-features/assets.html 87.8 kB +677 B (+0.78%)
website/build/docs/markdown-features/code-blocks.html 223 kB +3.03 kB (+1.38%)
website/build/docs/markdown-features/diagrams.html 61.9 kB +572 B (+0.93%)
website/build/docs/markdown-features/head-metadata.html 51.6 kB +157 B (+0.31%)
website/build/docs/markdown-features/links.html 41.4 kB +110 B (+0.27%)
website/build/docs/markdown-features/math-equations.html 92.7 kB +625 B (+0.68%)
website/build/docs/markdown-features/plugins.html 96.8 kB +573 B (+0.6%)
website/build/docs/markdown-features/react.html 132 kB +780 B (+0.6%)
website/build/docs/markdown-features/tabs.html 141 kB +625 B (+0.44%)
website/build/docs/markdown-features/toc.html 87.9 kB +573 B (+0.66%)
website/build/docs/migration.html 40.2 kB +521 B (+1.31%)
website/build/docs/migration/v2.html 40 kB +105 B (+0.26%)
website/build/docs/migration/v2/automated.html 40.6 kB +313 B (+0.78%)
website/build/docs/migration/v2/manual.html 192 kB +1.72 kB (+0.9%)
website/build/docs/migration/v2/translated-sites.html 51.3 kB +105 B (+0.21%)
website/build/docs/migration/v2/versioned-sites.html 60.9 kB +573 B (+0.95%)
website/build/docs/migration/v3.html 193 kB +2.34 kB (+1.23%)
website/build/docs/search.html 125 kB +1.04 kB (+0.84%)
website/build/docs/seo.html 89.1 kB +364 B (+0.41%)
website/build/docs/sidebar.html 141 kB +624 B (+0.44%)
website/build/docs/sidebar/autogenerated.html 148 kB +937 B (+0.64%)
website/build/docs/sidebar/items.html 177 kB +1.35 kB (+0.77%)
website/build/docs/sidebar/multiple-sidebars.html 62.8 kB +417 B (+0.67%)
website/build/docs/static-assets.html 52.7 kB +365 B (+0.7%)
website/build/docs/styling-layout.html 142 kB +1.09 kB (+0.78%)
website/build/docs/swizzling.html 113 kB +1.77 kB (+1.58%)
website/build/docs/typescript-support.html 68.4 kB +884 B (+1.31%)
website/build/docs/using-plugins.html 107 kB +1.09 kB (+1.03%)
website/build/docs/versioning.html 93.3 kB +884 B (+0.96%)
ℹ️ View Unchanged
Filename Size Change
website/.docusaurus/codeTranslations.json 2 B 0 B
website/.docusaurus/docusaurus.config.mjs 29 kB 0 B
website/.docusaurus/globalData.json 39.1 kB 0 B
website/.docusaurus/i18n.json 1.36 kB 0 B
website/.docusaurus/registry.js 180 kB +18 B (+0.01%)
website/.docusaurus/routes.js 89.8 kB +12 B (+0.01%)
website/.docusaurus/routesChunkNames.json 94 kB +6 B (+0.01%)
website/.docusaurus/site-metadata.json 2.59 kB 0 B
website/build/assets/css/styles.********.css 147 kB 0 B
website/build/assets/js/main.********.js 760 kB +24 B (0%)
website/build/assets/js/runtime~main.********.js 40.3 kB 0 B
website/build/blog.html 79.5 kB 0 B
website/build/blog/2018/12/14/Happy-First-Birthday-Slash.html 30.5 kB +1 B (0%)
website/build/blog/2019/12/30/docusaurus-2019-recap.html 41.6 kB +1 B (0%)
website/build/blog/2020/01/07/tribute-to-endi.html 34 kB +1 B (0%)
website/build/blog/2021/01/19/docusaurus-2020-recap.html 53.2 kB +1 B (0%)
website/build/blog/2021/03/09/releasing-docusaurus-i18n.html 49.1 kB +1 B (0%)
website/build/blog/2021/05/12/announcing-docusaurus-two-beta.html 49.7 kB +1 B (0%)
website/build/blog/2022/01/24/docusaurus-2021-recap.html 45 kB +1 B (0%)
website/build/blog/archive.html 24.8 kB 0 B
website/build/blog/authors.html 52.1 kB 0 B
website/build/blog/authors/j-marcey.html 72.4 kB 0 B
website/build/blog/authors/josh-cena.html 48.5 kB 0 B
website/build/blog/authors/lex-111.html 57.5 kB 0 B
website/build/blog/authors/slorber.html 83.1 kB 0 B
website/build/blog/authors/slorber/page/2.html 82.3 kB 0 B
website/build/blog/authors/slorber/page/3.html 86 kB 0 B
website/build/blog/authors/slorber/page/4.html 98.7 kB 0 B
website/build/blog/authors/slorber/page/5.html 55 kB 0 B
website/build/blog/authors/yangshun.html 68.3 kB 0 B
website/build/blog/authors/zpao.html 49 kB 0 B
website/build/blog/page/2.html 78.7 kB 0 B
website/build/blog/page/3.html 83.1 kB 0 B
website/build/blog/page/4.html 87.6 kB 0 B
website/build/blog/page/5.html 74.8 kB 0 B
website/build/blog/page/6.html 42.1 kB 0 B
website/build/blog/tags.html 28.7 kB 0 B
website/build/docs/advanced.html 31.7 kB 0 B
website/build/docs/advanced/architecture.html 30.3 kB +4 B (+0.01%)
website/build/docs/api/misc/docusaurus-init/index.html 361 B 0 B
website/build/docs/api/plugins.html 32.6 kB 0 B
website/build/docs/api/themes.html 30.2 kB +1 B (0%)
website/build/docs/category/getting-started.html 28.5 kB 0 B
website/build/docs/category/guides.html 39 kB 0 B
website/build/docs/category/miscellaneous.html 28.3 kB 0 B
website/build/docs/deployment/vercel.html 33.3 kB 0 B
website/build/docs/guides/whats-next.html 33.3 kB 0 B
website/build/docs/introduction/index.html 280 B 0 B
website/build/docs/playground.html 32 kB 0 B
website/build/docs/resources/index.html 325 B 0 B
website/build/docs/support/index.html 319 B 0 B
website/build/docs/team/index.html 310 B 0 B
website/build/index.html 37.1 kB 0 B

compressed-size-action::DOCUSAURUS_INFRA_FASTER

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

⚡️ Lighthouse report for the deploy preview of this PR

URL Performance Accessibility Best Practices SEO Report
/ 🟠 52 🟢 98 🟢 100 🟢 100 Report
/docs/installation 🟠 53 🟢 97 🟢 100 🟢 100 Report
/docs/category/getting-started 🟠 63 🟢 100 🟢 100 🟠 86 Report
/blog 🟠 64 🟢 96 🟢 100 🟠 86 Report
/blog/preparing-your-site-for-docusaurus-v3 🟠 82 🟢 92 🟢 100 🟢 100 Report
/blog/tags/release 🟠 65 🟢 96 🟢 100 🟠 86 Report
/blog/tags 🟠 66 🟢 100 🟢 100 🟠 86 Report

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Size Change: +62.1 kB (+0.5%)

Total Size: 12.5 MB

📦 View Changed
Filename Size Change
website/build/blog/2017/12/14/introducing-docusaurus.html 68 kB +157 B (+0.23%)
website/build/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus.html 47.1 kB +105 B (+0.22%)
website/build/blog/2018/09/11/Towards-Docusaurus-2.html 51.5 kB +110 B (+0.21%)
website/build/blog/2021/11/21/algolia-docsearch-migration.html 56.8 kB +53 B (+0.09%)
website/build/blog/2022/08/01/announcing-docusaurus-2.0.html 138 kB +53 B (+0.04%)
website/build/blog/2022/09/01/docusaurus-2.1.html 52.8 kB +209 B (+0.4%)
website/build/blog/preparing-your-site-for-docusaurus-v3.html 132 kB +1.15 kB (+0.88%)
website/build/blog/releases/2.2.html 52.9 kB +105 B (+0.2%)
website/build/blog/releases/2.3.html 63.6 kB +156 B (+0.25%)
website/build/blog/releases/2.4.html 67.4 kB +365 B (+0.54%)
website/build/blog/releases/3.0.html 110 kB +677 B (+0.62%)
website/build/blog/releases/3.1.html 55.5 kB +53 B (+0.1%)
website/build/blog/releases/3.2.html 51.4 kB +157 B (+0.31%)
website/build/blog/releases/3.3.html 58.6 kB +105 B (+0.18%)
website/build/blog/releases/3.4.html 57.9 kB +209 B (+0.36%)
website/build/blog/releases/3.5.html 60.6 kB +209 B (+0.35%)
website/build/blog/releases/3.6.html 79.8 kB +521 B (+0.66%)
website/build/blog/releases/3.7.html 53.3 kB +157 B (+0.3%)
website/build/blog/releases/3.8.html 89.2 kB +422 B (+0.48%)
website/build/blog/releases/3.9.html 63.5 kB +157 B (+0.25%)
website/build/blog/releases/3.10.html 94.4 kB +521 B (+0.56%)
website/build/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing.html 128 kB +469 B (+0.37%)
website/build/docs.html 53.1 kB +260 B (+0.49%)
website/build/docs/advanced/client.html 71.4 kB +469 B (+0.66%)
website/build/docs/advanced/plugins.html 56.1 kB +261 B (+0.47%)
website/build/docs/advanced/routing.html 71.6 kB +261 B (+0.37%)
website/build/docs/advanced/ssg.html 76.4 kB +521 B (+0.69%)
website/build/docs/api/docusaurus-config.html 244 kB +1.98 kB (+0.82%)
website/build/docs/api/misc/@docusaurus/eslint-plugin.html 52.3 kB +416 B (+0.8%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-html-links.html 37.4 kB +105 B (+0.28%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/no-untranslated-text.html 36.3 kB +105 B (+0.29%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/prefer-docusaurus-heading.html 37.6 kB +105 B (+0.28%)
website/build/docs/api/misc/@docusaurus/eslint-plugin/string-literal-i18n-messages.html 41.3 kB +105 B (+0.25%)
website/build/docs/api/misc/@docusaurus/logger.html 39.8 kB +53 B (+0.13%)
website/build/docs/api/misc/create-docusaurus.html 38.9 kB +216 B (+0.56%)
website/build/docs/api/plugin-methods.html 63.5 kB +113 B (+0.18%)
website/build/docs/api/plugin-methods/extend-infrastructure.html 59.8 kB +260 B (+0.44%)
website/build/docs/api/plugin-methods/i18n-lifecycles.html 58.6 kB +209 B (+0.36%)
website/build/docs/api/plugin-methods/lifecycle-apis.html 163 kB +833 B (+0.51%)
website/build/docs/api/plugin-methods/static-methods.html 45.7 kB +105 B (+0.23%)
website/build/docs/api/plugins/@docusaurus/plugin-client-redirects.html 61.1 kB +365 B (+0.6%)
website/build/docs/api/plugins/@docusaurus/plugin-content-blog.html 190 kB +1.1 kB (+0.58%)
website/build/docs/api/plugins/@docusaurus/plugin-content-docs.html 196 kB +838 B (+0.43%)
website/build/docs/api/plugins/@docusaurus/plugin-content-pages.html 76.7 kB +474 B (+0.62%)
website/build/docs/api/plugins/@docusaurus/plugin-css-cascade-layers.html 48.4 kB +313 B (+0.65%)
website/build/docs/api/plugins/@docusaurus/plugin-debug.html 49.1 kB +365 B (+0.75%)
website/build/docs/api/plugins/@docusaurus/plugin-google-gtag.html 50.1 kB +313 B (+0.63%)
website/build/docs/api/plugins/@docusaurus/plugin-google-tag-manager.html 48.9 kB +313 B (+0.64%)
website/build/docs/api/plugins/@docusaurus/plugin-ideal-image.html 58.8 kB +420 B (+0.72%)
website/build/docs/api/plugins/@docusaurus/plugin-pwa.html 119 kB +469 B (+0.39%)
website/build/docs/api/plugins/@docusaurus/plugin-rsdoctor.html 41.4 kB +261 B (+0.63%)
website/build/docs/api/plugins/@docusaurus/plugin-sitemap.html 67.1 kB +365 B (+0.55%)
website/build/docs/api/plugins/@docusaurus/plugin-svgr.html 46.6 kB +313 B (+0.68%)
website/build/docs/api/plugins/@docusaurus/plugin-vercel-analytics.html 41.8 kB +261 B (+0.63%)
website/build/docs/api/themes/@docusaurus/theme-classic.html 44.7 kB +313 B (+0.71%)
website/build/docs/api/themes/@docusaurus/theme-live-codeblock.html 37.6 kB +261 B (+0.7%)
website/build/docs/api/themes/@docusaurus/theme-mermaid.html 36.3 kB +261 B (+0.72%)
website/build/docs/api/themes/@docusaurus/theme-search-algolia.html 34.1 kB +208 B (+0.61%)
website/build/docs/api/themes/configuration.html 259 kB +1.82 kB (+0.71%)
website/build/docs/blog.html 206 kB +1.67 kB (+0.82%)
website/build/docs/browser-support.html 49.1 kB +266 B (+0.54%)
website/build/docs/cli.html 69.9 kB +884 B (+1.28%)
website/build/docs/configuration.html 94.4 kB +988 B (+1.06%)
website/build/docs/create-doc.html 62.9 kB +469 B (+0.75%)
website/build/docs/creating-pages.html 58.3 kB +157 B (+0.27%)
website/build/docs/deployment.html 68.3 kB +728 B (+1.08%)
website/build/docs/deployment/github-pages.html 121 kB +468 B (+0.39%)
website/build/docs/deployment/netlify.html 39.9 kB +156 B (+0.39%)
website/build/docs/docs-introduction.html 51.8 kB +261 B (+0.51%)
website/build/docs/docs-multi-instance.html 75.7 kB +781 B (+1.04%)
website/build/docs/docusaurus-core.html 230 kB +1.88 kB (+0.83%)
website/build/docs/i18n/crowdin.html 150 kB +1.87 kB (+1.27%)
website/build/docs/i18n/git.html 81.9 kB +1.2 kB (+1.49%)
website/build/docs/i18n/introduction.html 50.5 kB +156 B (+0.31%)
website/build/docs/i18n/tutorial.html 172 kB +1.82 kB (+1.07%)
website/build/docs/installation.html 72.3 kB +1.56 kB (+2.21%)
website/build/docs/markdown-features.html 86.5 kB +366 B (+0.43%)
website/build/docs/markdown-features/admonitions.html 119 kB +677 B (+0.57%)
website/build/docs/markdown-features/assets.html 89.1 kB +677 B (+0.77%)
website/build/docs/markdown-features/code-blocks.html 224 kB +3.03 kB (+1.37%)
website/build/docs/markdown-features/diagrams.html 62.5 kB +572 B (+0.92%)
website/build/docs/markdown-features/head-metadata.html 52.3 kB +157 B (+0.3%)
website/build/docs/markdown-features/links.html 42 kB +110 B (+0.26%)
website/build/docs/markdown-features/math-equations.html 93.6 kB +625 B (+0.67%)
website/build/docs/markdown-features/plugins.html 97.6 kB +573 B (+0.59%)
website/build/docs/markdown-features/react.html 133 kB +780 B (+0.59%)
website/build/docs/markdown-features/tabs.html 143 kB +625 B (+0.44%)
website/build/docs/markdown-features/toc.html 88.9 kB +573 B (+0.65%)
website/build/docs/migration.html 40.7 kB +521 B (+1.3%)
website/build/docs/migration/v2.html 40.4 kB +105 B (+0.26%)
website/build/docs/migration/v2/automated.html 41.2 kB +313 B (+0.77%)
website/build/docs/migration/v2/manual.html 194 kB +1.72 kB (+0.89%)
website/build/docs/migration/v2/translated-sites.html 52.1 kB +105 B (+0.2%)
website/build/docs/migration/v2/versioned-sites.html 61.5 kB +573 B (+0.94%)
website/build/docs/migration/v3.html 196 kB +2.34 kB (+1.21%)
website/build/docs/search.html 126 kB +1.04 kB (+0.83%)
website/build/docs/seo.html 90.2 kB +364 B (+0.4%)
website/build/docs/sidebar.html 143 kB +624 B (+0.44%)
website/build/docs/sidebar/autogenerated.html 149 kB +937 B (+0.63%)
website/build/docs/sidebar/items.html 178 kB +1.35 kB (+0.76%)
website/build/docs/sidebar/multiple-sidebars.html 63.8 kB +417 B (+0.66%)
website/build/docs/static-assets.html 53.4 kB +365 B (+0.69%)
website/build/docs/styling-layout.html 143 kB +1.09 kB (+0.77%)
website/build/docs/swizzling.html 115 kB +1.77 kB (+1.57%)
website/build/docs/typescript-support.html 69.1 kB +884 B (+1.3%)
website/build/docs/using-plugins.html 108 kB +1.09 kB (+1.02%)
website/build/docs/versioning.html 94.5 kB +884 B (+0.94%)
ℹ️ View Unchanged
Filename Size Change
website/.docusaurus/codeTranslations.json 2 B 0 B
website/.docusaurus/docusaurus.config.mjs 29 kB 0 B
website/.docusaurus/globalData.json 39.1 kB 0 B
website/.docusaurus/i18n.json 1.36 kB 0 B
website/.docusaurus/registry.js 180 kB +18 B (+0.01%)
website/.docusaurus/routes.js 89.8 kB +12 B (+0.01%)
website/.docusaurus/routesChunkNames.json 94 kB +6 B (+0.01%)
website/.docusaurus/site-metadata.json 2.44 kB 0 B
website/build/assets/css/styles.********.css 139 kB 0 B
website/build/assets/js/main.********.js 763 kB +24 B (0%)
website/build/assets/js/runtime~main.********.js 40.2 kB +1 B (0%)
website/build/blog.html 80.3 kB 0 B
website/build/blog/2018/12/14/Happy-First-Birthday-Slash.html 30.9 kB +1 B (0%)
website/build/blog/2019/12/30/docusaurus-2019-recap.html 42.1 kB +1 B (0%)
website/build/blog/2020/01/07/tribute-to-endi.html 34.5 kB +1 B (0%)
website/build/blog/2021/01/19/docusaurus-2020-recap.html 53.7 kB +1 B (0%)
website/build/blog/2021/03/09/releasing-docusaurus-i18n.html 49.6 kB +1 B (0%)
website/build/blog/2021/05/12/announcing-docusaurus-two-beta.html 50.3 kB +1 B (0%)
website/build/blog/2022/01/24/docusaurus-2021-recap.html 45.5 kB +1 B (0%)
website/build/blog/archive.html 25.2 kB 0 B
website/build/blog/authors.html 52.7 kB 0 B
website/build/blog/authors/j-marcey.html 73.1 kB 0 B
website/build/blog/authors/josh-cena.html 49.1 kB 0 B
website/build/blog/authors/lex-111.html 58.1 kB 0 B
website/build/blog/authors/slorber.html 84 kB 0 B
website/build/blog/authors/slorber/page/2.html 83.2 kB 0 B
website/build/blog/authors/slorber/page/3.html 86.8 kB 0 B
website/build/blog/authors/slorber/page/4.html 99.6 kB 0 B
website/build/blog/authors/slorber/page/5.html 55.6 kB 0 B
website/build/blog/authors/yangshun.html 69 kB 0 B
website/build/blog/authors/zpao.html 49.5 kB 0 B
website/build/blog/page/2.html 79.5 kB 0 B
website/build/blog/page/3.html 83.9 kB 0 B
website/build/blog/page/4.html 88.4 kB 0 B
website/build/blog/page/5.html 75.5 kB 0 B
website/build/blog/page/6.html 42.6 kB 0 B
website/build/blog/tags.html 29.1 kB 0 B
website/build/docs/advanced.html 32.1 kB 0 B
website/build/docs/advanced/architecture.html 30.7 kB +4 B (+0.01%)
website/build/docs/api/misc/docusaurus-init/index.html 361 B 0 B
website/build/docs/api/plugins.html 33.1 kB 0 B
website/build/docs/api/themes.html 30.6 kB +1 B (0%)
website/build/docs/category/getting-started.html 28.9 kB 0 B
website/build/docs/category/guides.html 39.5 kB 0 B
website/build/docs/category/miscellaneous.html 28.7 kB 0 B
website/build/docs/deployment/vercel.html 33.8 kB 0 B
website/build/docs/guides/whats-next.html 33.8 kB 0 B
website/build/docs/introduction/index.html 280 B 0 B
website/build/docs/playground.html 32.4 kB 0 B
website/build/docs/resources/index.html 325 B 0 B
website/build/docs/support/index.html 319 B 0 B
website/build/docs/team/index.html 310 B 0 B
website/build/index.html 37.5 kB 0 B

compressed-size-action::DOCUSAURUS_INFRA_SLOWER

@slorber
slorber force-pushed the feat/browser-only-react-browser-api branch from d1b39af to 0606b49 Compare September 25, 2026 14:21
@slorber
slorber changed the base branch from main to claude/useisbrowser-reimplementation-6bcd0e September 25, 2026 14:21
@slorber
slorber added this pull request to stack #12499 September 25, 2026 14:21
@slorber slorber added the Argos Add this label to run UI visual regression tests. See argos.yml GH action. label Sep 25, 2026
@argos-ci

argos-ci Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Argos notifications ↗︎

Build Status Details Updated (UTC)
screenshots (Inspect) 👍 Approved by Sébastien Lorber 2 changed Sep 25, 2026, 4:36 PM
text-snapshots (Inspect) 👍 Approved by Sébastien Lorber 106 changed Sep 25, 2026, 4:37 PM

Base automatically changed from claude/useisbrowser-reimplementation-6bcd0e to main September 25, 2026 14:37
@slorber
slorber force-pushed the feat/browser-only-react-browser-api branch from 0606b49 to 4135a39 Compare September 25, 2026 14:37
slorber and others added 5 commits September 25, 2026 18:32
…assisted)

Use `use(browser())` inside a `<Suspense>` boundary instead of the
`useIsBrowser()` context: React now skips the children during SSR and
renders them on the client after hydration.

The `<BrowserOnly>` fallback is now also displayed while children
suspend, instead of propagating to the parent Suspense boundary.

Supersedes #12443

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nse-tests (AI-assisted)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…om text snapshots (AI-assisted)

Argos text snapshots are built with --dev, and React dev SSR adds
data-msg/data-cstck (component stack with line numbers) to <BrowserOnly>
client-rendered Suspense boundaries. Production only emits data-dgst="".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@slorber
slorber force-pushed the feat/browser-only-react-browser-api branch from 0f69624 to 9e67cf6 Compare September 25, 2026 16:33
@slorber
slorber merged commit 6486a65 into main Sep 25, 2026
41 of 42 checks passed
@slorber
slorber deleted the feat/browser-only-react-browser-api branch September 25, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Argos Add this label to run UI visual regression tests. See argos.yml GH action. CLA Signed Signed Facebook CLA pr: new feature This PR adds a new API or behavior.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant