swarza

Everything your app needs, in one flat price.

Hosting for JavaScript apps and AI agents, Turso databases, S3-compatible storage and scheduled jobs. One command deploys, and one monthly price covers it all.

Whatever your build writes.

Applications run on Node.js 26 or Bun behind a CDN, with 256 MB to 1 GB of memory each, depending on the plan.

Static files

A folder of files is already an application. Redirects and headers go in swarza.json.

Fetch handlers

export default { fetch }, the same handler Cloudflare Workers, Deno and Bun use.

Node.js request listeners

An Express app or any (req, res) handler.

Next.js

swarza deploy builds it with Vercel’s adapter: pages, server components, route handlers.

Node.js and Next.js apps, deployed from your terminal.

Static files, fetch handlers, Node.js or Next.js: one command deploys the folder your build wrote, or builds a Next.js project first. Every deployment gets its own address, and a bad release rolls back in one click.
$ swarza deploy --prod
■ Packed my-app
  128 files · 4.2 MB (1.3 MB zipped)
■ Built k3x9a2b1

my-app is live at my-app.swarza.app

Agents, data and jobs, in the same plan.

Nothing extra to sign up for. A database or bucket you connect to an application arrives as environment variables.

Host an AI agent like any other application.

A chat built with the AI SDK deploys with the same command. Answers stream for as long as the model needs, work goes on after the answer, and a dropped connection picks up where it left off.

Agent hosting
// app/api/chat/route.ts
const result = streamText({ model, messages, tools });

return createUIMessageStreamResponse({
  keepAliveMs: 15_000,
  stream: toUIMessageStream({ stream: result.stream }),
});

A Turso database, created in one command.

SQLite compatible, with backups and point-in-time restore. Connect it to an application and its address and token arrive as environment variables.

$ swarza databases create notes --app my-app

import { connect } from "@tursodatabase/serverless";

const db = connect({
  url: process.env.DATABASE_URL,
  authToken: process.env.DATABASE_AUTH_TOKEN,
});
const notes = await db.all("SELECT * FROM notes");

S3-compatible buckets for your files.

Private or public, with any S3 client or SDK. Connect a bucket to an application with read or write access and its keys arrive as environment variables.

$ swarza buckets create uploads --app my-app

const s3 = new S3Client({
  endpoint: process.env.STORAGE_ENDPOINT,
  region: process.env.STORAGE_REGION,
  credentials: {
    accessKeyId: process.env.STORAGE_ACCESS_KEY_ID,
    secretAccessKey: process.env.STORAGE_SECRET_ACCESS_KEY,
  },
});
await s3.send(new PutObjectCommand({ Bucket, Key, Body }));

Scheduled jobs that ship with your code.

List scheduled jobs and their cron schedules in swarza.json. They deploy with your application, run inside it, and show their runs and logs in the dashboard.

$ swarza deploy --prod

// swarza.json
{
  "scheduledJobs": [
    { "schedule": "0 3 * * *",
      "function": "jobs/cleanup.mjs" }
  ]
}

// jobs/cleanup.mjs
export default async function (controller) {
  console.log("cleaning up", controller.cron);
}
Unlimitedapplications on every plan. An idle one holds no memory and isn’t billed.
10 GBof databases on every plan, restorable to any point in the last 30 days.
5 to 200custom domains, depending on the plan.

Logs, domains and the rest.

Logs

Requests, what your code prints and the platform’s own messages, in the dashboard or with swarza logs -f. Kept for 7 days.

Custom domains

5 to 200, depending on the plan. Add a CNAME record and the certificate is issued for you.

Environment variables

Set in the dashboard. A database or bucket you connect adds its own.

Previews

5 to 50 named previews per application, each at its own address, and an address for every deployment.

In the EU

Applications, databases and buckets run in Frankfurt (AWS eu-central-1). Prices are in euros.

Throttled, never billed

At 80% and 100% of an allowance we email you. Past it, the application slows down and the price stays the same.

One flat price, with no meter running.

EUR a month, excluding VAT.

Starter

€5
Visits
about 30k
Apps
Unlimited
Transfer
30 GB
Requests
900k
App compute
200 GB-h
Custom domains
5

More plans coming soon

Larger plans, for more traffic and compute, open after the private beta. Each one will have one flat monthly price, like Starter.

Join the private beta

Know next month’s bill today.

We use your email only to invite you to the beta. Privacy