# Overview (/docs/concepts)



An Appbrew app is a config-driven React Native app. The native shell you ship to the stores is stable; the UI it renders (screens, navigation, blocks, theme, integration settings) is defined by a JSON config served from Appbrew's backend and fetched on launch. Your code plugs into this system: you write block components, register them under an id, and read data through hooks. The config decides where and how they appear. Structure lives in config; behavior lives in code. The rest of these docs assumes that split.

The pages in this section build that mental model.

<Cards>
  <Card title="Architecture" href="/docs/concepts/architecture">
    The runtime end to end: how a remote config becomes rendered screens.
  </Card>

  <Card title="Screens and blocks" href="/docs/concepts/screens-and-blocks">
    Screen ids, block anatomy, render order, and the props contract every block receives.
  </Card>

  <Card title="Config and theme" href="/docs/concepts/config-and-theme">
    The config entities, how styles and settings resolve, and drafts vs the live theme.
  </Card>

  <Card title="State and data" href="/docs/concepts/state-and-data">
    The app store and the hook families your code reads products, cart, and settings through.
  </Card>

  <Card title="The integrations model" href="/docs/concepts/integrations-model">
    What an integration package is: blocks, a register function, a tracker, and a manifest.
  </Card>

  <Card title="The package ecosystem" href="/docs/concepts/package-ecosystem">
    The @gauntlet and @app-brew scopes, the private registry, and lockstep versioning.
  </Card>
</Cards>

Read them in order if you are new: each page assumes the ones before it. If you already know the model and want to build something, jump to [Build](/docs/build).
