Edge
Node.js logo

For Node.js

Node.js apps,
properly hosted

Express, Fastify, Hono, NestJS — any Node app, on a real VM, fronted by a global CDN. No serverless gotchas, no per-invocation pricing, no platform-specific build steps.

# bootstrap-node.sh

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -

sudo apt-get install -y nodejs

git clone git@github.com:me/api .

npm ci && npm run build

sudo systemctl enable --now api

# Provision the VM

$ edge compute create \

--image ubuntu-24-04 --plan small \

--script ./bootstrap-node.sh

# CDN out front

$ edge cdn create api.example.com ...

Why Node teams pick Edge

A long-running Node process is still the fastest, simplest, cheapest deployment for most apps.

Any Node framework, any runtime

Express, Fastify, Hono, NestJS, Koa, Adonis, plain http — if it runs on Node, it runs on an Edge VM. Bun and Deno work too.

Long-running process, no cold starts

A real Node process on a real VM. Consistent latency, no per-invocation pricing, no surprise cold-start spikes.

S3-compatible storage

Use the AWS SDK or any S3 client to push uploads and downloads through Edge Storage. Same code in dev and prod.

Image transforms via URL

Hand off resizing, cropping and format conversion to Edge Image Optimization. Your Node process stays small and fast.

Global CDN, zero egress

Front static assets and cacheable routes through the Edge CDN. Your Node app only sees the dynamic traffic that needs it.

Plain Linux deploys

systemd, pm2, Docker, Kamal — pick your poison. The Edge CLI provisions the VM, you decide how to ship to it.

Reference architecture

How a Node app maps to Edge

Node process on a VM, optional state in Postgres or Redis, S3 for blobs, CDN for everything cacheable.

Compute

Runs your Node process under systemd, pm2 or Docker

Storage

S3-compatible bucket for uploads, exports, and snapshot backups

CDN

Caches static files and edge-cacheable API responses

Image Optimization

Resize, crop and AVIF/WebP convert via URL

DNS

Anycast DNS for production, staging and previews

# Hono on Node, with Edge Storage SDK

import { Hono } from 'hono'

import { S3Client } from '@aws-sdk/client-s3'

const s3 = new S3Client({

endpoint: 'https://storage.edge.run',

region: 'us-east-1',

})

const app = new Hono()

app.get('/', c => c.text('Hello, Edge'))

serve({ fetch: app.fetch, port: 3000 })

Common questions

Express, Fastify, Hono, NestJS — which is best?

All of them work. We have no opinion on your framework choice; the deployment story is identical because they're all Node processes behind a reverse proxy on a VM.

Can I use TypeScript?

Yes — compile in CI, run the JS output on the VM. Or run `tsx` / `ts-node` directly if you prefer (with the obvious startup-time trade-off).

What about Bun or Deno?

Both work. Install the runtime in your bootstrap script, set up the systemd service to invoke it, deploy as normal. The rest of the stack (Storage, CDN, DNS) is runtime-agnostic.

How do I scale horizontally?

Provision more VMs and front them with the CDN, or with a small Caddy/Nginx load balancer on a separate VM. Your Node app stays stateless; state lives in Postgres / Redis / Storage.

By Stack

Other stacks on Edge

View all stacks →

Ship your Node app on Edge

30-day trial. Any framework, any runtime, any deploy strategy.