# uarpie — Uarpie > Serverless hosting for apps people build with AI. An agent runs one command (`npx uarpie`) and the app is live at a private URL with its database, storage, scheduled jobs and login handled. No account before deploy; the person claims the app by email afterwards. Every page below is also available as clean Markdown at the `.md` URL. Errors from the CLI and MCP tools link to `/docs/errors/`. ## Start here - [Instructions for an AI agent](http://localhost:3000/ai): everything needed to put someone's app online, in one page. Read this before the docs below. - [Everything inlined](http://localhost:3000/llms-full.txt): this brief plus every doc page, in one file, if you would rather not fetch twice. ## Docs - [Documentation](http://localhost:3000/docs/index.md): How to put an app online with one command, and everything around it. - [Hand your AI a link](http://localhost:3000/docs/hand-your-ai-a-link.md): The shortest path from "my AI built an app" to "my app is online". No terminal, no install. - [Getting started](http://localhost:3000/docs/getting-started.md): Your first deploy, the link, and how to keep the app. - [How it works](http://localhost:3000/docs/how-it-works.md): What happens in the thirty seconds between the command and the link. - [Claude Code](http://localhost:3000/docs/connect/claude-code.md): Give Claude Code the platform as tools, once. - [Cursor](http://localhost:3000/docs/connect/cursor.md): Give Cursor the platform as tools. - [Any other agent](http://localhost:3000/docs/connect/other.md): Anything that speaks MCP over stdio, or plain terminal commands. - [Keeping your app private](http://localhost:3000/docs/keep-your-app.md): Who can open your app, and how that changes when you keep it. - [Inviting people](http://localhost:3000/docs/invite-people.md): Email only, by design. - [Settings and secrets](http://localhost:3000/docs/secrets.md): The values your app needs, kept off your computer. - [Versions and going back](http://localhost:3000/docs/versions-and-rollback.md): Every deploy is a version you can return to. - [Working from another computer](http://localhost:3000/docs/another-computer.md): Your app's code lives here, with every version. No git required. - [Databases](http://localhost:3000/docs/databases.md): Postgres is the platform database. Here is what happens when your AI wrote something else. - [Several apps in one project](http://localhost:3000/docs/several-apps-in-one.md): A site and its API, a shop and its admin — deployed together, sharing one database and one set of people. - [The spending limit](http://localhost:3000/docs/spending-limit.md): On by default. Your bill cannot surprise you. - [Your own domain](http://localhost:3000/docs/custom-domain.md): Use an address you already own. - [Phone apps](http://localhost:3000/docs/phone-apps.md): What the platform does for an app you want on a phone, and what a store listing actually involves. - [APIs and backends](http://localhost:3000/docs/apis.md): A server with no web pages: hosted the same way, with keys instead of a sign-in screen. - [Putting your app on Google Play](http://localhost:3000/docs/publish-android.md): You have the file. Here is every click between it and the Play Store, for someone who has never done this. - [Putting your app on the App Store](http://localhost:3000/docs/publish-ios.md): What uploading an iPhone app involves, for someone who has never done it — and where the platform stands today. - [Busy hours](http://localhost:3000/docs/busy-hours.md): Keep your app awake around the times you know it will be busy, so the first people to arrive are not the ones who pay for waking it up. - [A desktop app](http://localhost:3000/docs/desktop-app.md): Turn your deployed app into something to double-click on Windows, Mac or Linux. - [Command reference](http://localhost:3000/docs/cli.md): Every uarpie command. Your AI runs these; you can too. - [MCP tools](http://localhost:3000/docs/mcp-tools.md): The platform as tools an agent can call. - [deploy.json](http://localhost:3000/docs/deploy-json.md): The plan the command inferred, and the one file your AI edits when a guess is wrong. ## Error codes - [All error codes](http://localhost:3000/docs/errors.md) - [DETECT_NO_PROJECT](http://localhost:3000/docs/errors/DETECT_NO_PROJECT.md): No deployable project found in this directory. - [DETECT_UNSUPPORTED_FRAMEWORK](http://localhost:3000/docs/errors/DETECT_UNSUPPORTED_FRAMEWORK.md): The framework in this project is not supported yet. - [DETECT_AMBIGUOUS_ENTRYPOINT](http://localhost:3000/docs/errors/DETECT_AMBIGUOUS_ENTRYPOINT.md): More than one way to start this app was found. - [ENGINE_CONVERSION_REQUIRED](http://localhost:3000/docs/errors/ENGINE_CONVERSION_REQUIRED.md): This app uses a database engine the platform does not host. - [AUTH_PROVIDER_AVAILABLE](http://localhost:3000/docs/errors/AUTH_PROVIDER_AVAILABLE.md): This app implements its own login, but the platform already signs people in. - [BUILD_FAILED](http://localhost:3000/docs/errors/BUILD_FAILED.md): The build failed. - [BUILD_MISSING_DEPENDENCY](http://localhost:3000/docs/errors/BUILD_MISSING_DEPENDENCY.md): Build failed: a module the code imports is not in package.json. - [BUILD_TIMEOUT](http://localhost:3000/docs/errors/BUILD_TIMEOUT.md): The build ran longer than the limit and was stopped. - [BUILD_IMAGE_TOO_LARGE](http://localhost:3000/docs/errors/BUILD_IMAGE_TOO_LARGE.md): The built app is larger than the runtime limit. - [MIGRATE_FAILED](http://localhost:3000/docs/errors/MIGRATE_FAILED.md): The database migration failed. - [MIGRATE_DESTRUCTIVE_BLOCKED](http://localhost:3000/docs/errors/MIGRATE_DESTRUCTIVE_BLOCKED.md): The migration would drop or rewrite existing data and was not applied. - [PROVISION_FAILED](http://localhost:3000/docs/errors/PROVISION_FAILED.md): The platform could not create a resource this app needs. - [ROUTE_FAILED](http://localhost:3000/docs/errors/ROUTE_FAILED.md): The app was built but could not be given an address. - [DOMAIN_INVALID](http://localhost:3000/docs/errors/DOMAIN_INVALID.md): That is not a domain name the platform can attach. - [DOMAIN_SCREENING_HOLD](http://localhost:3000/docs/errors/DOMAIN_SCREENING_HOLD.md): This domain is being reviewed before it can be attached. - [DOMAIN_DNS_PENDING](http://localhost:3000/docs/errors/DOMAIN_DNS_PENDING.md): The DNS record for this domain has not been seen yet. - [HEALTHCHECK_FAILED](http://localhost:3000/docs/errors/HEALTHCHECK_FAILED.md): The new version started but did not answer a request. - [DEPLOY_IN_PROGRESS](http://localhost:3000/docs/errors/DEPLOY_IN_PROGRESS.md): Another deploy of this project is already running. - [NOTHING_CHANGED](http://localhost:3000/docs/errors/NOTHING_CHANGED.md): The app and its settings are identical to the live version. - [SCHEMA_DRIFT](http://localhost:3000/docs/errors/SCHEMA_DRIFT.md): Rolling back code only: the database schema changed after the target version. - [UNAUTHORIZED](http://localhost:3000/docs/errors/UNAUTHORIZED.md): No valid credential was presented. - [FORBIDDEN](http://localhost:3000/docs/errors/FORBIDDEN.md): This credential cannot act on that project. - [BIND_TOKEN_EXPIRED](http://localhost:3000/docs/errors/BIND_TOKEN_EXPIRED.md): This link has expired. - [BIND_TOKEN_CONSUMED](http://localhost:3000/docs/errors/BIND_TOKEN_CONSUMED.md): This app is already in use on another device. - [PROJECT_NOT_FOUND](http://localhost:3000/docs/errors/PROJECT_NOT_FOUND.md): No project with that id exists. - [PROJECT_EXPIRED](http://localhost:3000/docs/errors/PROJECT_EXPIRED.md): This app was never claimed and has been removed. - [ACCOUNT_REQUIRED](http://localhost:3000/docs/errors/ACCOUNT_REQUIRED.md): This action needs a claimed account. - [SPEND_CAP_REACHED](http://localhost:3000/docs/errors/SPEND_CAP_REACHED.md): This app is paused because it reached the account's spending limit. - [RATE_LIMITED](http://localhost:3000/docs/errors/RATE_LIMITED.md): Too many requests in a short time. - [MAIL_UNDELIVERABLE](http://localhost:3000/docs/errors/MAIL_UNDELIVERABLE.md): The email could not be sent. - [EGRESS_NOT_ALLOWED](http://localhost:3000/docs/errors/EGRESS_NOT_ALLOWED.md): The app tried to reach an address it is not allowed to reach. - [DESKTOP_SHELL_UNAVAILABLE](http://localhost:3000/docs/errors/DESKTOP_SHELL_UNAVAILABLE.md): Desktop apps cannot be made for that system right now. - [PLAN_LIMIT_REACHED](http://localhost:3000/docs/errors/PLAN_LIMIT_REACHED.md): The account's plan does not allow this. - [SECRETS_TOO_LARGE](http://localhost:3000/docs/errors/SECRETS_TOO_LARGE.md): The app's settings exceed the 4 KB runtime limit. - [SOURCE_UNAVAILABLE](http://localhost:3000/docs/errors/SOURCE_UNAVAILABLE.md): The source for that version is no longer stored. - [LOGIN_CODE_INVALID](http://localhost:3000/docs/errors/LOGIN_CODE_INVALID.md): That sign-in code is not valid or has expired. - [MOBILE_STORE_STEP_REQUIRED](http://localhost:3000/docs/errors/MOBILE_STORE_STEP_REQUIRED.md): The app's server and web version are live. Publishing the phone app to the App Store or Google Play is not something the platform does yet. - [MOBILE_NO_SERVER_FOUND](http://localhost:3000/docs/errors/MOBILE_NO_SERVER_FOUND.md): This is a phone app with no server in the folder, so there is nothing to host yet. - [PUBLISH_NOT_CONFIRMED](http://localhost:3000/docs/errors/PUBLISH_NOT_CONFIRMED.md): Making an app public is not something to do on someone's behalf without asking. - [STORE_ACCOUNT_REQUIRED](http://localhost:3000/docs/errors/STORE_ACCOUNT_REQUIRED.md): No developer account is connected for that store. - [STORE_CREDENTIAL_REJECTED](http://localhost:3000/docs/errors/STORE_CREDENTIAL_REJECTED.md): Apple or Google refused the connected developer credential. - [RELEASE_IN_PROGRESS](http://localhost:3000/docs/errors/RELEASE_IN_PROGRESS.md): A release to that store is already running for this app. - [RELEASE_PLATFORM_UNAVAILABLE](http://localhost:3000/docs/errors/RELEASE_PLATFORM_UNAVAILABLE.md): Releases to that store are not available yet. - [RELEASE_NOT_CONFIRMED](http://localhost:3000/docs/errors/RELEASE_NOT_CONFIRMED.md): A store release costs money, so it needs the amount confirmed before it starts. - [RELEASE_QUOTE_EXPIRED](http://localhost:3000/docs/errors/RELEASE_QUOTE_EXPIRED.md): That price quote is no longer current. - [DOMAIN_UNAVAILABLE](http://localhost:3000/docs/errors/DOMAIN_UNAVAILABLE.md): That domain cannot be bought here. - [DOMAIN_QUOTE_EXPIRED](http://localhost:3000/docs/errors/DOMAIN_QUOTE_EXPIRED.md): That price quote is no longer current. - [DOMAIN_ORDER_IN_PROGRESS](http://localhost:3000/docs/errors/DOMAIN_ORDER_IN_PROGRESS.md): A domain is already being bought for this app. - [AI_UNAVAILABLE](http://localhost:3000/docs/errors/AI_UNAVAILABLE.md): Drafting with AI is not set up on this server. - [SITE_PAGE_PROTECTED](http://localhost:3000/docs/errors/SITE_PAGE_PROTECTED.md): That page is part of the site itself and cannot be deleted or given a different address. - [SITE_SLUG_TAKEN](http://localhost:3000/docs/errors/SITE_SLUG_TAKEN.md): Another page or post already uses that address. - [INTEGRATION_NOT_CONFIGURED](http://localhost:3000/docs/errors/INTEGRATION_NOT_CONFIGURED.md): That figure comes from an outside service that is not connected. - [VALIDATION_FAILED](http://localhost:3000/docs/errors/VALIDATION_FAILED.md): The request was malformed. - [INTERNAL](http://localhost:3000/docs/errors/INTERNAL.md): Something went wrong on the platform.