Skip to main content
PercherPercher

Say "publish my app"
and it's live.

Percher is a hosting platform built for AI-native development. Your AI assistant builds the app, deploys it, and manages it — you just describe what you want.

How it works

1

Tell your AI what to build

Describe your app in natural language. Your AI assistant (Claude Code, Cursor, Windsurf, or any agent) builds it.

2

The agent deploys it

The agent runs bunx percher push or uses the Percher MCP tools. Percher auto-detects the runtime, builds with Nixpacks, and deploys to a container.

3

Live in under 60 seconds

Your app is live at your-app.percher.run with SSL, health checks, logs, and rollback — managed from the dashboard or by your agent.

Platform

Deployment requirements

  • App must expose an HTTP server (default port: 3000)
  • App must respond to GET /health with HTTP 200
  • A percher.toml config file must be in the project root
  • Standard project structure (package.json, requirements.txt, go.mod, Cargo.toml, etc.)

Supported runtimes

Node.js, Bun, Python, Go, Rust, Ruby, PHP, Java, .NET, Elixir, and static sites. Percher uses Nixpacks for automatic detection and builds.

Configuration — percher.toml

[app]
name = "my-app"          # URL: my-app.percher.run
runtime = "node"         # auto-detected by Nixpacks

[web]
port = 3000              # your app's listen port
health = "/health"       # health check endpoint (must return 200)

[resources]
memory = "512mb"         # container memory limit (optional)
cpu = 0.5                # CPU cores (optional)

[data]
mode = "pocketbase"      # optional: provisions a managed PocketBase database

Deploy commands

bunx percher login       # authenticate (opens browser)
bunx percher init        # generate percher.toml
bunx percher push        # build and deploy
bunx percher logs        # view runtime logs
bunx percher env set K=V # set environment variable
bunx percher versions    # list deploy history
bunx percher rollback ID # roll back to a previous version

MCP integration

AI assistants can deploy and manage apps via MCP (Model Context Protocol). Add the Percher MCP server to your assistant's configuration:

{
  "mcpServers": {
    "percher": {
      "command": "bunx",
      "args": ["percher-mcp"]
    }
  }
}

Available tools: percher_init, percher_push, percher_logs, percher_env_set, percher_env_unset, percher_env_list, percher_versions, percher_rollback, percher_whoami, percher_open.

Managed database

Apps that need a database can add [data] mode = "pocketbase" to percher.toml. Percher provisions a PocketBase sidecar automatically and injects POCKETBASE_URL as an environment variable. PocketBase provides auth, REST API, file storage, and realtime subscriptions out of the box.

Recommended resources by app type

Use these as defaults for [resources] in percher.toml.

App typeRuntimeMemoryCPUDataNotes
Static site / landing pagenode128mb0.25Use serve or http-server. No database needed.
API / webhook handlernode, go, rust256mb0.5Go/Rust can use 128mb. Python APIs need 512mb.
Fullstack SSR (Next, Remix, SvelteKit)node512mb0.5Most frameworks work out of the box.
Fullstack app + databasenode, python512mb0.5pocketbasePocketBase provides auth, API, file storage, realtime.
Real-time (WebSocket/SSE)node512mb0.5~1mb per concurrent connection. 1gb for 500+ conns.
Background workernode, python, go256mb0.5Must still expose GET /health on port 3000.
Python data / ML inferencepython1gb1.0512mb min with numpy/pandas. Port 8000 for FastAPI.
Go / Rust microservicego, rust128mb0.25Compiled binaries are very memory-efficient.
PHP (Laravel, Symfony)php256mb0.5512mb for Laravel with queues. Port 8080.
Monorepo / multi-packagenode512mb0.5Builds from project root. Ensure start script works.

Start building

Create a free account and deploy your first app in under a minute.

Sign up free