Preact

Frameworks & Libraries

A 3kB alternative to React with the same modern API.

Latest 10.29.8 · by PreactWebsitepreactjs/preact

Release activity

Release activity — 11 releases across 10 days since Mar 10, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Mar 10, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 20261 release on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 20261 release on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 20261 release on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 20262 releases on Jul 8, 20261 release on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 20261 release on Jun 26, 20261 release on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 20261 release on Aug 1, 2026No releases on Aug 8, 2026

11 releases since Mar 10, 2026, busiest day 2

Changelog

11.0.0-rc.0

Pre-release
Added 4
  • Implement use hook in compat
  • Implement getServerSnapshot for useSyncExternalStore
  • Support createPortal in core
  • Add useEffectEvent hook to compat
Changed 10
  • Leverage moveBefore rather than insertBefore when available
  • Compute minimal child moves with a longest increasing subsequence
  • Batch updates in flushSync
  • Avoid traversing retained subtrees
  • Reduce core bundle size in v11
  • Reduce bundle size before release candidates go live
Fixed 6
  • Avoid mutating user-provided style objects when appending px
  • Fix reusing template element content
  • Fix dirty child strict equality bailout
  • Add the constructor in when cloning VNodes
  • Defer passive effect cleanup on unmount
  • Avoid Trusted Types violation when dangerouslySetInnerHTML is used
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)
View originalPermalink
How 11.0.0-rc.0 went

10.29.8

Changed 2
  • Batch updates in flushSync
  • Avoid traversing retained subtrees
Performance
  • Batch updates in flushSync (#5173, thanks @JoviDeCroock)
  • Avoid traversing retained subtrees (#5182, thanks @JoviDeCroock)
View originalPermalink
How 10.29.8 went

11.0.0-beta.2

Pre-release
Added 1
  • Implement streamed hydration
Changed 5
  • Accept Signalish for input type
  • Use Symbols for the event clock keys
  • Improve compat shallowDiffers performance
  • Avoid redundant allocations and writes
  • Use .push.apply for better performance
Fixed 10
  • Fix compat Suspense hydration children recovery
  • Check nodeType instead of the global document
  • Fix Suspense undefined prop revalidation
  • Fix error recovery for partially rendered subtrees
  • Fix useId stability across async Suspense
  • Flush subtree effects
Removed 1
  • Remove erroneous 'type' attribute from select element types
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)
View originalPermalink
How 11.0.0-beta.2 went

10.29.7

Maintenance
  • Make RTS optional peer dep (#5150, thanks @JoviDeCroock)
View originalPermalink
How 10.29.7 went

10.29.5

Fixed 1
  • Fixed Compat Suspense hydration children recovery
Fixes
  • Compat Suspense hydration children recovery (#5144, thanks @JoviDeCroock)
View originalPermalink
How 10.29.5 went

10.29.4

Fixed 2
  • Fix hydration-suspense crashing due to sCU bail
  • 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)
View originalPermalink
How 10.29.4 went

10.29.3

Changed 3
  • Address and guard memory leak hotspots
  • Avoid redundant allocations and writes
  • Accept Signalish for input DOM-type
Fixed 4
  • Fix error recovery for partially rendered subtrees
  • Fix useId stability across async Suspense
  • Flush subtree effects when rendering a pending node
  • Fix hydrate recovery with null excess DOM children
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)
View originalPermalink
How 10.29.3 went

10.29.2

Fixed 1
  • 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)
View originalPermalink
How 10.29.2 went

10.29.1

Fixed 2
  • Create a unique event-clock for each Preact instance on a page
  • 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)
View originalPermalink
How 10.29.1 went

10.29.0

Added 1
  • Implement flushSync
Changed 1
  • Golf down compat for performance improvements
Fixed 2
  • Ensure we reset renderCount
  • Fix undefined prototype
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)
View originalPermalink
How 10.29.0 went
View all

Discussion