> ## Documentation Index
> Fetch the complete documentation index at: https://docs.napps.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction to Expresso

Expresso is an embedded JavaScript runtime that runs inside the mobile application.

You can use Expresso to customize how the application behaves without rebuilding the application itself. Your JavaScript runs in the app, talks to the APIs documented here, and can change specific parts of the customer experience.

## Why Expresso Exists

Expresso was created to help merchants move faster.

It gives merchants a way to:

* Change application behavior with JavaScript.
* Create new components for the mobile application.
* Reuse business rules that already exist on their website.
* Bring website logic into the mobile app in a controlled way.

Many merchants already have important rules on their website: pricing rules, product display rules, validation rules, promotion logic, personalization logic, and other custom behavior. Expresso gives you a way to bring that logic closer to the mobile app experience.

## What Embedded JavaScript Means

Expresso is not a WebView, so you write JavaScript against the APIs that Expresso provides.

Common website APIs are not available, including:

* `window`
* `document`
* DOM APIs like `querySelector`, `createElement`, or `addEventListener` on HTML elements
* CSSOM APIs
* navigation APIs like `history` and `location`
* cookies
* `localStorage`
* IndexedDB
* Service Workers
* Web Workers
* Canvas and WebGL

## How You Should Think About It

Think of Expresso as a JavaScript layer for mobile app customization.

You are not building a web page. You are writing JavaScript that can:

* Read product, cart, customer, and store data.
* Call supported services.
* Customize app extensions.
* Update supported components.
