# 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 `https://docs.uarpie.app/errors/`, which opens the same page as `/docs/errors/` here. ## Start here - [Instructions for an AI agent](https://uarpie.app/ai): everything needed to put someone's app online, in one page. Read this before the docs below. - [Everything inlined](https://uarpie.app/llms-full.txt): this brief plus every doc page, in one file, if you would rather not fetch twice. ## Docs - [Documentation](https://uarpie.app/docs/index.md): How to put an app online with one command, and everything around it. - [Hand your AI a link](https://uarpie.app/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](https://uarpie.app/docs/getting-started.md): Your first deploy, the link, and how to keep the app. - [How it works](https://uarpie.app/docs/how-it-works.md): What happens in the few minutes between the command and the link. - [Claude Code](https://uarpie.app/docs/connect/claude-code.md): Give Claude Code the platform as tools, once. - [Cursor](https://uarpie.app/docs/connect/cursor.md): Give Cursor the platform as tools. - [Any other agent](https://uarpie.app/docs/connect/other.md): Anything that speaks MCP over stdio, or plain terminal commands. - [Keeping your app private](https://uarpie.app/docs/keep-your-app.md): Who can open your app, and how that changes when you keep it. - [Inviting people](https://uarpie.app/docs/invite-people.md): Email only, by design. - [Building for clients](https://uarpie.app/docs/building-for-clients.md): Make an app for someone else, then hand it over to their own account. - [Knowing who is using your app](https://uarpie.app/docs/who-is-using-your-app.md): Your app is told who each person is. No login to build, no password to keep. - [Settings and secrets](https://uarpie.app/docs/secrets.md): The values your app needs, kept off your computer. - [Versions and going back](https://uarpie.app/docs/versions-and-rollback.md): Every deploy is a new version, and the last 10 can be put back. - [Working from another computer](https://uarpie.app/docs/another-computer.md): Your app's code is kept here (the newest five versions, and any from the last 30 days), so you can carry on from another computer. No git required. - [Databases](https://uarpie.app/docs/databases.md): Postgres is the platform database. Here is what happens when your AI wrote something else. - [Several apps in one project](https://uarpie.app/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. - [Files and uploads](https://uarpie.app/docs/files.md): Where an app keeps photos and documents, how big files get there, and how much space each plan includes. - [Your month and the spending limit](https://uarpie.app/docs/spending-limit.md): What each plan includes, what happens when a month is used up, how Uarpie credit keeps apps going past it, and why your bill cannot surprise you. - [Uarpie credit](https://uarpie.app/docs/credit.md): One prepaid balance for use above a paid plan and for busy hours. Any amount from $5 to $1,000. It never expires, and unused credit you bought is refunded if you ask. - [Your own domain](https://uarpie.app/docs/custom-domain.md): Use an address you already own. - [Phone apps](https://uarpie.app/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](https://uarpie.app/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](https://uarpie.app/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](https://uarpie.app/docs/publish-ios.md): What uploading an iPhone app involves, for someone who has never done it — and where the platform stands today. - [Your app in other languages](https://uarpie.app/docs/languages.md): Offer your site in French, Spanish or any other language. You read every translation before anyone else sees it. - [Busy hours](https://uarpie.app/docs/busy-hours.md): Keeps 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. On paid plans, paid from Uarpie credit. - [Instant start](https://uarpie.app/docs/instant-start.md): Makes a Java app's new copies start in about a second instead of several, from a copy saved when you deploy. On paid plans, sold at cost from Uarpie credit. - [A desktop app](https://uarpie.app/docs/desktop-app.md): Turn your deployed app into something to double-click on Windows. Mac and Linux are coming. - [Command reference](https://uarpie.app/docs/cli.md): Every uarpie command. Your AI runs these; you can too. - [MCP tools](https://uarpie.app/docs/mcp-tools.md): The platform as tools an agent can call. - [deploy.json](https://uarpie.app/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](https://uarpie.app/docs/errors.md) - [DETECT_NO_PROJECT](https://uarpie.app/docs/errors/DETECT_NO_PROJECT.md): No deployable project found in this directory. - [DETECT_UNSUPPORTED_FRAMEWORK](https://uarpie.app/docs/errors/DETECT_UNSUPPORTED_FRAMEWORK.md): The framework in this project is not supported yet. - [DETECT_PORT_FIXED](https://uarpie.app/docs/errors/DETECT_PORT_FIXED.md): The start command forces a fixed port, so the app would never answer on the port the platform gives it. - [ENGINE_CONVERSION_REQUIRED](https://uarpie.app/docs/errors/ENGINE_CONVERSION_REQUIRED.md): This app uses a database engine the platform does not host. - [AUTH_PROVIDER_AVAILABLE](https://uarpie.app/docs/errors/AUTH_PROVIDER_AVAILABLE.md): This app has its own sign-in, but the platform already signs people in to a private app and tells the app who they are. - [SCHEDULED_WORK_IN_APP](https://uarpie.app/docs/errors/SCHEDULED_WORK_IN_APP.md): This app runs work on a timer inside itself, and a copy of the app is paused between visits, so that work runs late, all at once, or not at all. - [ASTRO_FORMS_REFUSED](https://uarpie.app/docs/errors/ASTRO_FORMS_REFUSED.md): This Astro app runs as a server, and its config does not let it read the address visitors open, so here it would refuse every form its own pages send ("Cross-site POST form submissions are forbidden") and Astro.url would say http://localhost. - [PARTS_MIGRATE_AFTER_MAIN](https://uarpie.app/docs/errors/PARTS_MIGRATE_AFTER_MAIN.md): The main part goes live and is checked before another part runs its migrations, so on the first deploy its home page meets a database with no tables yet. - [BUILD_FAILED](https://uarpie.app/docs/errors/BUILD_FAILED.md): The build failed. - [BUILD_MISSING_DEPENDENCY](https://uarpie.app/docs/errors/BUILD_MISSING_DEPENDENCY.md): Build failed: a module the code imports is not in package.json. - [BUILD_TIMEOUT](https://uarpie.app/docs/errors/BUILD_TIMEOUT.md): The build ran longer than the limit and was stopped. - [BUILD_IMAGE_TOO_LARGE](https://uarpie.app/docs/errors/BUILD_IMAGE_TOO_LARGE.md): The built app is larger than the runtime limit. - [BUILD_SETTING_MISSING](https://uarpie.app/docs/errors/BUILD_SETTING_MISSING.md): A setting the app reads while it is being built is not set, so the built app has it empty. - [MIGRATE_FAILED](https://uarpie.app/docs/errors/MIGRATE_FAILED.md): The database migration failed. - [PROVISION_FAILED](https://uarpie.app/docs/errors/PROVISION_FAILED.md): The platform could not create a resource this app needs. - [ROUTE_FAILED](https://uarpie.app/docs/errors/ROUTE_FAILED.md): The app was built but could not be given an address. - [ADDRESS_STILL_STARTING](https://uarpie.app/docs/errors/ADDRESS_STILL_STARTING.md): The app is live, but its new address is still being set up at the edge and can take up to a minute more to answer. - [DOMAIN_INVALID](https://uarpie.app/docs/errors/DOMAIN_INVALID.md): That is not a domain name the platform can attach. - [HEALTHCHECK_FAILED](https://uarpie.app/docs/errors/HEALTHCHECK_FAILED.md): The new version started but did not answer a request. - [DEPLOY_IN_PROGRESS](https://uarpie.app/docs/errors/DEPLOY_IN_PROGRESS.md): Another deploy of this project is already running. - [DEPLOY_STILL_RUNNING](https://uarpie.app/docs/errors/DEPLOY_STILL_RUNNING.md): The app is still deploying. This command stopped watching, but the platform is still working on it. - [REQUEST_TOO_LARGE](https://uarpie.app/docs/errors/REQUEST_TOO_LARGE.md): The request carried more than 1 MB, which is more than an app can be sent in one request. - [APP_PAUSED](https://uarpie.app/docs/errors/APP_PAUSED.md): This app is paused, so it cannot answer right now. - [NOTHING_CHANGED](https://uarpie.app/docs/errors/NOTHING_CHANGED.md): The live version already has these files, settings and deploy.json, built on the platform as it is now. - [SCHEMA_DRIFT](https://uarpie.app/docs/errors/SCHEMA_DRIFT.md): Rolling back code only: the database schema changed after the target version. - [UNAUTHORIZED](https://uarpie.app/docs/errors/UNAUTHORIZED.md): No valid credential was presented. - [FORBIDDEN](https://uarpie.app/docs/errors/FORBIDDEN.md): This credential cannot act on that project. - [BIND_TOKEN_EXPIRED](https://uarpie.app/docs/errors/BIND_TOKEN_EXPIRED.md): This link has expired. - [BIND_TOKEN_CONSUMED](https://uarpie.app/docs/errors/BIND_TOKEN_CONSUMED.md): This app is already in use on another device. - [PROJECT_NOT_FOUND](https://uarpie.app/docs/errors/PROJECT_NOT_FOUND.md): No project with that id exists. - [PROJECT_EXPIRED](https://uarpie.app/docs/errors/PROJECT_EXPIRED.md): This app was never claimed and has been removed. - [ACCOUNT_REQUIRED](https://uarpie.app/docs/errors/ACCOUNT_REQUIRED.md): This action needs a claimed account. - [CLIENT_LINK_INVALID](https://uarpie.app/docs/errors/CLIENT_LINK_INVALID.md): This link to claim an app has been used, has been replaced by a newer one, or has run out. - [CLIENT_EMAIL_MISMATCH](https://uarpie.app/docs/errors/CLIENT_EMAIL_MISMATCH.md): This app was offered to a different email address than the one signed in. - [CLIENT_ALREADY_CLAIMED](https://uarpie.app/docs/errors/CLIENT_ALREADY_CLAIMED.md): The client has already claimed this app, so it is theirs. - [SPEND_CAP_REACHED](https://uarpie.app/docs/errors/SPEND_CAP_REACHED.md): This would cost more than the account's spending limit allows this month, so it was not started. - [CREDIT_NEEDED](https://uarpie.app/docs/errors/CREDIT_NEEDED.md): This is paid from Uarpie credit, and the account has none left, so it was not started. - [RATE_LIMITED](https://uarpie.app/docs/errors/RATE_LIMITED.md): Too many requests in a short time. - [DEPLOY_LIMIT_REACHED](https://uarpie.app/docs/errors/DEPLOY_LIMIT_REACHED.md): Today's limit for deploying without an account has been reached: this address's own, or, when Uarpie is busy, the one shared by everyone. - [MAIL_UNDELIVERABLE](https://uarpie.app/docs/errors/MAIL_UNDELIVERABLE.md): The email could not be sent. - [EGRESS_NOT_ALLOWED](https://uarpie.app/docs/errors/EGRESS_NOT_ALLOWED.md): The app tried to reach a service it is not allowed to reach. - [EGRESS_BLOCKED](https://uarpie.app/docs/errors/EGRESS_BLOCKED.md): This app has been stopped from calling outside services. - [EGRESS_LIMIT_REACHED](https://uarpie.app/docs/errors/EGRESS_LIMIT_REACHED.md): This app has reached how much it may call outside services. - [EGRESS_NEEDS_KEEP](https://uarpie.app/docs/errors/EGRESS_NEEDS_KEEP.md): The app's home page calls a service that an app nobody has kept yet cannot reach. - [DESKTOP_SHELL_UNAVAILABLE](https://uarpie.app/docs/errors/DESKTOP_SHELL_UNAVAILABLE.md): Desktop apps cannot be made for that system right now. - [PLAN_LIMIT_REACHED](https://uarpie.app/docs/errors/PLAN_LIMIT_REACHED.md): The account's plan does not allow this. - [USAGE_LIMIT_REACHED](https://uarpie.app/docs/errors/USAGE_LIMIT_REACHED.md): This account has used the build minutes its plan includes this month, so new builds wait. - [SECRETS_TOO_LARGE](https://uarpie.app/docs/errors/SECRETS_TOO_LARGE.md): The app's settings exceed the 4 KB runtime limit. - [STORAGE_ALMOST_FULL](https://uarpie.app/docs/errors/STORAGE_ALMOST_FULL.md): The file space in this app's plan is almost used up. All the apps on one account share it. - [STORAGE_FULL](https://uarpie.app/docs/errors/STORAGE_FULL.md): The file space in this app's plan is used up, so no upload link was given for that file. All the apps on one account share it. - [FILE_LINK_EXPIRED](https://uarpie.app/docs/errors/FILE_LINK_EXPIRED.md): This link to one of the app's files has expired. - [FILE_LINK_INVALID](https://uarpie.app/docs/errors/FILE_LINK_INVALID.md): This link to one of the app's files is not one the platform made, or it was changed after it was made. - [SOURCE_UNAVAILABLE](https://uarpie.app/docs/errors/SOURCE_UNAVAILABLE.md): The source for that version is no longer stored. - [VERSION_UNAVAILABLE](https://uarpie.app/docs/errors/VERSION_UNAVAILABLE.md): That version can no longer be brought back: each app keeps its last 10 builds ready. - [LOGIN_CODE_INVALID](https://uarpie.app/docs/errors/LOGIN_CODE_INVALID.md): That sign-in code is not valid or has expired. - [MOBILE_STORE_STEP_REQUIRED](https://uarpie.app/docs/errors/MOBILE_STORE_STEP_REQUIRED.md): This is a phone app: every deploy makes the version phones run, and its address shows a page saying so. For now it opens on a phone in Expo Go, Expo's free app, and the platform does not publish to the App Store or Google Play. - [MOBILE_NO_SERVER_FOUND](https://uarpie.app/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. - [PHONE_VERSION_MISSING](https://uarpie.app/docs/errors/PHONE_VERSION_MISSING.md): This app has no phone version yet. - [PHONE_LINK_INVALID](https://uarpie.app/docs/errors/PHONE_LINK_INVALID.md): This link to the app's phone version has expired or was taken back. - [VIEWER_CODE_UNKNOWN](https://uarpie.app/docs/errors/VIEWER_CODE_UNKNOWN.md): No app has this code. - [VIEWER_SIGN_IN_REQUIRED](https://uarpie.app/docs/errors/VIEWER_SIGN_IN_REQUIRED.md): This app is private. Sign in with the email it was shared with to open it. - [VIEWER_NOT_INVITED](https://uarpie.app/docs/errors/VIEWER_NOT_INVITED.md): This email has not been invited to this app. - [SIGN_IN_CODE_INVALID](https://uarpie.app/docs/errors/SIGN_IN_CODE_INVALID.md): That code is not right, or it has expired. - [PUBLISH_NOT_CONFIRMED](https://uarpie.app/docs/errors/PUBLISH_NOT_CONFIRMED.md): Making an app public is not something to do on someone's behalf without asking. - [STORE_ACCOUNT_REQUIRED](https://uarpie.app/docs/errors/STORE_ACCOUNT_REQUIRED.md): Uploading to the App Store or Google Play for the person is not available. - [STORE_CREDENTIAL_REJECTED](https://uarpie.app/docs/errors/STORE_CREDENTIAL_REJECTED.md): Apple or Google refused the connected developer credential. - [RELEASE_IN_PROGRESS](https://uarpie.app/docs/errors/RELEASE_IN_PROGRESS.md): A phone build for that platform is already under way for this app. - [PHONE_BUILD_LIMIT_REACHED](https://uarpie.app/docs/errors/PHONE_BUILD_LIMIT_REACHED.md): This account has made the 10 Android builds an account may make in a month, so this one was not started. - [RELEASE_PLATFORM_UNAVAILABLE](https://uarpie.app/docs/errors/RELEASE_PLATFORM_UNAVAILABLE.md): That phone build is not available yet. - [RELEASE_NOT_CONFIRMED](https://uarpie.app/docs/errors/RELEASE_NOT_CONFIRMED.md): A phone build needs a current price quote, and that exact amount confirmed, before it starts. - [RELEASE_QUOTE_EXPIRED](https://uarpie.app/docs/errors/RELEASE_QUOTE_EXPIRED.md): That price quote is no longer current. - [DOMAIN_UNAVAILABLE](https://uarpie.app/docs/errors/DOMAIN_UNAVAILABLE.md): That domain cannot be bought here. - [DOMAIN_QUOTE_EXPIRED](https://uarpie.app/docs/errors/DOMAIN_QUOTE_EXPIRED.md): That price quote is no longer current. - [DOMAIN_ORDER_IN_PROGRESS](https://uarpie.app/docs/errors/DOMAIN_ORDER_IN_PROGRESS.md): A domain is already being bought for this app. - [AI_CREDITS_EMPTY](https://uarpie.app/docs/errors/AI_CREDITS_EMPTY.md): This account has used all its Uarpie credit, so Uarpie Builder stopped before this step. - [AI_UNAVAILABLE](https://uarpie.app/docs/errors/AI_UNAVAILABLE.md): Drafting with AI is not set up on this server. - [SITE_PAGE_PROTECTED](https://uarpie.app/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](https://uarpie.app/docs/errors/SITE_SLUG_TAKEN.md): Another page or post already uses that address. - [INTEGRATION_NOT_CONFIGURED](https://uarpie.app/docs/errors/INTEGRATION_NOT_CONFIGURED.md): That figure comes from an outside service that is not connected. - [EDGE_NOT_UPDATED](https://uarpie.app/docs/errors/EDGE_NOT_UPDATED.md): The change is saved, but the edge that checks who may open the app has not caught up yet. - [VALIDATION_FAILED](https://uarpie.app/docs/errors/VALIDATION_FAILED.md): The request was malformed. - [INTERNAL](https://uarpie.app/docs/errors/INTERNAL.md): Something went wrong on the platform.