· Updated 2 September 2026
How PortaID builds small systems that solve the whole problem

Most software fails politely. It does a visible piece of the job and leaves the rest in the user's lap: the reminder without the sitting, the model without the workflow, the dashboard without a decision. It looks complete in a screenshot. In a week of real use it becomes another object to manage.
PortaID is a small independent lab. We do not have a theatre of products. We have a bias: build the smallest system that solves the whole problem. Small is about scope and moving parts. Whole is about the job as it actually concludes, not as it appears in a pitch.
Whole is a finishing line, not a feature list
Take a prayer practice. The job is not "send a notification." The job is: remember at a human time, do the recitation or sit, know that it happened, and come back tomorrow without a scolding. A reminder app that dumps you into the home screen has not finished. A meditation timer that stops when the phone sleeps has not finished. A streak that breaks on a travel day has actively un-finished the job by adding shame.
Mantra Time is our attempt to cover that finishing line: reminders, mala counting, a timer that stays honest when the screen is off, a private history. It is still a small system. It is not a social network for devotion. The "whole problem" is the practice, not the market category of "wellness engagement."
The same test applies to client work and internal tools. If the user still needs a spreadsheet, a second login, and a person who remembers the exception cases, you shipped a component. Components are fine when you say they are components. They are a failure when you call them a product.
Small means fewer kinds of moving parts
Whole does not mean big. Whole with extra surfaces is how products become loud.
A small system has a short list of objects. In Mantra Time those objects are roughly: a reminder, a session, a count, a backup you might never use. That backup, when you choose it, is account-optional and encrypted, restored with a recovery key you hold. History rows are a mantra name, a date, and a count. Stats can show a local rhythm of days, this week's malas and minutes, and seven-day completed sessions — on the phone, not on a leaderboard. There is no feed, no ranking, no public identity. Every extra object would need care, copy, edge cases, and a reason to exist on a tired evening.
In applied AI work the same discipline matters. A model in a notebook is not a system. A system has a source of truth, a place the output goes, a person who can override it, and a way to see when it was wrong. That can still be small: one inbox, one draft, one approval. Applied AI that ships in real workflows is the companion argument.
Cleverness likes to add a second brain, a copilot pane, a chat that can do anything. Anything is not a finishing line. It is an invitation to wander.
The user's day is the spec
We do not start with a category. We start with a day that already exists. For practice software that means mornings that slip, phones that sleep, households that are not silent, people who will not perform spirituality for a graph. For a business workflow it means the handoff that already happens on WhatsApp, the exception that already lives in someone's head, the approval that already requires a named human.
If the system ignores those facts, the user will rebuild them around it. Then you have two systems, and the old one will win because it knows the exceptions.
This is why we would rather ship a narrow, complete path than a wide, leaky one. A complete path can be felt in a week. A leaky platform can only be demoed.
What we refuse so the whole stays whole
A few refusals show up again and again:
- No gamification where the job is attention or reverence. Counting japa honestly is a product requirement, not a blog preference.
- No account where the job can live on the device. Accounts are a whole problem of their own: recovery, export, deletion, trust.
- No "phase two" that is actually the job. If the first release cannot finish a real instance of the work, it is not a first release. It is a brochure.
- No metrics that need the user to perform. Private traces are for the user's memory. Public numbers are for ours, and we should be stingy with them.
Refusals are how a small lab protects scope. A larger company can staff the extra surfaces. We cannot, and often should not.
How this looks in the making
The making is ordinary. Write down the job in one sentence that includes an end state. List the objects. Cut the objects that do not serve the end state. Build the dull path: the reminder fires, the timer ends, the backup restores, the human can undo. Then sit with the sharp edges — sleeping phones, missed days, empty states — until they are not sharp.
We would rather spend time on those edges than on a new surface that photographs well. The lab line on the homepage is the same as the working rule: clear over clever, durable over loud, human judgment at the centre.
If you are building something of your own, try this test before you add a feature: does this help a real instance of the job finish, or does it help the product look more like other products? Only the first kind earns its moving parts.
PortaID will stay small on purpose. The systems should feel complete in the hand, even if the lab behind them is a handful of people and a bias. That is the whole problem worth solving.