diff --git a/website/blog/2025-06-09-moving-towards-a-stable-javascript-api.md b/website/blog/2025-06-09-moving-towards-a-stable-javascript-api.md
new file mode 100644
index 00000000000..e5fac933860
--- /dev/null
+++ b/website/blog/2025-06-09-moving-towards-a-stable-javascript-api.md
@@ -0,0 +1,320 @@
+---
+title: 'Moving Towards a Stable JavaScript API (New Changes in 0.80)'
+authors: [huntie, iwoplaza, jpiasecki, coado]
+tags: [announcement]
+date: 2025-06-09
+---
+
+In React Native 0.80, we're introducing two significant changes to React Native's JavaScript API — the deprecation of deep imports, and our new Strict TypeScript API. These are part of an ongoing effort to accurately define our API and offer dependable type safety to users and frameworks.
+
+**Quick takeaways:**
+
+- **Deep imports deprecation**: From 0.80, we're introducing deprecation warnings for deep imports from the `react-native` package.
+- **Opt-in Strict TypeScript API**: We are moving to from-source TypeScript types and a new public API baseline under TypeScript. These enable stronger and more futureproof type accuracy, and will be a one-time breaking change. [Opt in](/blog/2025/06/09/moving-towards-a-stable-javascript-api#strict-typescript-api) via `compilerOptions` in your project's `tsconfig.json`.
+- We'll work with the community over time to ensure that these changes work for everyone, before enabling the Strict TypeScript API by default in a future React Native release.
+
+
+
+## What's changing and why
+
+We are moving to improve and stabilise React Native's public JavaScript API — i.e. what you get when you import `'react-native'`.
+
+Historically, we've approximated this. React Native is authored in [Flow](https://flow.org/), but the community has long since moved to TypeScript in open source, which is how the public API is consumed and validated for compatibility. Our types have been (lovingly) [community-contributed](https://www.npmjs.com/package/@types/react-native), and since merged and aligned in our codebase. However, these have relied on manual maintenance and no automated tooling, introducing correctness gaps.
+
+Additionally, our public JS API has been poorly defined in terms of module boundaries — e.g. internal `'react-native/Libraries/'` deep imports were reachable by app code, but could frequently change as we updated these internals.
+
+In 0.80, we're addressing these issues by deprecating deep imports, and introducing a user opt-in to a new, generated API baseline in TypeScript. We're calling this our **Strict TypeScript API**. Ultimately, this is the groundwork to offer a stable React Native API in future.
+
+## Deprecating deep imports from `react-native`
+
+The main change we're making to our API today is deprecating the use of deep imports ([RFC](https://github.com/react-native-community/discussions-and-proposals/pull/894)), with warnings in ESLint and the JS console. Deep imports of values and types should be updated to `react-native`'s root import.
+
+```js title=""
+// Before - import from subpath
+import {Alert} from 'react-native/Libraries/Alert/Alert';
+
+// After - import from `react-native`
+import {Alert} from 'react-native';
+```
+
+This change reduces the total surface area of our JavaScript API into a fixed set of exports which we can control and make stable in a future release. We're targeting a removal of these import paths in 0.82.
+
+:::info API feedback
+
+Some APIs are not exported at root, and will become unavailable without deep imports. We have an **[open feedback thread](https://github.com/react-native-community/discussions-and-proposals/discussions/893)** and will be working with the community to finalize the exports in our public API. Please share your feedback!
+
+:::
+
+**Opting out**
+
+Please bear in mind that we aim to remove deep imports from React Native's API in a future release, and these should instead be updated to the root import.
+
+**Opting out of warnings**
+
+#### ESLint
+
+Disable the `no-deep-imports` rule using `overrides`.
+
+
+```js title=".eslintrc.js"
+ overrides: [
+ {
+ files: ['*.js', '*.jsx', '*.ts', '*.tsx'],
+ rules: {
+ '@react-native/no-deep-imports': 0,
+ },
+ },
+ ]
+```
+
+#### Console warnings
+
+Pass the `disableDeepImportWarnings` option to `@react-native/babel-preset`.
+
+
+```js title="babel.config.js"
+module.exports = {
+ presets: [
+ ['module:@react-native/babel-preset', {disableDeepImportWarnings: true}]
+ ],
+};
+```
+
+Restart your app with `--reset-cache` to clear the Metro cache.
+
+```sh title=""
+npx @react-native-community/cli start --reset-cache
+```
+
+**Opting out of warnings (Expo)**
+
+#### ESLint
+
+Disable the `no-deep-imports` rule using `overrides`.
+
+
+```js title=".eslintrc.js"
+overrides: [
+ {
+ files: ['*.js', '*.jsx', '*.ts', '*.tsx'],
+ rules: {
+ '@react-native/no-deep-imports': 0,
+ },
+ },
+];
+```
+
+#### Console warnings
+
+Pass the `disableDeepImportWarnings` option to `babel-preset-expo`.
+
+
+```js title="babel.config.js"
+module.exports = function (api) {
+ api.cache(true);
+ return {
+ presets: [['babel-preset-expo', {disableDeepImportWarnings: true}]],
+ };
+};
+```
+
+Restart your app with `--clear` to clear the Metro cache.
+
+```sh name=""
+npx expo start --clear
+```
+
+
+**I'm using subpath imports today. What should I do?**
+
+
+Please migrate to the root `'react-native'` import path.
+
+- Subpath imports (e.g. `'react-native/Libraries/Alert/Alert'`) are becoming private APIs. Without preventing access to implementation files inside React Native, we can’t offer a stable JavaScript API.
+- We want our deprecation warnings to motivate community feedback, which can be raised via our [centralized discussion thread](https://github.com/react-native-community/discussions-and-proposals/discussions/893), if you believe we are not exposing code paths that are crucial for your app. Where justified, we may promote APIs to the index export.
+
+
+**I'm a library maintainer. How does this change impact me?**
+
+
+Both apps and libraries can opt in at their own pace, since `tsconfig.json` will only affect the immediate codebase.
+
+- Typically, `node_modules` is excluded from validation by the TypeScript server in a React Native project. Therefore, your package's exported type definitions are the source of truth.
+
+**💡 We want feedback!** As with changed subpath imports, if you encounter any integration issues with the Strict API, please let us know [on GitHub](https://github.com/react-native-community/discussions-and-proposals/discussions/893).
+
+
+**Does this guarantee a final API for React Native yet?**
+
+
+Sadly, not yet. In 0.80, we've made a tooling investment so that React Native's existing JS API baseline can be accurately consumed via TypeScript — enabling future stable changes. We're formalizing the existing API you know and love.
+
+In the future, we will take action to finalise the APIs we currently offer in core — across each language surface. API changes will be communicated via RFCs/announcements, and typically a deprecation cycle.
+
+
+**Why isn't React Native written in TypeScript?**
+
+
+React Native is core infrastructure at Meta. We test every merged change across our Family of Apps, before they hit general open source availability.
+
+At this scale and sensitivity, correctness matters. The bottom line is that Flow offers us greater performance and greater strictness than TypeScript, including specific [multi-platform support for React Native](https://flow.org/en/docs/react/multiplatform/).
+
+
+Watch the talk! +We shared a deep dive into our motivations and the work behind the Strict TypeScript API at App.js 2025. +**[View on YouTube](https://www.youtube.com/live/UTaJlqhTk2g?si=SDRmj80kss7hXuGG&t=6520)** +
+
+