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

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.

A TypeScript handler that stores an order and queues a receipt

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.

Read the docs →

Everything a function needs, already wired.

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

Read the docs
StepWhat happensBy the numbers

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

World map of Lattice regions

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 this template.

Program comparison
MeasureSingle cloud regionLattice Edge
Cold startSingle cloud region280 ms
p95 from SydneySingle cloud region410 ms
Bill at 50M requestsSingle cloud region$412

Call it

Reach it from anything that speaks HTTP.

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

TypeScript

A typed client, generated on every deploy. Call lat.fn.orders with a plain object and get typed results back.

curl

Any shell, any CI job. POST JSON to orders.lattice.run and the closest region answers.

Python

The same client with idiomatic names. lat.fn.orders(sku="A-12") from any worker or notebook.

Compute layer drawing

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

This is a demo

Explore the website. Payments, registrations, bookings, and form submissions are turned off.