Skip to content

Serverless providers ​

The admin API is server/core/handler.ts. Each file in server/adapters/ is a thin wrapper. Scoped auth, GitHub writes, and stats behave the same on every host.

Free tiers, roughly ​

Numbers below are the vendors' published free allowances. Check them before you rely on one.

ProviderFree tierEntry
Cloudflare WorkersFree request allowance, and custom domains on the free planserver/adapters/cloudflare.ts and worker/
VercelFree serverless and edge functionsserver/adapters/vercel.ts and api/admin.ts
Netlify125,000 function invocations per site per month, 100 GB bandwidthserver/adapters/netlify.ts and netlify/functions/admin.ts
AWS Lambda1M requests and 3.2M GB-seconds per monthserver/adapters/aws-lambda.ts
Azure Functions1M requests per month on the consumption planserver/adapters/azure.ts

The admin page and the API have to share a registrable domain. *.workers.dev, *.vercel.app, and *.netlify.app are cross-site. Safari blocks the session cookie, and every call comes back 401. Put the API on something like api.yourdomain.com.

Smoke test ​

bash
bun worker/dev-server.ts
curl -s http://localhost:8787/me
# → {"error":"unauthorized"}

That 401 is what you want before anyone is logged in. The per-host notes are the next pages.

Open-source white-label, made with ❤️ by Massimo De Luisa