Tyrone's working stack

AI operating stack

The tools I build with, and when you should pick each one: what it is for, what it pairs with, and what it beats. Each entry says how I actually use it.

Starting points

If you are building one of these, start here. The sections below explain each pick.

  • A content site or blog Astro + Cloudflare Pages and Workers + TypeScript
  • A web app with accounts Next.js 16 + Vercel + Neon
  • An app that needs vector search Next.js 16 + Vercel + Supabase
  • Background jobs that never stop Railway + BullMQ + Redis
  • A fast local daemon or CLI Rust + Command-line tools
  • A native Mac or iPhone app Swift + Xcode / TestFlight / Transporter

Coding agents

Where you type the request. Pick one primary agent and one for independent review.

  • Claude Code

    Terminal coding agent and plugin host.

    Pick it when
    You want an agent that runs your tests, drives your tools through the shell, and loads plugins for review and verification.
    Versus
    Codex: use both: a second vendor catches what the first one misses
    Cursor: Cursor keeps you in an editor; Claude Code keeps you in the terminal
    Pairs with and how I use it
    Pairs with
    Build Loop, Agent Rally Point
    How I use it
    Primary since September 2025, after earlier web builders like Replit. I did not record why I switched, so I will not invent a reason.
  • Codex

    Second coding agent from a different model vendor.

    Pick it when
    You want an independent reviewer or a parallel implementer that does not share the first agent's blind spots.
    Versus
    Claude Code: same job, different model family; the disagreement is the value
    Pairs with and how I use it
    Pairs with
    Agent Rally Point
    How I use it
    Added April 2026; agent instruction files appear across my repos that month.
  • Cursor

    Code editor with an agent pane and a multi-vendor model picker.

    Pick it when
    You want to read and edit code yourself with an agent beside you, or try another vendor's model without new setup.
    Versus
    Claude Code: the terminal agent does unattended multi-step work; the editor suits hands-on reading
    Pairs with and how I use it
    How I use it
    Editor with an agent pane, open on the same repos as Claude Code: 29 workspaces from September 2025 to September 2026, most recently the news app and the task queue.

Models

Which model does the work. Route by how hard the task is, not by the role.

  • Anthropic

    Claude models from the hardest judging work down to fast recognition.

    Pick it when
    Default for planning, judging and multi-file code.
    Versus
    OpenAI / Codex: use as the second opinion rather than a replacement
    Pairs with and how I use it
    Pairs with
    Claude Code
  • OpenAI / Codex

    OpenAI models for the Codex agent and embeddings.

    Pick it when
    You want a second vendor for review, or embeddings for search.
    Versus
    Anthropic: different failure modes make cross-vendor review worth it
    Pairs with and how I use it
    Pairs with
    Codex
  • OpenRouter

    One API in front of many model vendors.

    Pick it when
    You want to try or route across many open and hosted models without a separate account for each.
    Versus
    Ollama: OpenRouter is hosted; Ollama keeps data on your machine
    Pairs with and how I use it
    Pairs with
    RossLabs Agent Harness
    How I use it
    Backs 13 of the agent harness's 21 named routes.
  • Ollama

    Local model runner.

    Pick it when
    Data should stay on your machine, or you want free repeat runs for evals.
    Versus
    OpenRouter: local is slower and smaller but private and free per call
    Pairs with and how I use it
    Pairs with
    RossLabs Agent Harness, MLX
    How I use it
    21 local models pulled; the largest is 65 GB.
  • TypeSafe System One (Jev)

    Typed decision model: returns calibrated probabilities over options you declare.

    Pick it when
    A program needs a bounded judgment (classify, route, gate, dedupe) and must read a confidence number, not parse prose.
    Versus
    OpenAI / Codex: on a 77-article test set, Jev matched a small general model on accuracy (86% vs 84%, a statistical tie) with median latency about 10x lower and cost per call about 5x lower; better label definitions moved accuracy more than the model did
    Pairs with and how I use it
    Pairs with
    Atomize AI
    How I use it
    Calibrated typed decisions: a classifier returns probabilities over options I define, not prose. In testing as Atomize's news classifier.
  • Grok (xAI)

    Grok model family from xAI.

    Pick it when
    Worth a trial inside Cursor or via OpenRouter when you want another vendor's coding model.
    Versus
    Anthropic: no head-to-head of mine yet, so no recommendation
    Pairs with and how I use it
    Pairs with
    Cursor, OpenRouter
    How I use it
    Available as a model inside Cursor and through OpenRouter. No recorded use in my routes, history or editor settings as of 2026-09-21.
  • Meta Muse Spark

    Meta's current flagship model, used inside Meta AI.

    Pick it when
    Watching only: it reaches people through Meta's apps, not a developer API I could build on.
    Pairs with and how I use it
    How I use it
    Meta Superintelligence Labs model behind Meta AI, released April 2026. No recorded use in my routes or history; no public developer API found.

Databases

Where the app keeps its data. Both options here are Postgres, so the choice is about what comes with it.

  • Neon

    Serverless Postgres with branching.

    Pick it when
    A new Next.js app on Vercel: install from the Vercel Marketplace and each preview deploy can get its own database branch.
    Versus
    Supabase: Supabase bundles auth, storage and a dashboard; Neon is just the database, which is less to learn
    Pairs with and how I use it
    Pairs with
    Vercel, Next.js 16
    How I use it
    My default for new Next.js work since mid-2026: it bills per use, so each new project does not add another flat monthly plan. Apps already working on Supabase stay there; moving for its own sake is not worth it.
    Free plan: scales to zero after 5 idle minutes, no card needed (checked 2026-09-21).
  • Supabase

    Postgres with auth, storage and pgvector built in.

    Pick it when
    You need vector search next to your relational data: pgvector with HNSW indexes works out of the box.
    Versus
    Neon: Neon also runs pgvector, but Supabase gives you auth and storage in the same project
    Pairs with and how I use it
    Pairs with
    Vercel, Railway
    How I use it
    Atomize runs on it, including its embeddings.
    Free plan: 2 active projects, paused after 7 days with no database activity (checked 2026-09-21).

Hosting

Where the built thing runs.

  • Vercel

    Hosting made by the Next.js team.

    Pick it when
    You ship Next.js and want previews, edge functions and cron with no configuration.
    Versus
    Cloudflare Pages and Workers: Cloudflare is the better fit for static and Astro sites
    Railway: Vercel functions time out; long jobs belong on Railway
    Pairs with and how I use it
    Pairs with
    Next.js 16, Neon
    How I use it
    Hosts Atomize.
    Free Hobby plan, personal and non-commercial use only (checked 2026-09-21).
  • Cloudflare Pages and Workers

    Static hosting plus edge functions on a global network.

    Pick it when
    Mostly static sites, Astro in particular, and small edge functions.
    Versus
    Vercel: Vercel is easier for Next.js; Cloudflare is generous for static traffic
    Pairs with and how I use it
    Pairs with
    Astro
    How I use it
    Hosts rosslabs.ai since June 2026, including its edge functions and scheduled refresh worker.
    Free plan for Pages and Workers (checked 2026-09-21).
  • Railway

    Container hosting for long-running services.

    Pick it when
    Workers and queues that run for minutes or never stop.
    Versus
    Vercel: Vercel is for request-sized work; Railway is for always-on work
    Pairs with and how I use it
    Pairs with
    BullMQ, Redis
    How I use it
    Runs Atomize's background queue workers, because serverless functions cannot host a consumer that never stops.
    No permanent free tier; a 30-day trial (checked 2026-09-21).

Frameworks

What the app is built with.

  • Astro

    Content-first web framework that ships little JavaScript.

    Pick it when
    A site that is mostly pages to read, with interactive islands where needed.
    Versus
    Next.js 16: Next.js suits apps with logged-in users and heavy server logic; Astro suits content sites
    Pairs with and how I use it
    Pairs with
    Cloudflare Pages and Workers
    How I use it
    rosslabs.ai since November 2025, on Cloudflare. My written rule: Next.js on Vercel for web products, Astro for content-forward sites with small interactive islands.
  • Next.js 16

    Full-stack React framework.

    Pick it when
    An app with accounts, API routes and server rendering.
    Versus
    Astro: more machinery than a content site needs
    Pairs with and how I use it
    Pairs with
    Vercel, Neon
    How I use it
    Atomize runs on Next.js 16. My first Next.js app dates from August 2025.
  • LangChain

    Library for composing LLM calls, prompts and retrieval.

    Pick it when
    You chain several model calls with structured output and want tracing integrations.
    Versus
    TypeSafe System One (Jev): for a single bounded decision a typed call is simpler
    Pairs with and how I use it
    Pairs with
    LangSmith
    How I use it
    Atomize's summarization and search pipelines.

Languages

Architecture decides speed first; pick the language for where the code has to run.

  • TypeScript

    The default for anything on the web.

    Pick it when
    Web apps, plugins, MCP servers and most CLI tools.
    Versus
    Python: Python for scripts and data work
    Pairs with and how I use it
    Pairs with
    Astro, Next.js 16
    How I use it
    Every web app, plugin and CLI tool; dominant in every repo started in 2025.
  • Python

    Scripting and data language.

    Pick it when
    Custom scripts, gates, linters and data pipelines where a quick, readable tool beats a compiled one.
    Versus
    TypeScript: TypeScript when it ships to a browser or a Node plugin
    Pairs with and how I use it
    How I use it
    Build Loop gates, linters, data pipelines and knowledge-base tooling, with uv for per-project environments. I have not recorded a reason for Python over another language here; it is the habit, not a measured choice.
  • Rust

    Compiled systems language.

    Pick it when
    Long-lived local daemons and background services, and CLIs that must start instantly and stay lean.
    Versus
    TypeScript: a Node process carries a runtime and memory cost that a daemon pays all day
    Swift: Swift for the app UI; Rust for the headless process behind it
    Pairs with and how I use it
    Pairs with
    RossLabs Agent Harness, Easy Terminal
    How I use it
    Daemons and CLIs since May 2026, chosen because a single static binary needs no runtime or interpreter. The rule I follow: fix the runtime architecture first, since language only buys small multiples on what remains.
  • Swift

    Apple's native language.

    Pick it when
    iOS and macOS apps where native UI, system access and App Store delivery matter.
    Versus
    TypeScript: a web wrapper cannot reach the same system APIs
    Pairs with and how I use it
    Pairs with
    Xcode / TestFlight / Transporter
    How I use it
    Native Mac and iOS apps since February 2026: TruePace, Easy Terminal, Spectra, Secrets Vault, Ambient Agent.

Protocols

How agents and services talk to your tools.

  • Command-line tools

    A command the agent runs in the shell.

    Pick it when
    Default. Scriptable, testable, returns an exit code, and loads no tool schemas into the agent's context.
    Versus
    MCP servers: an MCP server starts once and caches state, a source of stale-state bugs; a CLI resolves fresh each call
    Pairs with and how I use it
    Pairs with
    Claude Code, Codex
    How I use it
    Tried MCP-first in March 2026; Build Loop dropped its MCP surface in June; NavGator (August) and IBR (late August) made the CLI the default and MCP opt-in.
  • MCP servers

    Model Context Protocol server.

    Pick it when
    The host has no shell, or needs a remote, authenticated connector such as mail or a calendar.
    Versus
    Command-line tools: use the CLI whenever the agent has a shell
    Pairs with and how I use it
    Pairs with
    Claude Code
    How I use it
    Kept for remote connectors; my own tools ship MCP as opt-in.
  • OpenTelemetry

    Standard for traces and metrics.

    Pick it when
    You want model calls traced in any backend rather than one vendor's dashboard.
    Versus
    LangSmith: LangSmith is richer for LLM debugging but single-vendor
    Pairs with and how I use it
    Pairs with
    Atomize AI
    How I use it
    Exported from Atomize and the agent harness. Its generative-AI conventions are still in development (checked 2026-09-21).
  • OAuth

    Delegated sign-in standard.

    Pick it when
    Users sign in with an existing account, or an agent acts on a service on their behalf.
    Pairs with and how I use it
    Pairs with
    Atomize AI
    How I use it
    Sign-in and account linking in Atomize.
How the pieces connect: five layers

left to right: the user types at Application, Tools assist, Orchestration decides and routes, Agent Memory persists across sessions, Infrastructure serves the models and hosts what is built

  1. 1

    Application / Interface

    Where a request is typed. The human sits here; every layer to the right is reached through it.

    Claude Code, Codex, Antigravity, Ghostty, Easy Terminal, Cursor, Windsurf (no longer used), Replit (no longer used), Lovable (no longer used)

  2. 2

    Tools

    Capabilities the application calls on to do a job better: check a change, map a dependency, sharpen a prompt, review a design. Invoked, never in charge.

    IBR, NavGator, Prompt Builder, CodeGuard, threat-modeler, Persona Lab, Mockup Gallery, pre-push CI gate, visual-test-suite, rosslabs-lsp, Groundwork, Omniparse, api-registry

  3. 3

    Orchestration

    Decides what work happens, in what order, and who owns it. Plans and routes; does not itself write code.

    Build Loop, Agent Rally Point, Operations Center, AI Assistant router, RossLabs Agent Harness, Agent Rally Watcher, agent-doe-engine, Local Smartz, Stratagem

  4. 4

    Agent Memory

    What every layer to the left reads at session start and writes at session end. Durable operating context, not storage.

    Personal LLM Wiki, Obsidian, build-loop-memory, build-loop-global-memory, Bookmark, Claude auto-memory, Research plugin

  5. 5

    Infrastructure

    What serves the models and hosts what gets built. Segmented into inference, database, middleware and app hosting.

    LLM / Inference: Anthropic, OpenAI / Codex, OpenRouter, Groq, Ollama, MLX, TypeSafe System One (Jev)

    Database: Neon, Supabase, Cloudflare R2

    Middleware: BullMQ, Redis, Pipedream Connect

    App hosting: Vercel, Cloudflare Pages and Workers, Railway, GitHub + Actions, Xcode / TestFlight / Transporter, OrbStack, Secrets Vault, Tailscale

Reference

The full record behind the guide, closed until you need it.

Quick triggers 12
  • About to change code and need to know what else breaks: NavGator

    Not IBR: IBR checks the rendered UI, not the dependency graph

  • Changed a UI and need to confirm it behaves in a browser: IBR

    Not visual-test-suite: that is regression across URLs, not one build's behaviour

  • Have several HTML mockups and need to pick one: Mockup Gallery

  • About to push to a repo with GitHub Actions: pre-push CI gate

  • Multi-step code change in one repo: Build Loop

    Not AI Assistant router: the router classifies and dispatches one prompt; it does not run a build

  • Another agent is active in the same checkout: Agent Rally Point

    Not Operations Center: Operations Center is the cross-repo queue; Rally is the per-checkout claim surface

  • Need a model call with no API cost, or data staying on the machine: RossLabs Agent Harness

  • Need to audit or judge super-complex work: Anthropic

  • Need a diff reviewed for security, or a threat model for an agentic system: CodeGuard

  • Need an API signature verified before writing code: api-registry

  • Need a screenshot or guided marketing sequence of a Mac app: Spectra

    Not Showcase: deprecated 2026-04-21 and superseded by Spectra

  • Need to optimise one metric across several variables at once: agent-doe-engine

Every connection 34
  • Claude Code hosts Build Loop
  • Claude Code hosts Agent Rally Point
  • Operations Center dispatches Build Loop
  • Operations Center dispatches Agent Rally Point
  • Agent Rally Watcher companion of Agent Rally Point
  • AI Assistant router dispatches Build Loop
  • Build Loop dispatches Prompt Builder
  • Build Loop verifies with NavGator
  • Build Loop verifies with IBR. Phase 4 Review-B on any UI target
  • Build Loop writes build-loop-memory
  • Build Loop writes build-loop-global-memory
  • RossLabs Agent Harness routes model via Ollama
  • RossLabs Agent Harness routes model via OpenRouter
  • RossLabs Agent Harness routes model via Anthropic
  • pre-push CI gate verifies with GitHub + Actions. before any push to a repo with Actions
  • Easy Terminal hosts Claude Code
  • Easy Terminal hosts Codex
  • ptyd backed by Easy Terminal
  • Atomize AI routes model via Groq
  • Atomize AI backed by Supabase
  • Atomize AI ships to Vercel
  • Atomize AI ships to Railway
  • BullMQ backed by Redis
  • Spectra supersedes Showcase
  • Claude Code reads Claude auto-memory. session start
  • Claude Code reads Bookmark. session start
  • Claude Code reads Personal LLM Wiki
  • Codex verifies with Claude Code
  • Obsidian reads Personal LLM Wiki
  • api-registry reads Claude Code
  • Atomize AI calls TypeSafe System One (Jev). classifying news articles into subcategories
  • rosslabs.ai deploys to Cloudflare Pages and Workers
  • rosslabs.ai built with Astro
  • Atomize AI built with Next.js 16
Model tiers 7
  • experimental/restricted frontier: mythos. experimental, restricted
  • ultra-frontier: opus, fable, gpt-5.6-sol. judge, super-complex
  • frontier: opus, gpt-5.5. orchestration default
  • balanced workhorse: sonnet, gpt-5.6-terra, qwen3-coder-30b. execution
  • efficient near-frontier: haiku, gpt-5.6-luna, gpt-5.4-mini. recognition, bounded
  • utility/nano/edge: gpt-5.4-nano. utility
  • specialist infrastructure: text-embedding-3-large, text-embedding-3-small, omni-moderation, gpt-realtime, gpt-image-1. off-ladder specialist
Local models 12
  • gpt-oss:120b65.29 GB
  • qwen2.5-coder:32b-instruct-q5_K_M23.26 GB
  • qwen3-coder:30b18.56 GB
  • gemma4:26b17.99 GB
  • devstral-small-2:24b15.18 GB
  • gpt-oss:20b13.79 GB
  • phi4:14b9.1 GB
  • qwen3:8b-q4_K_M5.23 GB
  • qwen2.5-coder:7b4.68 GB
  • llama3.2:3b2.02 GB
  • mlx-community/Llama-3.2-3B-Instruct-4bit2 GB
  • tinyllama0.64 GB
Which model handles which job 21
  • default: qwen3:8b-q4_K_M via Ollama. Portable smoke baseline, kept small so first run never waits on a large pull
  • coding/read: qwen3-coder:30b via Ollama. Top-evidenced local coder among pulled models
  • coding/write: qwen3-coder:30b via Ollama. Top-evidenced local coder among pulled models
  • deepthink: claude-opus-4-8 via Anthropic. Deep reasoning
  • think: claude-sonnet-5 via Anthropic. General reasoning
  • value-think: deepseek/deepseek-v4-pro via OpenRouter. Reasoning at a lower price point
  • code-cloud: moonshotai/kimi-k2.7-code via OpenRouter. Cloud coding when local weights are not enough
  • code-repo: mistralai/devstral-2512 via OpenRouter. Repository-scale code work
  • code-read: qwen/qwen3-coder via OpenRouter. Cloud code comprehension
  • long-context: google/gemini-3.1-pro-preview via OpenRouter. Long-window reads
  • vision: qwen/qwen3-vl-235b-a22b-instruct via OpenRouter. Image input
  • cheap: google/gemini-2.5-flash-lite via OpenRouter. Low-cost lane, speed
  • cheap-flash: deepseek/deepseek-v4-flash via OpenRouter. Low-cost lane, speed
  • cheap-think: z-ai/glm-4.7-flash via OpenRouter. Low-cost lane, reasoning
  • cheap-reason: openai/gpt-oss-120b via OpenRouter. Low-cost lane, reasoning
  • extract: google/gemma-4-26b-a4b-it via OpenRouter. Structured extraction
  • experiment: nvidia/nemotron-3-super-120b-a12b via OpenRouter. Unpinned lane for trying a new model without touching the others
  • gemma: google/gemma-4-31b-it via OpenRouter. Named lane for head-to-head comparison
  • glm: z-ai/glm-5.2 via OpenRouter. Named lane for head-to-head comparison
  • minimax: minimax/minimax-m3 via OpenRouter. Named lane for head-to-head comparison
  • or-think: qwen/qwen3.7-plus via OpenRouter. Named lane for head-to-head comparison
Everything installed 106

Knowledge

  • Personal LLM Wiki
  • Obsidian
  • build-loop-memory
  • build-loop-global-memory
  • Claude auto-memory
  • Bookmark
  • api-registry
  • Research plugin
  • Omniparse
  • obsidian-vault-search
  • Notion

Model provider

  • Anthropic
  • OpenAI / Codex
  • OpenRouter
  • Groq
  • Ollama
  • MLX
  • TypeSafe System One (Jev)
  • Grok (xAI) (watching)
  • Meta Muse Spark (watching)

Orchestration

  • Build Loop
  • Agent Rally Point
  • Operations Center
  • AI Assistant router
  • RossLabs Agent Harness
  • Agent Rally Watcher
  • agent-doe-engine
  • Local Smartz
  • Stratagem

Verification

  • IBR
  • NavGator
  • CodeGuard
  • threat-modeler
  • Persona Lab
  • Mockup Gallery
  • pre-push CI gate
  • visual-test-suite
  • rosslabs-lsp

Delivery

  • Vercel
  • Railway
  • GitHub + Actions
  • Xcode / TestFlight / Transporter
  • OrbStack
  • Resend
  • Brevo
  • Cloudflare Pages and Workers

Own products

  • Atomize AI
  • Prompt Test Lab
  • prompt-model-benchmark-lab
  • Agent Astronomer
  • rosslabs.ai
  • replit-migrate
  • docx-builder / pptx-builder
  • claude-code-debugger

Coding agent

  • Claude Code
  • Codex
  • Cursor
  • Windsurf (no longer used)
  • Antigravity
  • Replit (no longer used)
  • Lovable (no longer used)

Design & product

  • Groundwork
  • Prompt Builder
  • Pyramid Principle
  • tyrone-writing-system
  • style-calibrator
  • ui-guidance
  • Figma-free stack: Canva, Framer

Capture & media

  • Granola
  • Wispr Flow
  • Spectra
  • Showcase (no longer used)
  • Descript / Loom / Snagit

Data

  • Neon
  • Supabase
  • Redis
  • BullMQ
  • Cloudflare R2

General AI

  • ChatGPT
  • Perplexity
  • Comet
  • Manus (tried, not adopted)
  • Claude desktop

Frameworks

  • LangChain
  • LangGraph / DeepAgents
  • Next.js 16
  • Astro

Languages

  • TypeScript
  • Python
  • Rust
  • Swift

Terminal

  • Ghostty
  • Easy Terminal
  • ptyd
  • screen-extractor

Integration

  • Pipedream Connect
  • Composio (tried, not adopted)
  • MCP servers

Observability

  • LangSmith
  • OpenTelemetry
  • Sentry

Security

  • Secrets Vault
  • Tailscale
  • Little Snitch

Protocols

  • Command-line tools
  • OAuth

Tyrone Ross · Verified against live config on September 21, 2026.