Studio AM’s AI line (Second Brain, Better Writing, Pocket Lingo, Daily Vibe) began on the roughly three-billion-parameter foundation model available through Apple’s Foundation Models framework. Current versions may also use a downloaded on-device model on other supported hardware, and Pocket Lingo can use an enhanced local model for more languages. None sends user text to a Studio AM AI server. This post is the field report: what a small on-device model is good at, where it fails, and the design patterns that turned it into four shippable products.

Why on-device at all

Three reasons, in honest order.

AI privacy becomes architecture instead of policy. A mood journal, a notes app, a grammar coach for sensitive email. These hold exactly the data people least want on an AI server. When inference happens on the phone, the model does not need to send that input to Studio AM for processing. Each app still documents separate paths such as optional private sync, purchases, downloads, exports, and external links.

Inference is free. Every cloud AI app carries a per-request cost that quietly shapes its product: usage meters, message caps, aggressive upsells. On-device inference costs us nothing per request, so nothing has to be priced per message. That changes the product, not only the margin.

Offline is where the value is. A translator is most needed on a plane or in a metro tunnel. A notes app should answer at a cabin with no signal. “Works in airplane mode” is not a checkbox for us; for Pocket Lingo it is the entire wedge.

What a ~3B model is actually good at

The honest capability map, from a year of building against it:

Good: transforming text that is already in front of it. Proofreading, rephrasing, tone shifts, translation, summarizing a note, splitting a paragraph into discrete ideas, tagging entities, answering a question when the answer is in the provided context. This covers more product surface than you would guess.

Bad: anything that leans on the model’s own knowledge or long-horizon reasoning. Open-ended chat, world facts, multi-step planning, long documents. A 3B model asked to free-associate will hallucinate fluently, and no prompt fixes that.

The design conclusion: ship verbs, not conversations. Every feature in our line is a narrow verb (fix this, translate this, recall this, reflect on this) where the model transforms supplied text instead of generating from its own knowledge.

The patterns that made it shippable

1. Guided or validated structured generation. The Foundation Models framework lets you declare a Swift type with @Generable and get structured output: the framework constrains decoding so the model fills fields instead of writing prose you have to untangle. Downloaded-model paths request a defined JSON shape, decode it, validate it, and can reject or retry malformed output. If you take one thing from this post: constrain and validate the output whenever the job has a known schema.

2. Ground it, and let it refuse. Second Brain’s whole product is a pipeline that gives a hallucination nowhere to land: notes are split on-device into small tagged ideas (“atoms”); a question retrieves candidate atoms by embedding similarity plus a keyword boost; the model reranks them as a strict relevance filter; and the answer is generated only from what survives, with citations back to the source notes. When retrieval comes back empty, the app says “you have nothing saved about that” instead of improvising. In a memory app, refusing well is the feature. Confident wrong answers about your own life are the failure that ends trust permanently.

3. Protect user input before background AI transforms it. In capture-heavy workflows, persist or otherwise preserve the supplied material before an asynchronous model pass can fail. If the model is canceled, crashes, or produces nonsense, the user’s source should remain recoverable. On-device models can be interrupted by memory pressure; the data path has to assume it.

4. Design the latency, don’t hide it. A 3B model on a phone is fast but not instant. We stream tokens where the output is text the user reads (corrections, reflections), and run background passes where it isn’t (atomizing notes after capture, not during). The rule: the user waits only for work they explicitly asked for, never for bookkeeping.

5. Small model, curated data. Where the model is weak, ship editorial content next to it. Pocket Lingo pairs translation with a hand-verified phrasebook, emergency phrases, and etiquette notes: useful even if the user never invokes the AI, and a floor under quality that a small model alone can’t guarantee.

What didn’t work

Open-ended “ask me anything” chat died in prototype. Without grounding, a small model’s fluent wrongness is worse than no feature. Long-context summarization (whole journals, long documents) exceeded what we could do well; we process at the level of atoms and entries instead. And letting the model decide whether it knew something was hopeless until we moved that decision out of generation and into retrieval: the pipeline decides whether an answer exists; the model only phrases it.

The economics, plainly

Zero marginal inference cost means none of these apps has to charge per message. Their purchase models have changed since launch: the current versions use monthly and yearly subscriptions for new work, eligible new subscribers may receive a 3-day trial, and previously saved user data remains available after a subscription ends. The linked app pages show the current plan and archive details for each product.

The four apps are collected at studioam.art/ai. If you’re building on the Foundation Models framework and want to compare notes: contact@studioam.art. We read everything.