Mobile-first personal finance app for faster transaction tracking and spending insight.
In order to better my future, I've always kept a habit of logging out most transaction both in and out of my finance account. I mostly used Google Sheet to do this lenient task; however, the more I used it, I started to find it's a bit annoying. Having to create sheet every month, going through each column and fill out transaction, and good luck doing that with a phone. At some point, I tried many apps but I find it just as tedious as using Google Sheet. Fill out amount, select category, writing down description for the transaction, the more I used the more mundane it became, especially when you have to log a lot of transactions at once. So, I built an web app to help me with this task, and it's called "Z3 Wallet".
Z3 Wallet is a full-stack personal finance app built to make daily money tracking feel lightweight instead of tedious. The app helps users record expenses and top-ups, review cash flow, browse recent transactions, manage categories, and create category rules that automatically match repeated spending patterns.
I built the project as a Bun-powered monorepo with a React web app, an Elysia backend API, and shared TypeScript packages for DTOs, validation schemas, API utilities, and domain errors. The frontend uses React 19, Vite, TanStack Router, TanStack Query, TanStack Form, Tailwind CSS, and Recharts. The backend uses Elysia, Drizzle ORM, PostgreSQL, Redis, Zod, and OpenAPI-backed route definitions.
A key feature is the smart transaction input flow. Instead of forcing users through several form fields, Z3 Wallet can parse natural text such as 12 Starbucks coffee or + 500 cash top up into structured transaction data, including amount, type, note, and category. Users can also save category rules so recurring phrases like "coffee" or "ride" are matched more consistently over time.
The app includes authenticated user accounts, password login, OAuth support for GitHub and Google, profile personalization, wallet creation, transaction CRUD, cursor-based transaction browsing, cash-flow summaries, category breakdowns, and dashboard statistics. Backend services enforce ownership checks, validate future-dated transactions, and keep frontend/backend contracts aligned through shared Zod schemas.
From an engineering standpoint, the project focuses on practical full-stack architecture: feature-based frontend modules, domain-based backend modules, reusable shared packages, typed request and response contracts, database migration tooling, integration tests, and a strict pre-deploy verification flow. The release setup supports version syncing across apps, build validation, backend health checks, Cloudflare web deployment, and GitHub release publishing.
So, if you just like me, you can try out Z3 Wallet and see how simple daily money tracking can feel when smart input, clean analytics, and practical automation work together.