Money
A personal accounting app with a Persian, right-to-left interface. Users record income, expenses and transfers by hand, or by talking to Claude, which saves them through the app's MCP connector.
Money screenshot, 1600 x 1200
Scope
- Sign in with username and password, by invite only
- Accounts with a starting balance and a live current balance
- Income, expense and transfer transactions with categories, tags and notes
- A Claude connector (MCP) with OAuth sign-in, so Claude can add, find, edit and delete the user's transactions
- Monthly budgets per category, repeating every Jalali month
- Reports, a dashboard, and CSV import and export
Decisions
- Next.js over Vite, because the MCP endpoint, the OAuth server, sign-in and database access all live in one project as Route Handlers and Server Actions, with no separate backend.
- Dates are stored as Gregorian and converted to the Jalali calendar only at the edges: in the UI and at the MCP boundary.
- Every row belongs to a user, and the user id always comes from the session or the OAuth token, never from client input.
- Zod validates every form, Server Action input, MCP tool input and CSV row.
Stack
- Next.js
- React
- TypeScript
- Postgres
- Drizzle ORM
- Better Auth
- MCP
- Zod
- Base UI
- CSS Modules
- Storybook