# Preact changelog > A 3kB alternative to React with the same modern API. - Vendor: Preact - Category: Frameworks & Libraries - Official site: https://preactjs.com - Tracked by: What's New (https://whatsnew.fyi/product/preact) - Harvested from: GitHub (preactjs/preact) - Entries below: 11 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 11.0.0-rc.0 - Date: 2026-08-10 - Version: 11.0.0-rc.0 - Original notes: https://github.com/preactjs/preact/releases/tag/11.0.0-rc.0 - Permalink: https://whatsnew.fyi/product/preact/releases/11.0.0-rc.0 - Labels: Pre-release - **added** — Implement use hook in compat - **added** — Implement getServerSnapshot for useSyncExternalStore - **added** — Support createPortal in core - **added** — Add useEffectEvent hook to compat - **changed** — Leverage moveBefore rather than insertBefore when available - **fixed** — Avoid mutating user-provided style objects when appending px - **fixed** — Fix reusing template element content - **fixed** — Fix dirty child strict equality bailout - **fixed** — Add the constructor in when cloning VNodes - **fixed** — Defer passive effect cleanup on unmount - **changed** — Compute minimal child moves with a longest increasing subsequence - **changed** — Batch updates in flushSync - **changed** — Avoid traversing retained subtrees - **changed** — Reduce core bundle size in v11 - **changed** — Reduce bundle size before release candidates go live - **changed** — Hoist _children into a local in constructNewChildrenArray - **changed** — Reduce Preact core compressed size - **changed** — Bump reported React version to 19.0.0 - **fixed** — Avoid Trusted Types violation when dangerouslySetInnerHTML is used - **changed** — Introduce a modern build setup ##### Features - implement `use` in compat (#5186, thanks @JoviDeCroock) - Implement getServerSnapshot for useSyncExternalStore (#4979, thanks @ssssota) - Support createPortal in core (#5168, thanks @JoviDeCroock) - Add useEffectEvent hook to compat (#5141, thanks @Mesoptier) ##### Correctness - Leverage `moveBefore` rather than `insertBefore` when available (#5161, thanks @JoviDeCroock) - Avoid mutating user-provided style objects when appending px (#5117, thanks @JSap0914) - Fix reusing template element content (#5192, thanks @JoviDeCroock) - Fix dirty child strict equality bailout (#5193, thanks @JoviDeCroock) - Add the constructor in when cloning VNodes (#5195, thanks @JoviDeCroock) - Defer passive effect cleanup on unmount (#5196, thanks @JoviDeCroock) ##### Performance - Compute minimal child moves with a longest increasing subsequence (#5174, thanks @JoviDeCroock) - Batch updates in flushSync (#5175, thanks @JoviDeCroock) - Avoid traversing retained subtrees (#5183, thanks @JoviDeCroock) - Reduce core bundle size in v11 (#5167, thanks @JoviDeCroock) - Reduce bundle size before release candidates go live (#5197, thanks @JoviDeCroock) - Hoist `_children` into a local in `constructNewChildrenArray` (#5198, thanks @JoviDeCroock) - Reduce Preact core compressed size (#5199, thanks @JoviDeCroock) ##### Maintenance - Bump reported React version to 19.0.0 (#5171, thanks @JoviDeCroock) - Remove debug re-throw (#5190, thanks @JoviDeCroock) - Commit pending hook state in `options._render` (#5187, thanks @JoviDeCroock) - Remove straggler forwarded (#5178, thanks @JoviDeCroock) - Derive document from parentDom instead of threading it (#5180, thanks @JoviDeCroock) - Remove redundant portal children guard (#5179, thanks @JoviDeCroock) - Restore `_bits` mangle for Preact ISO (#5200, thanks @JoviDeCroock) - Update contribution build commands (#5166, thanks @Minsecrus) - Remove unused dependencies (#5160, thanks @JoviDeCroock) - Avoid Trusted Types violation when dangerouslySetInnerHTML is re… (#4935, thanks @lukewarlow) - Introduce a modern build setup (#5159, thanks @JoviDeCroock) ### 10.29.8 - Date: 2026-08-01 - Version: 10.29.8 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.8 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.8 - **changed** — Batch updates in flushSync - **changed** — Avoid traversing retained subtrees ##### Performance - Batch updates in flushSync (#5173, thanks @JoviDeCroock) - Avoid traversing retained subtrees (#5182, thanks @JoviDeCroock) ### 11.0.0-beta.2 - Date: 2026-07-15 - Version: 11.0.0-beta.2 - Original notes: https://github.com/preactjs/preact/releases/tag/11.0.0-beta.2 - Permalink: https://whatsnew.fyi/product/preact/releases/11.0.0-beta.2 - Labels: Pre-release - **added** — Implement streamed hydration - **changed** — Accept Signalish for input type - **removed** — Remove erroneous 'type' attribute from select element types - **fixed** — Fix compat Suspense hydration children recovery - **fixed** — Check nodeType instead of the global document - **fixed** — Fix Suspense undefined prop revalidation - **fixed** — Fix error recovery for partially rendered subtrees - **fixed** — Fix useId stability across async Suspense - **fixed** — Flush subtree effects - **fixed** — Fix memory leak hotspots - **fixed** — Fix hydrate recovery with null excess DOM children - **fixed** — Fix buggy edge case - **fixed** — Preserve falsy key and ref values in cloneElement - **changed** — Use Symbols for the event clock keys - **changed** — Improve compat shallowDiffers performance - **changed** — Avoid redundant allocations and writes - **changed** — Use .push.apply for better performance ##### Forward porting - Frontport 10.29.4 (#5139, thanks @JoviDeCroock) - Frontport 10.29.3 (#5122, thanks @JoviDeCroock) - Forwardport v10.x fixes since 2026-03-25 (#5089, thanks @JoviDeCroock) - Forwardport from v10 (#5053, thanks @JoviDeCroock) ##### Features - Implement streamed hydration rfc (#5035, thanks @JoviDeCroock) ##### Types - Remove erroneous 'type' attribute from select element types (#5097, thanks @rschristian) - Accept Signalish for input type (#5095, thanks @JoviDeCroock) ##### Fixes - Fix compat Suspense hydration children recovery (#5146, thanks @JoviDeCroock) - Check `nodeType` instead of the global `document` (#5119, thanks @natemoo-re) - Fix Suspense undefined prop revalidation (#5133, thanks @JoviDeCroock) - Fix error recovery for partially rendered subtrees (#5120, thanks @JoviDeCroock) - Fix useId stability across async Suspense (#5108, thanks @JoviDeCroock) - Flush subtree effects (#5055, thanks @JoviDeCroock) - Fix memory leak hotspots (#5116, thanks @JoviDeCroock) - Fix hydrate recovery with null excess DOM children (#5112, thanks @JoviDeCroock) - Fix buggy edge case (#5092, thanks @JoviDeCroock) - Preserve falsy key and ref values in cloneElement (#5082, thanks @Olexandr88) ##### Performance - Use Symbols for the event clock keys (#5143, thanks @JoviDeCroock) - Performance: compat `shallowDiffers` (#4780, thanks @romgrk) - Avoid redundant allocations and writes (#5115, thanks @JoviDeCroock) - Use .push.apply (#5024, thanks @JoviDeCroock) ##### Maintenance - Bump pinned GitHub actions (#5110, thanks @JoviDeCroock) - Fix typo in vitest config (#5111, thanks @kumavis) - Use npm staged publishing (#5100, thanks @JoviDeCroock) - Harden trusted publish workflow (#5099, thanks @JoviDeCroock) - Add tier 3 sponsor logos (#5093, thanks @JoviDeCroock) - Add trusted publishing workflow for main (#5086, thanks @JoviDeCroock) - Add `chai` to dev dependencies to make pnpm install work (#5043, thanks @marvinhagemeister) ### 10.29.7 - Date: 2026-07-08 - Version: 10.29.7 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.7 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.7 ##### Maintenance - Make RTS optional peer dep (#5150, thanks @JoviDeCroock) ### 10.29.6 - Date: 2026-07-08 - Version: 10.29.6 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.6 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.6 - **fixed** — Reverted incompatible change with useSignalEffect We had to revert https://github.com/preactjs/preact/pull/5055 due to an incompatibility with `useSignalEffect` ### 10.29.5 - Date: 2026-07-07 - Version: 10.29.5 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.5 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.5 - **fixed** — Fixed Compat Suspense hydration children recovery ##### Fixes - Compat Suspense hydration children recovery (#5144, thanks @JoviDeCroock) ### 10.29.4 - Date: 2026-07-03 - Version: 10.29.4 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.4 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.4 - **fixed** — Fix hydration-suspense crashing due to sCU bail - **fixed** — Revert Fix useId stability across async Suspense ##### Fixes - Fix hydration-suspense crashing due to sCU bail (#5134, thanks @JoviDeCroock) - Revert "Fix useId stability across async Suspense (#5108)" (#5135, thanks @JoviDeCroock) ### 10.29.3 - Date: 2026-06-26 - Version: 10.29.3 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.3 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.3 - **fixed** — Fix error recovery for partially rendered subtrees - **fixed** — Fix useId stability across async Suspense - **fixed** — Flush subtree effects when rendering a pending node - **fixed** — Fix hydrate recovery with null excess DOM children - **changed** — Address and guard memory leak hotspots - **changed** — Avoid redundant allocations and writes - **changed** — Accept Signalish for input DOM-type ##### Fixes - Fix error recovery for partially rendered subtrees (#5120, thanks @JoviDeCroock) - Fix `useId` stability across async `Suspense` (#5108, thanks @JoviDeCroock) - Flush subtree effects when rendering a pending node (#5055, thanks @JoviDeCroock) - Fix hydrate recovery with null excess DOM children (#5112, thanks @JoviDeCroock) ##### Performance - Address and guard memory leak hotspots (#5116, thanks @JoviDeCroock) - Avoid redundant allocations and writes (#5115, thanks @JoviDeCroock) ##### Types - Accept `Signalish` for `input` DOM-type (#5096, thanks @JoviDeCroock) ##### Maintenance - Use npm staged publishing (#5101, thanks @JoviDeCroock) - Add tier 3 sponsor logos (#5098, thanks @JoviDeCroock) ### 10.29.2 - Date: 2026-05-17 - Version: 10.29.2 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.2 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.2 - **fixed** — Fix hydration when we have defaultValue or value on a textarea ##### Fixes - Fix hydration when we have defaultValue or value on a textarea (#5081, thanks @JoviDeCroock) ##### Maintenance - Add CODEOWNERS for GitHub configuration (v10.x) (#5088, thanks @JoviDeCroock) - Fix trusted publishing workflow (#5084, thanks @JoviDeCroock) - Trusted publishing (#5072, thanks @JoviDeCroock) ### 10.29.1 - Date: 2026-04-03 - Version: 10.29.1 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.1 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.1 - **fixed** — Create a unique event-clock for each Preact instance on a page - **fixed** — Fix incorrect DOM order with conditional ContextProvider and inner keys ##### Fixes - Create a unique event-clock for each Preact instance on a page. (#5068, thanks @JoviDeCroock) - Fix incorrect DOM order with conditional ContextProvider and inner keys (#5067, thanks @JoviDeCroock) ##### Maintenance - fix: Remove postinstall script for playwright setup (#5063, thanks @rschristian) - chore: speed up tests by using playwright instead of webdriverio (#5060, thanks @marvinhagemeister) - chore: migrate remaining .js -> .jsx files (#5059, thanks @marvinhagemeister) - chore: rename `.test.js` -> `.test.jsx` when JSX is used (#5058, thanks @marvinhagemeister) - Migrate from biome to oxfmt (#5033, thanks @JoviDeCroock) ### 10.29.0 - Date: 2026-03-10 - Version: 10.29.0 - Original notes: https://github.com/preactjs/preact/releases/tag/10.29.0 - Permalink: https://whatsnew.fyi/product/preact/releases/10.29.0 - **added** — Implement flushSync - **fixed** — Ensure we reset renderCount - **fixed** — Fix undefined prototype - **changed** — Golf down compat for performance improvements ##### Features - Implement flushSync (#5036, thanks @JoviDeCroock) ##### Fixes - Ensure we reset renderCount (#5017, thanks @JoviDeCroock) - undefined prototype (#5041, thanks @JoviDeCroock) ##### Performance - Golf down compat (#5025, thanks @JoviDeCroock)