Skip to main content
meow is standards-first: its baseline global surface is the web platform, not Node. These APIs are available in both strict-web and node-compat modes — the mode only changes whether the Node host surface is layered on top.

The committed global surface

AreaGlobals
Fetchfetch, Request, Response, Headers, FormData
URLsURL, URLSearchParams, URLPattern
EncodingTextEncoder, TextDecoder
Cryptocrypto.subtle (digest, encrypt/decrypt, sign/verify, key ops), crypto.getRandomValues
BinaryBlob
AbortAbortController, AbortSignal, DOMException
TimerssetTimeout, clearTimeout
Consoleconsole.log / info / warn / error / debug
These are typed for your editor automatically — meow sync writes .meow/strict-web.d.ts so the globals resolve with nothing installed.

Examples

const res = await fetch("https://api.example.com/data", {
  headers: { authorization: "Bearer …" },
});
const data = await res.json();

Not present

meow is a runtime, never a browser. The DOM and browser-host globals are intentionally absent — window, document, localStorage, and WebSocket are not part of the surface. The generated type config pins lib: ["esnext"] so those names don’t leak into your editor either.

Crypto & determinism

In strict-web mode, crypto.getRandomValues() draws from the seeded RNG by default — deterministic across runs. crypto.subtle (hashing, signing, key derivation) is unaffected; it’s deterministic by nature. Grant real entropy with --allow-random when you need it.

Serving HTTP

The server side of the web platform — accepting requests and returning Response objects — is the meow:http built-in module:
import { serve } from "meow:http";

serve((req: Request) => new Response("hi"), { port: 3000 });
Beyond the committed surface above, meow also exposes some web APIs transitively — structuredClone, atob/btoa, performance, EventTarget, and streams beyond fetch bodies are present but not yet a committed surface, so they aren’t declared in the strict-web types and may evolve. Build on the committed set for stability.

meow:http

The HTTP server module.

Node.js compatibility

When you need node:fs, process, and CommonJS.