Compute

Edge Functions

Write a handler, push to main, and it answers from 38 regions in milliseconds. No servers to size and no regions to pick.

Cold start
4 ms median (demo)
Regions
38
Billing
Per millisecond
Runtimes
Node, Bun, Python, Go

From one file to every region.

Three steps, the same on day one and on day five hundred. Pick a tab to see each one.

Write a handler

functions/orders.ts

Write a handler

Export one function. Lattice gives it the request and your bindings, so the database and queue are already connected when it runs.

Push to deploy

terminal

Push to deploy

Push to main and Lattice builds the function once, then ships it to all 38 regions. Every branch gets its own preview URL.

Watch every request

lattice logs

Watch every request

Logs and traces stream in from every region as they happen, in one view you can search for 30 days.

Built in

Everything a function needs, already wired.

No glue services to rent. These come with every function, in every region.

Read the docs

Bindings

Database, queues and storage arrive as plain objects. No connection strings.

01

Cron

Schedule any handler with one line in lattice.toml.

02

Secrets

Encrypted per environment and rotated without a redeploy.

03

Streaming

Responses stream by default, so first bytes arrive early.

04

Logs and traces

Every request is searchable for 30 days, across regions.

05

Instant rollback

Any earlier deploy goes live again in one click.

06

The same handler on two hosts.

We deployed one checkout function to a single cloud region and to Lattice, then called it from six cities. Demo figures for the template.

MeasureSingle cloud regionLattice Edge

Cold start

280 ms→4 ms

p95 from Sydney

410 ms→38 ms

Monthly bill at 50M requests

$412→$96

Reach it from anything that speaks HTTP.

Every function gets a URL in each region and a typed client for your app.

TypeScript

// app.ts
const lat = new Lattice()
await lat.fn.orders({ sku: "A-12" })

curl

# terminal
curl -X POST 
  https://orders.lattice.run 
  -d '{"sku":"A-12"}'

Python

# worker.py
lat = Lattice()
lat.fn.orders(sku="A-12")

Before you deploy.

Which runtimes are supported?

Node 22, Bun, Python 3.12 and Go 1.23. Pick one per function.

How long can a function run?

Up to 15 minutes per request, and longer with background tasks.

Where does my code run?

In the region closest to each request, or pinned to the regions you choose.

Can I keep data in one country?

Yes. Pin a function and its database to a region group, such as the EU.

What happens when a region fails?

Requests move to the next closest region within seconds.

Is there a free tier?

One million requests and 400,000 GB-seconds every month.

Moving from another host?

Bring your existing handlers. Most move over with no code changes.

Read the migration guide