Case study
Building Solaise
Solaise is a voice assistant for the Mac that runs your day: calendar, messages, family, trips, money, news and notes. It was built in about four weeks, from 26 September 2026, by me, as product owner, working with Claude Code as an engineering partner. This is how it was made, and what we learned along the way.
The goal
Most assistants send your life to the cloud. I wanted one that keeps it on my Mac: one that understands everyday speech, does real jobs end to end, and never acts without asking. It had to be something I’d use every day, not a demo.
Four rules we never broke
-
Your data stays yours.
The language model and speech recognition run on the Mac. Every request that leaves it passes a privacy check, and personal data is never written into the code or its history.
-
Send this?Don’t sendSend
Nothing happens without your yes.
Messages, events, reminders and bookings are read back first. When Solaise isn’t sure it’s your voice, it asks for Touch ID.
-
Doesn’t ship
Measure, don’t guess.
Every change that affects how Solaise understands people is tested against sets of real conversations before it’s kept. If a change makes any set worse, it doesn’t ship.
-
I can’t do that yet.Feature requests+
Be honest about limits.
When Solaise can’t do something, it says so and adds it to a feature list. It doesn’t pretend.
How it was built
-
A written plan first.
A product requirements document and a running log of decisions (more than 110 so far), so every choice has a reason and a date.
-
Test first, every time.
Each behaviour starts as a failing test, then the code that makes it pass. The project now has over 2,300 automated tests.
-
Real conversations as the yardstick.
Live tests at home, with the logs reviewed afterwards, turned into conversation sets the assistant is measured against on every change.
-
Small steps.
One feature at a time, each built, measured and pushed before the next.
-
I make the calls.
Claude Code proposes the options, with a recommendation and the evidence behind it. As product owner, I make the decisions on privacy, behaviour and scope.
Hard problems along the way
-
The speech engine disappeared.
A macOS update removed the built-in speech model Solaise relied on, so listening was moved to an on-device engine that installs once and needs no network.
-
Talking with the TV on.
Solaise had to hear its owner over its own voice and the room: echo removal, a voiceprint, and rules for when to listen and when to let something go.
-
ABCD
A small model that has to be right.
A model that fits on a laptop makes different mistakes from a large one. We compared several, measured them on the same conversations, then taught the chosen one Solaise’s own jobs with LoRA fine-tuning, partly on the Mac and partly on cloud GPUs. That training used only synthetic, non-personal examples: never your conversations, messages or details.
-
In the backgroundFree to talkUpdate ready
Speed.
Some jobs took too long, such as reading a week of family messages. They now run in the background, Solaise stays free to talk, and it tells you when the update is ready.
-
4 of 77 of 7Simple filter
Getting it right before getting it fast.
Family Hub at first found only four of seven events in a realistic test. A simple filter before the model, measured on the same test, brought it to seven of seven with no wrong offers.
What we’ve learned
-
Right action 9B89% 4B76% Time to first answer 9B3.4 s 4B0.4 s
A bigger model is more accurate, but slower to answer.
On the same 71 test conversations, a model with 9 billion parameters picked the right action 89% of the time, against 76% for one with 4 billion. That’s 13 points better, but it took about 3 seconds longer to start answering on a quiet Mac (3.4 s against 0.4 s), and about 5 seconds longer with everyday apps open. In a spoken conversation, that wait is hard to live with, so we chose the smaller, faster model and worked on its accuracy instead.
-
Before Fetch 46 sRead about 4 min Now Free to talk while it reads
Never leave people waiting in silence.
In one live test, catching up on 102 new family messages took 46 seconds just to fetch them, then about four minutes to read them. Any job that kept Solaise busy for more than about five seconds felt as if it had stopped working. What worked better was doing long jobs in the background: Solaise says what it’s doing, stays free to talk, and tells you when the update is ready. If a quick answer takes longer than usual, it says it’s thinking.
-
6 of 19 well-known companies with an official MCP server
Few companies offer an official way in yet.
An official MCP server lets an assistant like Solaise use a company’s service directly, with the company’s own sign-in and only the data a request needs. When we checked the official MCP Registry on 6 October 2026, it listed almost 40,000 servers, yet only 6 of the 19 well-known companies we looked for had an official one. So for now, when there isn’t one, Solaise says so and adds it to the feature list. We think this is an opportunity companies are slow to see: an official server lets them look after their own data and core service, and meet people through assistants as well as through their own apps and websites.
What it does today
Calendar and reminders, WhatsApp messages, Family Hub, a trip planner, investments, Bills Optimiser, daily stories, live sports, notes and lists, meeting notes, news and weather, and the Command Centre to set it all up. Everything listed is built and in testing on the Mac.
By the numbers
- About 4 weeksfrom first commit
- Over 1,000commits
- Over 2,300automated tests
- 25sets of real conversations used to measure every change
- More than 110recorded product decisions
- 5live test sessions in a single day at the busiest point
What’s next
Next, Solaise goes to friends and family for testing, to find out where it really helps. Then comes the public release.
Later, Solaise may ask whether you’d like to share a conversation to help make it better. If it does, it will remove personal details automatically and show you exactly what would be sent. Nothing is shared unless you look it over and say yes.
