← knowledge.oriz.in

AI split — Puter.js (browser) + Cloudflare Workers AI (server)

decision aiputercloudflare-workers-aisurface-splitllm

AI split — Puter.js (browser) + Cloudflare Workers AI (server)

Decision

The family ships two AI providers, picked by surface:

Surface Service Why this surface
Browser (chat in oriz-me, on-page assistants, any client-side AI feature) Puter.js User-pays free tier; we ship no API key, the family pays nothing per request
Server (inside the umbrella Hono Worker at api.oriz.in) Cloudflare Workers AI Native Worker binding, zero-egress within Cloudflare, 10K neurons / day free, no card

OpenRouter remains rejected (already locked); Firebase AI Logic (Gemini) is available via the Firebase basics skill if a feature truly needs Google's specific model, but is not the default.

Why

A single AI provider can't cover both surfaces well:

Splitting by surface keeps each free tier reserved for its intended workload, so neither cliff hits prematurely. Cloudflare Workers AI also fits the family's stack-cohesion posture (same as queue-cloudflare-native.md — same account, same wrangler.toml, same no-card billing surface).

Implications

Cross-refs