Skip to main content
The recommended way to build custom Expresso UI is React with @napps/nodes. The package reconciles JSX into native JSI nodes.

Create a component

meta declares merchant-configurable settings. The CLI syncs those fields during deployment. Pass the component arguments into React through RootComponentProps.

JSX nodes

Supported intrinsic nodes include box, column, row, text, img, video, touchable, button, textInput, scrollable, pager, bottomSheet, and gestureDetector. All nodes accept style, key, and class. Nodes that render a subtree also accept children; img, video, button, and textInput are leaf nodes and do not render children. Classes do not cascade to children.

Component lifecycle

BaseReactUIComponent mounts the React tree when the native component is created and unmounts it when the component is destroyed. In development, the CLI reuses the root during Fast Refresh so React state can survive edits.

Next steps