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 post →A 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 post →Confirm-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 post →MLX 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 post →Vanilla 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 post →Streaming 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 post →Our 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 post →Search 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 post →v0.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 post →