# Using Bare on its own



Most of these docs assume you're building on [Pear](/), the peer-to-peer platform. But [Bare](/bare/explanation/bare-runtime)—the runtime underneath Pear—is a general-purpose JavaScript runtime in its own right, and you can adopt it on its own, with no peer-to-peer or Pear machinery at all. This page is the entry point for that runtime-only path.

<Callout type="info">
  **Pear is the platform on top.** Install the `pear` CLI when you want peer-to-peer app distribution, over-the-air updates, and one command to stage and release—the core you write here moves across unchanged. Start on the [Pear tab](/), or read [How the stack fits together](/p2p/explanation/how-the-stack-fits-together).
</Callout>

## When to reach for Bare alone [#when-to-reach-for-bare-alone]

Use standalone Bare when you want:

* **A runtime to embed in a native app.** Run JavaScript logic inside an iOS, Android, or React Native app on a background thread—the "run JavaScript everywhere" case—via [Bare Kit](/bare/reference/bare/bare-kit) worklets.
* **A modular Node.js alternative.** Bare is mobile-first and ships almost no standard library; you opt into only the [`bare-*` modules](/bare/reference/bare/modules) you actually use, keeping bundles small.
* **A single standalone executable.** Compile a CLI, service, or daemon into one binary with no Node.js, Bare, or Pear install required on the user's machine.

If instead you're building a peer-to-peer app—storage, replication, swarms, over-the-air updates—start with Pear rather than Bare directly: [Getting started](/p2p/getting-started) and [How the stack fits together](/p2p/explanation/how-the-stack-fits-together) show how Bare fits underneath it.

## The runtime-only path [#the-runtime-only-path]

**Understand it**

* [Inside Bare](/bare/explanation/bare-runtime)—what the runtime is, its lifecycle, and why its standard library is opt-in.
* [One core, many platforms](/bare/explanation/bare-on-native)—embedding a Bare core in native apps via worklets and a typed RPC seam.

**Look it up**

* [Bare runtime API](/bare/reference/bare/runtime)—the `Bare` global: process properties, lifecycle, addons, threads.
* [Bare CLI](/bare/reference/bare/cli)—run a script or start a REPL with the `bare` command.
* [Bare Kit](/bare/reference/bare/bare-kit)—the Worklet and IPC API for iOS, Android, and React Native.
* [Bare modules](/bare/reference/bare/modules)—the `bare-*` standard library.

**Do it**

* [Embed Bare in a React Native app](/bare/how-to/run-on-native/embed-bare-in-react-native)
* [Type a native RPC bridge](/bare/how-to/run-on-native/type-a-native-rpc-bridge)
* [Bundle a Bare app](/bare/how-to/run-on-native/bundle-a-bare-app)

## Where Bare and Pear meet [#where-bare-and-pear-meet]

Even used on its own, Bare shares an ecosystem with Pear. The peer-to-peer [building blocks](/p2p/reference/building-blocks/hypercore) are ordinary JavaScript modules that run on Bare, and tools like [`compact-encoding`](/p2p/reference/helpers/compact-encoding) and `hyperschema` are used on both sides. So if a standalone Bare app later grows peer-to-peer features, the same core moves onto Pear unchanged—see [How the stack fits together](/p2p/explanation/how-the-stack-fits-together).
