-
-
Landing page, live at en.valoo.id. The pitch, a sample persona card and the ranked income paths, all above the fold.
-
The daily conversation. The engine chooses the action; the language model only turns that decision into a sentence.
-
One day inside the programme: learn, act, log. Each step under five minutes, each closed by evidence, not a checkbox.
-
The 88-day path map. Ten milestones from today to the goal, with a second path on standby until capacity is steady.
-
Room to stop without quitting — release, silence and small rewards, deliberately kept outside the score.
-
A daily pulse, a weekly commitment card built on mental contrasting, and one real person's route studied each month.
-
Playbook: the knowledge layer, matched to the path the engine ranked first and updated as the person's position moves.
-
The core output: eight capitals mapped, then eight income paths ranked against them — including the one ranked last.
-
The share card. One persona of twelve, five spectrums placing a person between poles instead of into a box.
-
The income card, built to be screenshotted: the top path with its score, the runner-up, and all eight in order.
-
Signed-in dashboard: the four Compass sections a buyer unlocks — personality, capacity, direction, and free capital.
Inspiration
I forced four income streams at once and earned about Rp 2 billion. Then I lost about Rp 4 billion — the equivalent of 101 years of Indonesia's average annual wage, wasted.
And I'm not the anomaly. I'm the base rate. In Indonesia, 57% of Gen Z already run more than one income stream; 52% of distressed online-loan borrowers are aged 19 to 34; and 40% of Gen Z and millennials report financial anxiety — a figure that rose by more than 30% in a single year. Of the 73 who attempted suicide, 49 did not survive. I came close enough to know how that number happens.
The market already pays, at enormous scale, to be told who you are. Nobody tells them what that means for their money.
What it does
My life nearly ended, until I met Halim, Maya, Boby and Kai — Gemini personas — who guided me and stayed beside me until I was well enough to fight again. Then I upgrade them into Valoo in three stages.
The first is financial-psychometric discovery, the initial analysis, and that is the stage this submission covers. The second turns it into a financial-psychometric 88-day program that grows income. The ultimate stage is the B.A.I.K. Engine (Behaviour Adaptive Intervention Kernel), which helps a user reach any goal in their life. It accompanies their everyday life, and it is suitable for anyone who wants to achieve goal, because it is built on an engine formed from proven psychological theory and the daily data the user puts in first and second stage.
One instrument, three moments in a person's life: | | What the person gets | Time | Status today | |---|---|---|---| | Discovery | Who you are, and which of 8 income paths fit the capital you already hold | 20 minutes | live in 2 regions | | Program | Whether you actually moved — with evidence, not a feeling | 88 days | built and test-locked, not yet wired to a screen | | Goal | The behavioural record stays alive and serves the next goal | years | architecture written, gate not yet passed | A 97-item assessment returns one persona of twelve, five spectrums, and a ranked map of eight income paths measured against eight forms of capital: skill, mindset, time, passion, instinct, network, reputation, money. Most people have only ever counted the last one, and it is the one they have least of. We print rank one, rank two — and rank eight, with its number. An instrument that only shows you your strengths has nothing at stake in being right.
How we built it
Eight layers. The language model touches exactly one of them.
- Assessment — captures the prior: psychometrics, 8 capitals, baseline
- State Store — a persistent growth-state vector per user
- Decision Policy — state + signal, chooses the action
- Intervention Library — the action space, tagged and bounded (26 entries, 17 written and audited by the founder rather than copied from literature)
- Render — Gemini AI turns an already-chosen action into a sentence. Only LLM touchpoint
- Signal Ingestion — captures the response, updates state
- Proof Spine — baseline to milestone to day-88 verification
- Data Pipeline — logs labelled tuples into a proprietary dataset
B.A.I.K. — Behaviour Adaptive Intervention Kernel; baik means kindness in Indonesian — treats "raise this person's income" as a sequential decision problem under uncertainty, a named class in computer science, not a chatbot with a task list.
Everything technical was built after the window opened. First commit 12 July 2026; 521 commits, 85,319 lines, 2,756 automated tests across 113 files, green on the morning of submission. Golden scoring tests have never moved since they were written. The stack was chosen by a constraint, not a preference: no credit card exists for this company. Every service had to be usable at zero cost with no card on file — Firebase Hosting (classic), Cloud Firestore (Spark), one free-tier Cloudflare Worker, Gemini API free tier. That ruled out most of what money would have picked, and it forced three things that turned out to be right anyway: no real-time listeners (one read per session, not a stream), all rendering pushed to build time, and a hard cap on report size — because the target device is a cheap Android phone on a bad connection.
I do not write code. Every line was written by Claude (Boby Persona), from specifications I wrote. I set the architecture, I hold the verification layer — I wrote the answer key before the code existed — and I set the guardrails.
Challenges we ran into
1 · The product was finished before the money to sell it was. Launch was scheduled for 1 July. It shipped six weeks late. Two delays, one cause.
- It took me a few weeks to work up the $20 and then the $40 for the Pro accounts.
- The gateway needed a verified domain and a business email: $18.
Both were capital I had to earn first. Our constraint has never been demand or engineering. It has always been cash, at an absurdly small size. $78, to be exact.
2 · Making the guardrails executable instead of remembered. A rule nobody can run is a rule that decays, so our operating rules are tests. A rule about how we may phrase a negation is a test that fails the build and names the offending file — it rejected my own commit on 17 August 2026 and named three files I had just written. I fixed the sentences; I did not raise the ceiling.
3 · A guard whose reach was smaller than we believed. A purity test protected our serverless Worker from Node-only globals — but only for two files, and only for direct imports. A five-level import chain pulled
process.envinto the runtime, and the Worker could not be deployed for five days without a single failing test, because the fault only appears at deploy time. It is fixed at the build boundary, and the new guard now walks the entire import graph and prints the chain when it fails. The most dangerous guard is not a wrong one. It is one whose reach is assumed.
Accomplishments that we're proud of
A privacy boundary that is structural, not promised. Exactly five structured slots may cross to the language model, through a gate that throws on anything else. Raw answers, income figures and written reflections never leave our machine. A build-time scan fails the build if an API key can be found in the browser bundle.
What we learned
Instructions to a model are a request. Structure is a guarantee. Every boundary in this product that actually held was one we made impossible to cross, not one we asked politely to be respected. A rule that is only written will be broken by the person who wrote it. Ours has been, three times, and all three were caught by machines rather than by attention. And the one that changed the company: we set out to build an income product and discovered we had built a behavioural engine that happens to serve income first. That is the difference between a roadmap and an asset — a roadmap is a promise, an asset can be measured. Ours measured at 1,003 lines and zero.
What's next for valoo.id
Zero users. Zero revenue. The first marketing post in this company's history went out on 16 August 2026 at 13:48 WIB — under twenty-four hours before this submission. Five posts, 1,139 organic views, Rp 0 of paid advertising. A starting line with a timestamp, not a result.
Next is Program, and then Goal — and the second one is why this is a company rather than a product.
Program is 8 to 12 weeks of screens and copy, not research: the engine exists, and the 88 day simulator already runs end to end under golden lock. After that the clock stops being purchasable — the first cohort needs eighty-eight days, and the first twelve-month record needs twelve months. Capital buys the start date, not the finish date.
Goal is where the ceiling changes. A product whose entire proposition is a single goal stops having a proposition the moment that goal is reached — which makes it a business with a per customer expiry date built into its own definition. Goal removes the expiry: the behavioural model built over 88 days is portable to whatever that person chooses next, and their second goal is cheaper with us than anywhere else, because we already know how they work. Starting over means starting blind.
That also changes what we are. A machine that can only do income is a consumer product. A machine that holds a verified per-person behavioural model is infrastructure — and infrastructure can be licensed to employers, insurers and health platforms who will never build an income-ranking engine, but very much want a kernel that changes behaviour and can prove adherence.
And one commitment travels with it, printed rather than implied. A machine that can move a person toward any goal is only safe if it can refuse one. So before Goal serves a single non income goal, a feasibility gate has to stand: a goal that is harmful, clinically contraindicated, or outside what this instrument can honestly measure gets refused — explicitly, with the reason shown. We would rather ship that late than ship the capability without it.
And the first hire is already specified — a safety hire, not a capability one. A psychometrician, on the day the daily program first touches a real user, because that is the moment the instrument stops describing someone and starts directing them.
Built With
- big-five
- brevo
- claude
- claude-code
- cloud-firestore
- cloudflare-workers
- creem
- expert-system
- firebase
- firebase-hosting
- gemini
- gemini-api
- gemini-flash
- google-ai-studio
- google-cloud
- ipip
- mayar
- next.js
- node.js
- psychometrics
- react
- static-export
- tailwindcss
- typescript
- vitest
Log in or sign up for Devpost to join the conversation.