# About Pear



The pages here are for understanding, not doing. They answer "why" rather than "how": why does Pear use append-only logs, what does "peer-to-peer" mean in practice, what's the difference between Bare and Node, and why is there no central server.

If you want to build something, head to **[How To](/pear/how-to)**. If you need to look up a specific API, that's **[Reference](/pear/reference)**.

<Callout type="info">
  **Bare is the runtime underneath.** A small, zero-core JavaScript runtime with its own docs: the module system, native addons, embedding in native and mobile apps, and compiling to a standalone binary all live on the [Bare tab](/bare). [How the stack fits together](/p2p/explanation/how-the-stack-fits-together) maps the layers.
</Callout>

<Callout type="info">
  **P2P is the peer-to-peer building blocks.** Hypercore, Hyperswarm, Autobase, Hyperbee, Hyperdrive, HyperDHT, and Corestore—independent JavaScript modules for storage, discovery, and replication, with their own docs on the [P2P tab](/p2p). [How the stack fits together](/p2p/explanation/how-the-stack-fits-together) maps the layers.
</Callout>

## In this section [#in-this-section]

Pages are grouped by topic and ordered roughly from foundational concepts to app-specific ones.

### Platform foundations [#platform-foundations]

* [How the stack fits together](/p2p/explanation/how-the-stack-fits-together)—how Pear and Bare layer together, from the native C foundations up to the apps you run.
* [Runtime and languages](/pear/explanation/runtime-and-languages)—JavaScript on Bare, native addons for other languages, and the Pear-end pattern for cross-platform apps.
* [Using Bare on its own](/bare/explanation/use-bare-standalone)—the entry point for adopting Bare as a standalone runtime, without Pear's peer-to-peer platform.
* [Inside Bare](/bare/explanation/bare-runtime)—what the Bare runtime adds, its lifecycle, and why its standard library is opt-in.
* [Migrating from Node.js](/bare/explanation/migrating-from-nodejs)—what changes in your code and mental model when porting an app to Bare.
* [Peer-to-peer, demystified](/p2p/explanation/peer-to-peer-demystified)—hole punching, public-key identity, and the roles of [HyperDHT](/p2p/reference/building-blocks/hyperdht) and [Hyperswarm](/p2p/reference/building-blocks/hyperswarm).
* [One core, many platforms](/bare/explanation/bare-on-native)—running the peer-to-peer core in a Bare worklet behind a typed RPC seam.
* [Dependencies](/pear/explanation/dependencies-and-network)—why NPM is the install path and the runtime relationship to Node.

### Storing & replicating data [#storing--replicating-data]

* [From append-only logs to files](/p2p/explanation/from-logs-to-files)—Hypercore, Hyperblobs, and [Hyperdrive](/p2p/reference/building-blocks/hyperdrive)—which storage layer to use and why.
* [Storage and distribution](/pear/explanation/storage-and-distribution)—where Pear keeps your data, what the swarm replicates, and how new releases reach users.
* [Availability and distribution](/pear/explanation/availability-and-blind-peering)—seeding an application bundle with `pear seed`, its limits, and finding the keys behind it.

### Building & shipping apps [#building--shipping-apps]

* [Pear desktop application architecture](/pear/explanation/pear-desktop-architecture)—how a typical Pear Electron app splits updates, storage, and Bare workers (with a link to a full sample repo).
* [Pear mobile application architecture](/pear/explanation/pear-mobile-architecture)—how a typical Pear + React Native app splits the view runtime from a Bare worklet backend.
* [Workers](/pear/explanation/workers)—why peer-to-peer logic lives in a Bare worker behind one IPC stream, and where the host/worker boundary should sit.
* [Release pipeline](/pear/explanation/deployment-releasing-apps-p2p)—stage, provision, multisig, release lines, and deployment-directory diagrams (agnostic; sample implementation on GitHub).

## Coming from the old FAQ? [#coming-from-the-old-faq]

The single FAQ page was retired. Each question now lives in the section it actually belongs to:

| Old FAQ question                                                            | New home                                                                                                                        |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| *How do I get a list of installed applications?*                            | [Manage installed applications](/pear/how-to/manage-installed-applications)                                                     |
| *How do I uninstall a Pear application?*                                    | [Manage installed applications](/pear/how-to/manage-installed-applications)                                                     |
| *Where is the Pear application stored?*                                     | [Storage and distribution](/pear/explanation/storage-and-distribution)                                                          |
| *Can Pear be used with X language?*                                         | [Runtime and languages](/pear/explanation/runtime-and-languages)                                                                |
| *How do I write an application once that runs on desktop, mobile, etc.?*    | [Runtime and languages](/pear/explanation/runtime-and-languages) · [One core, many platforms](/bare/explanation/bare-on-native) |
| *Is Bare a fork of Node? Can I use npm modules?*                            | [Inside Bare](/bare/explanation/bare-runtime)                                                                                   |
| *Can Bare run on iOS or Android?*                                           | [One core, many platforms](/bare/explanation/bare-on-native)                                                                    |
| *How is my application distributed? Do I have to keep `pear seed` running?* | [Storage and distribution](/pear/explanation/storage-and-distribution)                                                          |
| *Why is NPM used for dependencies?*                                         | [Dependencies](/pear/explanation/dependencies-and-network)                                                                      |
| *How do I distribute a binary version of my application?*                   | [Distribute as a binary](/pear/how-to/operate-an-app/build-and-package/distribute-as-binary)                                    |
| *Can peers know my IP address when using `hyperswarm`?*                     | [Peer-to-peer, demystified](/p2p/explanation/peer-to-peer-demystified#what-peers-learn-from-your-ip)                            |
