The Nimbus8 blog.
Runtime deep-dives, model picks, and the reasoning behind each module. Written by the people shipping the app.
Picking a model that actually runs on your iPhone.
A look at the capability manifest, memory budgets, and why a quantized 3B reliably beats a streamed 70B for everyday chat on a phone.
Read the postA diff card on a 5.8-inch screen.
How we ported GitHub-style diff UI to iOS — gutter rendering, hunk headers, and the one-tap "Open PR" flow that keeps your credentials local.
Read the postConfirm-first agents, by construction.
Why every destructive action in Ashe's hands goes through a permission gate, and how we avoided the "agent that overwrote everything" anti-pattern.
Read the postMLX vs. GGUF on an A17 Pro.
We benchmarked eight open models across both runtimes on a current-gen iPhone. Here's the tokens-per-second story, plus where each runtime genuinely wins.
Read the postVanilla Wood — a theme we could live with for a year.
One palette across all modules. Why we resisted the per-module color temptation, and what a warm-paper base did to the app's perceived weight.
Read the postStreaming replies without the keyboard jitter.
Gale's typewriter effect is handcrafted. Here's how we tune character cadence, whitespace rhythm, and UIKit text layout to avoid the stutter that cheapens most mobile chat apps.
Read the postOur security baseline, in public.
Sandbox, Keychain, network off-switch by default, and the entitlements we deliberately don't ask for. A tour of the app's security posture in a language humans can read.
Read the postSearch that cites what you already have.
Mist fuses local notes, on-device files, and optional web results. How we rank them, how we render citations, and why the local corpus wins more often than you'd expect.
Read the postv0.14 — Stratus enters beta, Gale gets vision.
Stratus now ships as a beta module. Gale picks up first-class image attachments, routed through the capability manifest. Full notes and the model catalog inside.
Read the post