Menu

StackMachine
    Powered byWasmer

    The infrastructure stack for agents

    One API key gives your agent hosting, storage, databases, email, and cron.

    Start for free

    Deploy the storefront in ./app

    await client.deployments.create({ appName: "storefront", files })

    Live at https://storefront.stackmachine.app

    Example calls from the StackMachine SDK. Try a live deploy

    Powering products and agents at

    Wasmer logo
    Simply Static logo
    Tiiny logo
    Manus logo
    ModularDS logo
    Agentic setup

    Set it up your way.

    Wire the SDK in yourself, or paste one prompt and let your coding agent handle the integration.

    Do it yourself

    Install the SDK, create an API key, and call the API from your backend or your agent's tools.

    Shell
    $ npm install stackmachine

    or

    Let your agent do it

    Recommended

    Paste one prompt into your coding agent. It creates your account, gets an API key, and wires up the SDK.

    Prompt

    Signup for an account & get API key with stackmachine.com/auth.md, then follow docs.stackmachine.com/agent-quickstart to integrate into the codebase

    Works withClaude Code, Codex, Cursor

    For agent-built products

    Everything is an API call.

    Deploy sites, store files, query data, send emails, and schedule jobs with one client and one API key.

    deploy.js
    import StackMachine from "stackmachine";
    
    const client = new StackMachine(process.env.STACKMACHINE_API_KEY);
    
    const deployment = await client.deployments.create({
      appName: "storefront",
      owner: "acme",
      files: {
        "index.html": "<h1>Open for business</h1>",
      },
    });
    
    const { app } = await deployment.wait({
      onProgress: ({ kind, message }) => console.log(kind, message),
    });
    
    console.log(app.url); // https://storefront.stackmachine.app
    store.js
    import StackMachine from "stackmachine";
    
    const client = new StackMachine(process.env.STACKMACHINE_API_KEY);
    
    const volume = await client.apps.volumes.create({
      app: "da_XYZ",
      mountPath: "/uploads",
      maxSizeBytes: 1_073_741_824,
    });
    
    // Open the same files to S3-compatible tools.
    const updated = await client.apps.volumes.update(volume.id, {
      mountPath: "/uploads",
      s3Enabled: true,
      redeployApp: true,
    });
    
    console.log(updated.s3Url, updated.explorerUrl);
    query.js
    import StackMachine from "stackmachine";
    
    const client = new StackMachine(process.env.STACKMACHINE_API_KEY);
    
    const { database, password } = await client.apps.databases.create({
      app: "da_XYZ",
      dbEngine: "POSTGRES", // or "MYSQL", "SQLITE"
      name: "orders",
    });
    
    // The password is returned once. Store it as a secret,
    // then connect with the Postgres driver your app already uses.
    console.log(database.host, database.port, database.username);
    
    const rotated = await client.apps.databases.rotateCredentials(database.id);
    send.js
    import StackMachine from "stackmachine";
    
    const client = new StackMachine(process.env.STACKMACHINE_API_KEY);
    
    const message = await client.emails.send({
      app: "da_XYZ",
      to: ["ada@example.com"],
      subject: "Your receipt",
      textBody: "Thanks for your order.",
      htmlBody: "<p>Thanks for your order.</p>",
    });
    
    console.log(message.id, message.status);
    
    const sent = await client.emails.sent.list({ app: "da_XYZ", limit: 10 });
    schedule.js
    import StackMachine from "stackmachine";
    
    const client = new StackMachine(process.env.STACKMACHINE_API_KEY);
    
    const cleanup = await client.apps.cronjobs.create({
      app: "da_XYZ",
      name: "cleanup",
      schedule: "0 2 * * *",
      execute: { command: "python cleanup.py" },
    });
    
    const healthcheck = await client.apps.cronjobs.create({
      app: "da_XYZ",
      name: "healthcheck",
      schedule: "*/5 * * * *",
      fetch: { path: "/health", method: "GET" },
    });

    Every app,
    instantly awake.

    Agents ship in bursts and spend most of their time waiting. Apps start cold in under 5ms, scale to zero between requests, and never bill for the wait.

    <5ms

    cold start for Node.js and Python apps

    Time to start a Python application

    Time to start a Python application. StackMachine: under 5 milliseconds. AWS Lambda and Cloudflare Workers: 800 milliseconds or more.

    Your stack, unmodified

    Node.js, Python, PHP, and more run as they are. Agents write ordinary server code, with no edge-specific rewrites.

    Sandboxed by default

    Every app runs in its own WebAssembly sandbox, so untrusted and AI-generated code stays isolated.

    Idle time is free

    Model calls, webhook pauses, and sleeping WebSockets don't count as compute. You pay for CPU work, not wall-clock time.

    +1M

    Deployments

    1B+

    Requests processed monthly

    95%

    Lower compute cost

    7

    Active regions

    From the first deploy to a running product.

    Everything that comes after the code is written: a URL, storage, a database, email, and scheduled work, all from the same API.

    Deploy sites

    Send a files map, a zip, or a Git repo and get a live URL back. Build logs stream while you wait.

    storefrontLive
    • QUEUEDbuild_abc123
    • BUILDInstalling dependencies
    • DEPLOYPublishing to iad
    • COMPLETEstorefront.stackmachine.app
    Deployediad

    Store files

    Attach persistent volumes at any mount path. Turn on S3 access when a tool needs the objects directly.

    /uploadsS3 enabled
    • invoices/2026-10.pdf184 KB
    • exports/orders.csv2.1 MB
    • avatars/ada.png96 KB

    312 MB of 1 GB

    Query data

    Create a Postgres, MySQL, or SQLite database per app. Credentials come back once, ready to store as secrets.

    ordersPostgresMySQLSQLite
    idcustomertotal
    1042ada@example.com$128.00
    1041lin@example.com$42.50
    1040sam@example.com$310.00

    Send emails

    Send receipts, invites, and notifications without wiring up a provider. Each message reports its delivery status.

    To
    ada@example.com
    Subject
    Your receipt

    Thanks for your order. Your receipt is attached.

    1. Queued
    2. Sent
    3. Delivered

    Schedule jobs

    Run a command or call an HTTP path on a cron schedule. Pause, reschedule, or delete jobs from the same SDK.

    • cleanup0 2 * * *Enabled
    • healthcheck*/5 * * * *Enabled
    • weekly-report0 9 * * 1Paused

    Connect domains

    Attach a hostname to any app and get back the DNS records to set. Verify once they propagate.

    shop.acme.comVerified
    type
    CNAME
    host
    shop
    value
    storefront.stackmachine.app
    Live demo

    Watch an agent deploy in seconds.

    Describe an app and get a live StackMachine URL back.

    Describe what you want to host, or use a quick action below. I'll deploy it on StackMachine and return a live link with a preview.

    How we compare

    Run real app runtimes in secure Wasm sandboxes with sub-5ms cold starts and density built for massive scale.

    FeatureStackMachineAWS LambdaCloudflare Workers
    Cold start<5ms200ms+Varies by language (10-800ms)
    Code changes requiredNoYesYes
    Node.js supportYesYesNo
    Next.js supportYesLimitedLimited (via vinext fork)
    Python supportYesYesLimited (Pyodide)
    PHP supportYesNoNo
    WordPress supportYesNoNo
    Go supportYesYesNo
    Multithreading & multiprocessingYesYesNo
    Native realtime / WebSocketsYesNoYes
    Idle time billedNoYesNo
    Apps per serverHighest densityLower densityHigh density

    Frequently Asked Questions

    Short answers to the architecture, security, and workflow questions teams ask before adopting StackMachine.

    Give your agent the whole stack.

    One API key for hosting, storage, databases, email, and cron.