Skip to content

[blog] Draft 0.87 release post - #5201

Merged
zeyap merged 27 commits into
mainfrom
zeyap/0.87-blogpost
Aug 11, 2026
Merged

[blog] Draft 0.87 release post#5201
zeyap merged 27 commits into
mainfrom
zeyap/0.87-blogpost

Conversation

@zeyap

@zeyap zeyap commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Draft release blog post for React Native 0.87.

Adds the draft release blog post for React Native 0.87, covering the
Strict TypeScript API default, Metro 0.87, Swift Package Manager
preview, and AGP 9 support.

The Strict TypeScript API section and its before/after screenshots are
from Alex Hunt's draft fragment (huntie/react-native-website@0.87-draft-blogpost-fragment).

Co-authored-by: Alex Hunt <alexeh@meta.com>
zeyap added 11 commits August 5, 2026 09:59
Wrap code symbols in backticks and fence the Obj-C import example as a
diff block. Unfenced, <React/RCTAppDelegate.h> is parsed as JSX by MDX
and fails the build.

Also converts the XCFramework and SwiftPM limitation run-on lines into
lists, and tags the SwiftPM snippet as sh.
Two entries pointed at slugs that no heading generates, so they were
no-ops. Also adds the missing Prebuilt iOS Core entry.
Normalizes the Metro section indentation into a proper paragraph plus
list, and drops stray blank lines and double spaces. yarn ci:lint now
passes clean.
authors was a plain scalar, so Docusaurus read the whole comma-separated
line as a single author key and failed the build. Make it a YAML list.
@huntie

huntie commented Aug 5, 2026

Copy link
Copy Markdown
Member

@zeyap #5111 landed ✅

@cipolleschi cipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall it is good. There are some changes needed for SwiftPM support. I left suggestions everywhere, so it should be a matter of integrate them.

Comment thread website/blog/2026-08-10-react-native-0.87.mdx Outdated
Comment thread website/blog/2026-08-10-react-native-0.87.mdx Outdated
Comment thread website/blog/2026-08-10-react-native-0.87.mdx Outdated
Comment thread website/blog/2026-08-10-react-native-0.87.mdx Outdated

Source builds are unaffected.

### Swift Package Manager support for iOS (Preview)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Swift Package Manager support for iOS (Preview)
### Experimental Swift Package Manager support for iOS


### Swift Package Manager support for iOS (Preview)

React Native 0.87 adds preview support for Swift Package Manager as an alternative to CocoaPods on iOS. It is opt-in and additive; CocoaPods remains the default and the supported path. The SwiftPM path consumes the same prebuilt XCFrameworks React Native already publishes. Setup needs only Xcode — no Ruby, no Bundler, no CocoaPods.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
React Native 0.87 adds preview support for Swift Package Manager as an alternative to CocoaPods on iOS. It is opt-in and additive; CocoaPods remains the default and the supported path. The SwiftPM path consumes the same prebuilt XCFrameworks React Native already publishes. Setup needs only Xcode — no Ruby, no Bundler, no CocoaPods.
React Native 0.87 adds experimental support for Swift Package Manager as an alternative to CocoaPods on iOS. It is opt-in and additive; CocoaPods remains the default and the supported path. The SwiftPM path consumes the same prebuilt XCFrameworks React Native already publishes.
This new setup only needs Xcode — no Ruby, no Bundler, no CocoaPods.


The command injects Swift package references into your existing `.xcodeproj` instead of replacing the project. Your signing, capabilities, and build phases stay untouched. `npx react-native spm deinit` reverses the change exactly.

You only run that command once. After the first setup, you do not run it again when your dependencies change. Install or remove a native package, then build. The project detects the change and re-runs autolinking for you. There is no `pod install` step to remember after every dependency change.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You only run that command once. After the first setup, you do not run it again when your dependencies change. Install or remove a native package, then build. The project detects the change and re-runs autolinking for you. There is no `pod install` step to remember after every dependency change.
::: important
You only run that command once. After the first setup, you do not run it again when your dependencies change. Install or remove a native package, then build. The project detects the change and re-runs autolinking for you. There is no `pod install` step to remember after every dependency change.
:::

Comment thread website/blog/2026-08-11-react-native-0.87.mdx
Comment thread website/blog/2026-08-10-react-native-0.87.mdx Outdated
zeyap and others added 11 commits August 10, 2026 08:59
Co-authored-by: Riccardo Cipolleschi <riccardo.cipolleschi@gmail.com>
Co-authored-by: Christian Falch <875252+chrfalch@users.noreply.github.com>
Co-authored-by: Riccardo Cipolleschi <riccardo.cipolleschi@gmail.com>
Co-authored-by: Christian Falch <875252+chrfalch@users.noreply.github.com>
Co-authored-by: Alex Hunt <hello@alexhunt.dev>
Co-authored-by: Riccardo Cipolleschi <riccardo.cipolleschi@gmail.com>
@zeyap
zeyap marked this pull request as ready for review August 10, 2026 13:25
Comment thread website/blog/2026-08-10-react-native-0.87.mdx Outdated
Comment on lines +130 to +137
### Prebuilt iOS Core: the Clang VFS overlay is gone

0.87 improves modularization of the prebuilt XCFrameworks. Headers now resolve through standard framework and header search path mechanics, and every namespace has exactly one physical home. Four XCFrameworks carry the header surface:

- `React.xcframework`
- `ReactNativeHeaders.xcframework` (new, headers only)
- `ReactNativeDependencies.xcframework`
- `ReactNativeDependenciesHeaders.xcframework` (new, headers only)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole section should be removed.


- [Strict TypeScript API by default](/blog/2026/08/10/react-native-0.87#strict-typescript-api-by-default)
- [Faster, leaner Metro](/blog/2026/08/10/react-native-0.87#faster-leaner-metro)
- [Prebuilt iOS Core: Improved modularization of React Native's XCFrameworks](/blog/2026/08/10/react-native-0.87#prebuilt-ios-core-the-clang-vfs-overlay-is-gone)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would completely remove this.

@zeyap
zeyap enabled auto-merge (squash) August 11, 2026 17:16
@zeyap
zeyap dismissed cipolleschi’s stale review August 11, 2026 17:16

addressed manually

@zeyap
zeyap merged commit 4320a54 into main Aug 11, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants