Klari is a finance and wealth tracker built for the Indonesian market — designed to become a top-of-mind way for Indonesians to manage money and grow their net worth. It unifies day-to-day budgeting with a polymorphic portfolio engine that tracks five investment instruments (saham, reksadana, emas, obligasi, deposito) in a single schema, and an AI-powered Split Bill that turns a photo of a receipt into an itemized, fairly-split expense. Built and shipped solo, end-to-end, and running in production at klari.id.
Indonesians who invest end up with saham in one app, reksadana in another, emas somewhere else, and a group dinner that still means typing a receipt by hand. Klari puts day-to-day money and a five-instrument portfolio in one place, and turns a photo of a bill into a split.
5
instrument types, one schema
347
unit and integration tests
2
languages, ID and EN
1
engineer, design to production
Client
API
Data and services
Flows
Saham, reksadana, emas, obligasi and deposito each value differently: units times price, NAV, grams times spot, face value with coupons, principal with interest. Instead of five tables and five code paths, holdings are polymorphic rows over a single schema and one valuation module owns the math, so a new instrument is a new case, not a new subsystem.
A user can have the web app and a second tab or device writing at once. Every write path takes a Postgres advisory lock keyed on the user, which serialises their writes without locking anyone else out. It eliminated the lost-update class of bug outright rather than patching individual races.
The split-bill flow is a pipeline: photo in, OCR through OpenRouter, items parsed into lines, then per-item or even split with reimbursement tracking and a shareable breakdown card. Each stage fails independently and hands back something editable, so a bad scan costs a correction, not a restart.