Introduction

One is a React framework that aims to make full stack development as simple as possible - whether you're making a website, an app, or sharing code between the two.

One lets you target both React Native and web with a single codebase, replacing both Metro and a separate web framework with a single framework, with shared file-system routing.

Vite is great for React Native with broad file-type support, modern syntax, ESM, powerful tree shaking and code-splitting, faster compilation, and best-in-class docs, types, plugins, and community.

Highlights

  • Target native and web at once with typed file system routes.
  • Loaders ala Remix that tree-shake away on the client.
  • Routing modes on a per-page basis (SSG, SSR, SPA, and API).
  • Preloads all JS for initial load and when hovering links, without need for a route map.
  • Includes a production server out of the box.

Use Cases

One works well as:

  • A uniquely good way to ship cross-platform apps with shared code.
  • An light, fast and opinionated framework for web-only or native-only.

Keep in mind, One is in early development and needs time to stabilize.

For a few more answers to common questions, see our FAQ.

Our Full-Stack Philosophy

One will include Zero as the default, but ejectable, solution to data. Why?

We loved Rails. It proved vertically integrated stacks can make you way more effective. But with rich client-side apps, and a lot more money in our industry, we don't think all-in-one makes sense for a framework.

One doesn't aim to provide everything, but we see a unique opportunity with data:

  • A great client-side data library is, in our opinion, the biggest win in productivity you can get from a third party dependency.

  • A framework that understands your data and schema has huge upsides - not just directly, or in shared understanding, but in tooling and beyond. We're excited to show you some of what we're working on here.

And of course if you hate it, you can eject with a single boolean.

Acknowledgements

One started as an experiment in porting Expo Router to our vxrn library. We since changed much of the internals and added render modes and a variety of features. We owe the Expo team a huge thanks for their pioneering efforts.

One was built thanks to some amazing open source technologies and contributors:

And a special thanks to the following individuals:

  • Matias Capeletto for inviting us to speak at ViteConf, giving the initial spark.
  • Fatih Aygün for freely helping at length, getting us past many hurdles.
  • Hiroshi Ogawa for his expert consulting for which One wouldn't exist without.
  • Dan Maier, for graciously gifting us the one npm package.

Edit this page on GitHub.