Smallware

Smallware for developers and agents

Everything here is self-serve. Create an account, mint a token, and deploy — there is no application form, no approval queue, and no call to book. The free tier runs one real application on a real URL without a credit card.

Deploy your first app

From an empty directory to a live URL. Bun 1.0 or newer must be on PATH.

npx @pylonsync/cli login
npm create @pylonsync/pylon@latest my-app
cd my-app
bunx pylon projects create my-app
bunx pylon deploy

The app serves at https://my-app.smallware.run. Add --template saas to the scaffold command when the app needs accounts, organizations, and billing wired up already. bunx pylon dev runs the whole thing locally on one port, and bunx pylon --help lists every command.

Authentication

Every API call carries Authorization: Bearer <token>. There are two kinds of token, and the prefix tells them apart.

User API keys start with pk. Any signed-in user mints one at the CLI tokens page in two clicks. The token is shown once, carries your own role on every organization you belong to, and can be revoked one machine at a time. npx @pylonsync/cli login mints one for you and stores it locally, so most people never copy a token by hand.

Platform credentials start with plat. They are server-to-server credentials for a partner service that provisions organizations and projects on behalf of customers, they carry an explicit list of named scopes, and they are issued by a Smallware operator rather than self-serve. Write to [email protected] if you need one.

Scopes

A platform credential is refused for anything outside the scopes it carries, so ask for the narrowest set that does the job. The same list is published as scopes_supported in the RFC 9728 protected-resource metadata, which is where a client should read it rather than from this page.

org.create
Create an organization on behalf of a customer identified by email address. The customer owns it from creation; the credential holder does not become a member and does not gain access to the organization's data.
project.create
Create a project inside an existing organization and provision its machine, database, and system hostname. Does not grant access to the project's data or secrets.
deploy
Upload a build artifact for an existing project and deploy it. Does not grant project creation, secret reads, or organization changes.
model.resolve
Resolve which model provider serves a given (organization, model) pair and read that organization's stored provider key. Held only by the model proxy; kept separate so a deploy credential cannot read customer provider keys.

Calling the API directly

Every operation is a POST to /api/fn/<functionName> with the arguments as a flat JSON object — not wrapped in an args key. A successful call answers 200 with the return value as the entire body; a failure answers with {"error":{"code","message"}}, and code is the stable part to branch on. The OpenAPI document types every one of them.

Reading this site as a machine

Every page here is also a markdown document. Append .md to any path, or send Accept: text/markdown, and you get the page as text instead of HTML — no rendering, no scraping heuristics. Start from /llms.txt, which says what Smallware is for and links the rest.

Everything, in one list

  • /openapi.jsonOpenAPI 3.1 description of every endpoint a bearer token can call.
  • /.well-known/oauth-protected-resourceRFC 9728 protected-resource metadata: supported scopes and bearer methods.
  • /llms.txtWhat Smallware is for, when to reach for it, and where everything lives.
  • /api/manifestWhat this application exposes: entities, routes, policies, auth configuration.
  • @pylonsync/cli on npmThe CLI. Deploys, logs, secrets, domains, database backups; `--json` on every read command.
  • Pylon documentationSchema, policies, server functions, auth, jobs, search, SSR. Add `.md` to any page URL.
  • Pylon authoring guideThe whole framework as one markdown file, written for a coding agent to load.
  • Source on GitHubThe runtime, the SDKs, and the starter templates. MIT licensed.