V8 isolates. WASM. Python via Pyodide. Each function deploys to all 14 regions in seconds, runs on the metal of every PoP, and starts in less time than a TLS handshake.
import { Resize } from "@arveon/edge"; export default async handler(req: Request) { const { searchParams } = new URL(req.url); const w = +searchParams.get("w") ?? 800; const origin = await fetch( "https://cdn.arveon.dev/" + searchParams.get("src") ); return new Response( await Resize(origin.body, { width: w, format: "avif" }), { headers: { "content-type": "image/avif" } } ); }
V8 isolates start in low single-digit milliseconds. We measure it from outside the platform every minute and post it on the status page.
Code runs at every Arveon PoP. The user closest to Helsinki and the user closest to Tokyo hit the same code revision, ~10 ms from their door.
First-class TypeScript with Web APIs (fetch, streams, crypto). WASI for WASM. Pyodide-based Python with import-on-demand.
Replicated KV with strong reads on the local PoP, eventual elsewhere. Queues with at-least-once delivery and replay.
Logs streamed in 200 ms. Distributed traces with W3C trace context. Metrics scraped by your existing Prometheus.
€0.30 per million requests. 50 ms CPU each, included. Beyond that, €1.20 per CPU-hour. No request count tier, no surprise overages.
arv fn deploy ships to fourteen regions.$ arv fn deploy --name image-resize ./src/handler.ts bundling ✓ 4.2 kB (gzipped) uploading ✓ to global-control-plane warming ✓ 14 regions · p99 cold-start: 3.6ms ✓ live at https://image-resize.arveon.dev (1.4s) $ arv fn logs image-resize --tail 2026-04-29T13:42:11.224Z eu-hel-1 INFO GET /800x600.jpg → 200 (12ms) 2026-04-29T13:42:11.231Z eu-fra-1 INFO GET /400x400.jpg → 200 (9ms) 2026-04-29T13:42:11.244Z ap-tyo-1 INFO GET /1600x900.jpg → 200 (18ms) …
"Our entire image pipeline is now 184 lines of TypeScript running at the edge. We deleted three Kubernetes services."