Maaleto: a life-management app built for the Iranian calendar
Maaleto is a personal life-management platform I built, now live at maaleto.ir: finance, tasks, habits and calendar in one place. What separates it from the dozens of similar apps is one decision — it is built for the Iranian calendar rather than translated into it.
This is the product introduction: what it does, why it works the way it does, and how to start. If you're more interested in the architecture behind it, I wrote that up separately in the Maaleto case study.
The problem it actually solves
There is no shortage of budgeting and productivity apps. Almost all of them share an assumption: the month starts on the first of January, the week starts on Monday, and money has decimal places. For the Iranian market they add a Persian display layer on top and call it localized.
The trouble is that a calendar is not a display format. When you ask "how much did I spend this month?", you mean a specific range — the whole of Mehr, not September 23rd to October 22nd. If the software computes the month in Gregorian and merely renders the date in Jalali, the number it hands you is not the answer to your question.
Three things fall out of that one decision:
- The Jalali month is the budget boundary. A "groceries" budget for Mehr means Mehr 1 through Mehr 30.
- Amounts are in Toman, with no decimals. Everything is stored as whole numbers underneath, so rounding error — the few-Rial drift that shows up in totals — never occurs in the first place.
- Weeks start on Saturday. Weekly stats run Saturday through Friday, because that is your week.
Six modules, one account
Finance
Wallets, categories, transactions and budgets. A wallet's balance is always computed from its transactions and never stored as a separate number — so it cannot drift out of step with its own history. You can set a cap per category, per Jalali month.
Tasks
Tasks, subtasks, projects and labels. A task can carry a deadline, and that deadline shows up in the calendar automatically.
Calendar
Events with recurrence, plus Iran's official holidays. Two views: an Agenda that merges tasks, events and holidays into a single chronological list, and a weekly grid whose columns start on Saturday.
Habits
Define a daily habit, or a weekly one on specific days, and check in. The streak is computed from those check-ins. If you forget a day, you can go back through the month view and check that day off — you don't have to lose the streak to a missed tap.
Reports
A wrap-up for each Jalali month: what was spent, how the budgets landed, and how many tasks were completed. It is the one place financial data and task data appear side by side.
Notifications
When spending in a category passes its budget cap, you're told at that moment — not at the end of the month when nothing can be done about it.
How to start
There is no separate sign-up step and no password. Open maaleto.ir, enter your email, and a six-digit code is sent to you. Enter the code and you're in. If you didn't have an account, it is created right there.
The six-digit code is valid for five minutes. If it doesn't arrive, wait a minute and request another.
It's on mobile too
There is an Android app carrying all six modules in full — not a cut-down companion. Web and Android both talk to one API, so anything you create in one is immediately there in the other, and neither is the "real" version.
Your data
Two things product introductions usually leave out, which I think belong in one:
- You can see your active devices and cut any of them off. If you signed in somewhere and forgot to sign out, revoke it from that screen; it takes effect immediately.
- Deleting your account really deletes it. Your rows are removed from every table — not flagged as deleted and left in place.
What now
Maaleto is live and you can try it today. If you have feedback or get stuck, tell me through the contact page — especially if something about dates, budgets or weeks behaves wrongly, since those are precisely the parts this project exists for.
And if you want to know what's behind it — the monorepo, the boundaries enforced by lint rather than by convention, and why the web is only "client number one" — the case study covers exactly that.
Was this useful?
Counts appear once there are 5 votes.
Related posts
What an MBA Changed About Shipping Software
An engineer's take on what an MBA actually changed about building software: opportunity cost, unit economics, and the decision not to build.
Read postTechnical SEO for Founders
A technical SEO guide for founders: the handful of fixes that actually move rankings (indexing, canonicals, speed, structure) and the things you can safely drop.
Read postWebMCP, Explained: How to Let AI Agents Actually Use Your Website
A new web standard lets AI agents fill out forms and complete tasks on your site directly — what it is, why it matters for SEO/GEO, and how to start.
Read post