Skip to main content
Pylon is fully self-hostable, but if you would rather not run it yourself, Smallware at www.usesmallware.com hosts the same app you would run on a VPS. Connect a GitHub repo and push to your default branch. The project goes live at https://your-app.smallware.run.

When to use it

Both targets run the same binary. You can start on Cloud and migrate to self-hosted (or back) without touching client code. Only the baseUrl changes.

Sign up

  1. Visit www.usesmallware.com and create an account.
  2. Create a project. The project gets a stable URL like https://your-app.smallware.run.
  3. Add a payment method (free Hobby tier covers small projects; see pricing below).

Deploy

There are two ways to deploy to Cloud: Install the Pylon Cloud GitHub App on your repo from the project settings page. Every push to your project’s default branch triggers a build and deploy. Pull-request pushes get a preview environment that tears down on merge.
You can also trigger a manual deploy of any branch from the project’s dashboard. Use this to redeploy without a fresh push, or to ship a feature branch to the project’s machine for testing.

2. Manual deploy from the dashboard

Project page → Deploy → pick a branch. The control plane resolves the branch head against your installed GitHub App and runs the same build pipeline as a webhook deploy.

Custom domains

From the project’s Domains tab, add app.example.com. Cloud provisions a TLS certificate automatically. Add the displayed CNAME record to your DNS. Wait for verification. The custom domain then goes live, and the platform *.smallware.run URL stays valid alongside it.

Environment variables

Project page → SettingsEnvironment. Set per-project secrets without committing them to git. They appear in your TypeScript functions as process.env.STRIPE_SECRET_KEY. Pylon encrypts them at rest and never logs them.

Hand off to a coding agent

Every org page in Pylon Cloud has a Hand off to your coding agent card. Click it and paste the generated prompt into Claude Code (or Codex, OpenCode, Cursor, Aider, or grok build). The agent installs the CLI, signs in, loads the Pylon skill, and asks what you want to build. Pylon exchanges the session token through a 5-minute single-use code, so your pk.* API key never appears in the chat history. See Agent handoff for the full flow.

Pair with Vercel for the frontend

The standard Pylon production stack runs the frontend on Vercel and the backend on Pylon Cloud. Vercel builds and serves your Next.js, SvelteKit, or other frontend on its global edge network. Pylon Cloud runs the realtime backend, database, and auth. Set PYLON_TARGET=https://your-app.smallware.run (your project’s Cloud URL) in Vercel’s project environment variables. The Next.js template’s rewrite then forwards /api/* to your Pylon backend. The browser talks to one origin, so session cookies work with no CORS setup needed. Full checklist: Deploying to Vercel.

What’s included

  • Same binary as pylon dev: no runtime hooks, no vendor proxies.
  • Postgres or SQLite: choose at project creation. SQLite ships on a Fly volume. Pylon provisions Postgres as a managed sibling service.
  • TLS: automatic certificates on *.smallware.run and your custom domains.
  • Magic-link email: managed transactional sender. No SendGrid or Resend account required.
  • OAuth: bring your own Google, GitHub, or other OAuth credentials.
  • WebSocket, SSE, and shard ports: exposed automatically. Clients connect to the public URL.
  • File storage: stored in Amazon S3, sized by your plan.
  • Studio: every project has the inspector available at https://your-app.smallware.run/studio.
  • Logs and metrics: request logs, function traces, and latency and error charts in the dashboard.
  • On-demand backups: Fly volume snapshots from the project’s Backups tab. Pro and Team plans store backups longer.

Scaling

Pylon Cloud runs on Fly Machines. Every dashboard setting maps to a real infrastructure call:
  • Machine size: shared-cpu-1x · 512 MB baseline. Resize up to 4 GB on Pro, 8 GB on Team.
  • Volume size: up to 100 GB on Pro, 500 GB on Team.
  • Autostop: locked on for the free tier (the machine sleeps when idle and wakes on the next request). You can toggle it on Pro and higher if you need always-warm WebSockets.
  • HA replicas: available for Postgres projects on paid plans. Cloud configures the built-in PylonSync relay. You do not need Redis. Autostop is off while a project has more than one application machine.
  • Region: pick from any of 13 regions:
Cloud copies each release and secret update to all application machines. The managed relay sends changes, presence, session changes, and CRDT frames between them. See Horizontal scaling for the data and runtime model. Jobs and workflows use the project’s shared Postgres database. A replica can recover work after another replica stops. Job execution is at least once, so handlers must be idempotent.

Pricing

Each tier has a flat platform fee plus per-machine compute. Hard quotas (requests, CPU-hours, egress) cap monthly usage. Projects pause at the quota until the calendar month rolls over or you upgrade.

Hobby ($0)

The Hobby plan has fixed limits:
  • 1 project per organization
  • shared-cpu-1x · 512 MB · 3 GB volume, one machine, autostop forced on
  • 100k requests / month
  • 1 CPU-hour / month
  • 5 GB egress / month
  • Single region, SQLite only
  • Community support

Pro ($20 / org / month)

Includes one baseline 512 MB machine, 10 GB volume, 50 GB egress, all features (custom domains, OIDC SSO, audit log, autostop toggle).
  • Up to 10 projects per organization, 5 organizations per user
  • Quotas: 5M requests, 50 CPU-hours, 250 GB egress per month
  • Per-machine pricing:
    • 1 GB always-warm: $14 / month
    • 2 GB always-warm: $25 / month
    • 4 GB always-warm: $50 / month (max)
  • Volume above 10 GB: $0.25 / GB-month
  • Egress above 250 GB: $0.06 / GB

Team ($99 / org / month)

Includes one baseline 1 GB machine, 50 GB volume, 250 GB egress.
  • Up to 50 projects per organization, 20 organizations per user
  • Quotas: 50M requests, 500 CPU-hours, 2 TB egress per month
  • Per-machine pricing:
    • 1 GB always-warm: $12 / month
    • 2 GB always-warm: $22 / month
    • 4 GB always-warm: $42 / month
    • 8 GB always-warm: $110 / month (max)
  • Volume above 50 GB: $0.20 / GB-month
  • Egress above 2 TB: $0.04 / GB
  • SAML SSO, audit log, role-based access

Enterprise

Custom quotas, single-tenant Fly org or BYOC (AWS, GCP), custom regions, SLA and on-call escalation, migration assistance. Email [email protected]. Live pricing on the pricing page.

Migrating from self-hosted

pylon backup and pylon restore (in the framework CLI) snapshot the SQLite database and uploads on a local Fly volume. To migrate into Cloud:
Then point your clients at the new baseUrl (your project’s smallware.run URL or custom domain). The session store is part of the snapshot, so sessions carry over and users stay signed in.

Migrating to self-hosted

There is no lock-in. The binary and the data format are the same either way.

Troubleshooting

Push did not trigger a deploy. Confirm the Pylon Cloud GitHub App is installed on the repo (Project Settings → GitHub) and the push is to the configured default branch. The Deployments tab shows webhook receipt. If nothing arrived there, the webhook never fired. Custom domain stuck on “verifying”. DNS propagation can take up to 24 hours. dig CNAME app.example.com should show customers.smallware.run. Magic-link emails not arriving. Check the spam folder for the first send (Cloud uses a shared sender domain that warms up over time). For production, configure your own sender domain in Settings → Email to authenticate with SPF, DKIM, and DMARC under your domain. WebSocket disconnects. Cloud’s load balancer holds connections for up to 4 hours. The sync engine reconnects automatically, using full-jitter backoff. If you see frequent drops, check Connections in the project dashboard. Hit a monthly quota. The project pauses at the limit until the calendar month rolls over (UTC) or you upgrade the organization’s plan. The dashboard shows current usage on the project’s overview page.

Status

status.pylonsync.com shows live region health and incident history.