# edge.averlang.dev > An Aver `fn handler(req: HttpRequest) -> HttpResponse` compiled with `aver compile --preset cloudflare` and deployed to Cloudflare Workers. The handler declares `! [Time.unixMs]` as its only runtime effect; routing, response bodies, and headers are pure Aver code. ~100 lines of source. - Source: [tools/edge/app.av](https://github.com/jasisz/aver/blob/main/tools/edge/app.av) - Language: [averlang.dev](https://averlang.dev) - Playground: [averlang.dev/playground](https://averlang.dev/playground/) - Full LLM guide for the language: [averlang.dev/llms.txt](https://averlang.dev/llms.txt) and [averlang.dev/llms-full.txt](https://averlang.dev/llms-full.txt) ## Routes - `GET /` — HTML landing page describing the deployment - `GET /api` — JSON manifesto with the request's `cf-ipcountry` and a server-side `Time.unixMs()` timestamp - `GET /llms.txt` — this file - everything else — 404 (HTML, same look as the landing) ## How the handler is wired `--preset cloudflare` expands to `--target wasm --bridge fetch --pack cloudflare`: a single bundled `app.wasm` (Aver runtime inlined via `wasm-merge`), a `worker.js` ES-module bootstrap that satisfies the `aver/*` host imports against the JS environment (`console.*`, `Date.now()`, `Math.random()`, Fetch API + JSPI for `Http.*`), and a `wrangler.toml`. Cloudflare Workers reject `WebAssembly.instantiate(bytes, …)` from runtime-fetched bytes, so the single-bundle shape is the only viable path; browsers / Deno / Bun can use the thinner `--target edge-wasm` shape with the runtime fetched from `averlang.dev/runtime/`. ## What this URL is *not* This is the dogfood demo, not a service you should depend on. The route shape, manifesto fields, and even the codename of the deployment may change. For programmatic access to anything stable, follow the source link above and check the latest `app.av`.