# Get started (/apps/get-started) You need Node.js 20 or later and a terminal. (Not published to npm yet.) ## Install the CLI [#install-the-cli] ```bash npm install -g @poltura/cli ``` ## Create an app [#create-an-app] ```bash poltura app create my-app --template hosted ``` The CLI prints `created hosted app in` and the folder. Go into it with `cd my-app` and install its dependencies: ```bash npm install ``` The app has a manifest (`poltura.app.json`), an admin page, a storefront block and a small server. ## Build and check it [#build-and-check-it] ```bash poltura app build poltura app validate ``` `build` prints `built my-app@1.0.0`, the release digest and `2 workers`. `validate` checks the release the way review does and prints `ok my-app@1.0.0` with the size of the manifest. Fix anything it reports before you go on. You now have a release that is ready to publish for review. ## Next [#next] - [Build your first app](/apps/build-your-first-app): Change the block, point the app at your server and publish it, in about fifteen minutes. - [How apps work](/apps): Where an app shows up, native or hosted, and the packages. - [App manifest](/apps/manifest): Every field of poltura.app.json. - [Ship to merchants](/apps/ship): Review, install, updates and what it costs. # How apps work (/apps) A Poltura app adds pages, panels and storefront blocks to every store that installs it. You describe the app in one manifest, `poltura.app.json`, and publish a release with the `poltura` CLI. A platform reviewer checks that exact release, and a merchant approves the permissions it asks for before it reaches their store. Your code never runs inside the store's servers. UI runs in a separate, secure environment that draws Poltura's own components, and anything that needs data runs on your server, which calls the App API with the token the merchant's approval gave you. - [Build your first app](/apps/build-your-first-app): Scaffold, build, validate and publish, in about fifteen minutes. - [Example app walkthrough](/apps/tutorial): The complete Recommendations example, file by file. - [Ship to merchants](/apps/ship): Review, install, updates and what it costs. ## Why build on Poltura [#why-build-on-poltura] - **European merchants.** Poltura is a hosted e-commerce platform built for European merchants, Hungary first. Stores sell in many languages and currencies, so one app reaches shops in several countries. - **Native from the first line.** Workers draw with Poltura's own components, so your app looks like the admin and like each store's theme without CSS of yours. See [UI](/apps/ui). - **Trust built in.** Every release is reviewed before merchants see it, merchants approve each permission, and your code never runs on the store's servers. - **Clear terms.** Free apps cost nothing to publish. Paid apps are not offered yet, so there is no revenue share and no payout. See [Ship to merchants](/apps/ship#what-it-costs). - **Ready for AI tools.** Every page here is Markdown for your coding agent, with `llms.txt` and rules files for Cursor and other tools. See [Build with AI](/ai). ## Where an app shows up [#where-an-app-shows-up] | Surface | Declared with | Where the merchant sees it | | --------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------- | | Admin page | a worker with target `admin.page` and an entry in `adminPages` | Apps in the admin navigation, `/apps/:installationId/:pageId` | | Home card | target `admin.home` | The admin home | | Detail panel | `admin.product`, `admin.collection`, `admin.order`, `admin.customer` | Product, collection, order and customer pages | | Hosted admin page | `adminFrame.url` and `adminFrame.actions` | Connected apps, in an iframe you host | | Storefront block | `storefront.