Mirror Mirror App
An AI reflection journal that helps you understand your own unclear thoughts.
More input, less reflection
People are confronted with more information and more impulses every day, and the conflicts they live through no longer get reflected on. What is left is restlessness, nervousness, anxiety, and worse performance at work.
Mirror Mirror asks open questions, one at a time, and answering them in writing lets you follow your own train of thought.
In closed beta it is used by people from their thirties to their sixties. Some open it in a hard moment, others on a quiet afternoon with nothing wrong.
The interface is built like a room with a mirror. The home screen is the mirror, holding the day's question. The tab bar is a few objects set on a surface: a flower, a compass, a candle, a framed photo. The AI speaks in italic, in the margin, then leaves.
Four quiet places
Today holds one question. In Reflection you write, and can summon Mirror to go deeper. Insights keeps the sentences you confirm as yours. Weekly is a look back.
One task, and no streaks
The app has one main task, and that is writing. Between opening it and the first word there is nothing to choose: no category, no template, no mood icon. Tags, search and statistics are gone, because each of them hands the user a decision at the moment they most need a blank page.
There is no streak counter and no reminder. Once reflection becomes a task to complete, people write for the counter, and that reflection is worth nothing to them. What I bet on is the moment right after: a card that keeps the one line you arrived at. It is the least proven decision in the product, and the first thing the beta is there to test.
An AI that only asks
Habe ich heute meine Grenzen gewahrt?
Habe ich heute meine Grenzen gewahrt?
Was steckt unter diesem Gefühl?
Wovor schützt dich dieses Ja?
Lass es erst einmal sinken.
Jedes Ja, das mich müde macht, ist ein Nein zu mir.
Einsichten
Sätze, die Mirror aus deinen Reflexionen für dich destilliert
Jedes Ja, das mich müde macht, ist ein Nein zu mir.
Heute
Ich gehe in Tiefe, nicht in Breite.
Letzte Woche
Zweifel ist Teil der Arbeit, nicht ihr Urteil.
Vor zwei Wochen
A full pass through the shipped build. The app ships in German.
A model tier buys understanding, rules have to come from code
How I know it behaves
A conversation has no correct answer, so I could not test for one. Instead I wrote down what a good move looks like in each situation, and what is forbidden there. Thirteen protocols, each one written after a real session that went wrong.
The checks are pass or fail: does the reply hand you a verdict, does it leak the model's reasoning, does it quote words you never wrote. The harness runs the same detector code as production, and a prompt change ships only if it beats the last recorded run.
Then I attacked the checks themselves. Twenty cases against the most important one found seventeen misjudgements. No detector ships without adversarial cases now.
The product is private, so every number here comes from my own scenarios.
One tokenised system
Foundations through to components, so every screen stays this quiet by default.
What I took from it
The hardest part was subtraction. Every default, mine and the model's, adds more; the work was taking things away.
Building it myself changed the design. Decisions that would have been a ticket became a ten-minute experiment, and the ones that were expensive to build showed their price before I fell in love with them.