AI coding guides & resources
Engineering decisions, tutorials, and video guides from the OTF team.

Expo app kit vs building from a blank React Native project
Compare the Fitness Kit's features and license with a blank React Native or Expo project before buying the $99 kit.
8 min read
SaaS Dashboard template for a project-ops app: screens and stack before you buy
Use this project-ops screen and stack checklist before buying the $99 SaaS dashboard kit.
8 min read
Choose the $9 Aura landing for your SaaS page
Compare Aura’s $9 SaaS marketing page with the $99 SaaS Dashboard kit to choose the source that matches your launch scope.
8 min read
One client app on the $99 kit license, or the Team seat
See whether one $99 OTF kit license covers an Expo app for one paying client, and when five-seat Team fits more developers or client projects.
7 min read
Does Ember-1 lower cost per finished coding task?
A research-preview evaluation of Ember-1, Fireworks’ token claim, and how to measure cost per finished coding task.
7 min read
Buy the Arcade kit when the product is a games store
Buy the $99 Arcade kit when this quarter's product is a games store. SaaS Dashboard and Fitness are the other live kits.
8 min read
Re-measure one fixed task before you trust a harness savings claim
Cursor reported a 7% token-cost cut for its users. Re-measure one fixed task before you book that figure as your bill.
8 min read
Pin a short skill allowlist instead of shopping the registry
Nearly half of public skills were installed once. Pin a short allowlist in the repo and write the private rule only your team knows.
8 min read
Delete one tenant's files without scanning a shared Blob store
One Blob store per tenant is worth it when delete needs a credential boundary. A pathname prefix is enough when your server owns every path.
7 min read
Write the outbox row in the same Postgres transaction as the business row
A Next.js route on Supabase Postgres writes the outbox row in the same transaction as the business row, then a relay publishes it.
8 min read
An owned API stores idempotency keys in Postgres and replays the first response
A Next.js route on Supabase Postgres claims an idempotency key, stores the first response, and replays it when the same attempt arrives again.
7 min read
When to cut traffic to a warm standby instead of a rolling replace
Decide when to cut all traffic to a warm standby on an owned backend, and when a rolling replace should stay the default.
6 min read
Cursor Automations last mile: Security Review plus Rollouts, not hope-CI
Enable Security Review on ready PRs and Rollouts for per-env deploy health—keep Bugbot for style, and do not confuse this with Expo OTA.
7 min read
Wire TanStack AI agents to OAuth-protected MCP via Vercel Connect
Use connectMCPTransport and getConsentChallenge so MCP tokens issue at your owned route—not a pasted env secret to rotate.
7 min read
Queue backpressure on an owned backend: refuse the burst before the pool melts
Cap in-flight work and queue wait on your owned API so agent bursts get 429/503 with Retry-After instead of melting the DB pool.
8 min read
Circuit breakers on an owned backend: fail fast when the AI vendor fails
Open a circuit when a downstream AI or vendor dependency fails so your owned API fails fast with fallback instead of cascading timeouts.
8 min read
Park failed jobs in a DLQ with reason, snapshot, and replay — not silent drop
Exhausted retries belong in a dead-letter queue with reason, payload snapshot, and a human/agent replay path — not silent drop or infinite loops.
8 min read
Fail health, drain in-flight requests, then exit — not kill -9 mid-request
On an owned backend, handle SIGTERM by failing health, draining in-flight work under a deadline, then exiting — not kill -9 mid-request.
8 min read
Rotate production secrets with dual-key overlap, not an edit to .env
Rotate owned-backend production secrets with a versioned store, dual-read overlap, then an explicit revoke — not edit .env and hope the next deploy picks it up.
7 min read
Rate-limit your owned API at the edge and in the app, not only in memory
Protect an owned production API with coarse edge/WAF limits plus identity-aware app middleware on shared Redis, and advertise quota with RateLimit headers.
7 min read
Drives for Vercel Sandbox: persist the workspace, not the run
Drive.getOrCreate + mount in Sandbox.create; what belongs on a Drive vs ephemeral disk; when to use read-write vs concurrent read-only snapshots.
8 min read
Pin GPT-6 Sol and Luna in your agent config, not your chat window
Pin gpt-6-sol vs gpt-6-luna in agent config with reasoning.effort and Responses tools. Cost matrix and failover next to each pin — not a chat-picker default.
6 min read
GPT-Live 1 on AI Gateway: own delegation-created and the billing hop
Full-duplex voice stays up while your app handles delegation-created, pins a text model on Gateway, and splits voice vs delegated billing.
6 min read
Python Workers GA: port FastAPI or Hyperdrive without to_js glue
Python is first-class on Cloudflare Workers. Pick FastAPI, Hyperdrive, or LangChain+Workers AI first — and commit the Wrangler bindings in-repo.
8 min read