Wavlet
PERSONAL FINANCE APP
“Feel your finances flow.” An offline-first personal finance app with a fully custom liquid, wave-based interface: income, expenses, budgets, recurring rules and charts.
- ROLE
- Solo build · Mobile
- STATUS
- SHIPPED
- TYPE
- MOBILE APP



Wavlet is a personal finance companion built around one idea: money should feel like something that moves. The interface is custom from the ground up, with no stock Material or Cupertino widgets. Waves, blobs and glass panels are drawn with custom painters, and the palette is deep navy with indigo and aqua accents.
Everything lives on the device. Income, expenses, budgets and recurring rules are stored in a local Isar database, so the app works fully offline and needs no account. It supports USD and Syrian pounds, and new builds ship over the air with Shorebird, followed by a “What's New” sheet so users see what changed.
The screenshots were captured from the running app on an iPhone 17 Pro simulator with demo data.
WHAT IT DOES
Money tracking
- Income with frequency (daily, weekly, monthly, one-time) and categories; expenses with categories and notes; custom categories for both.
- Filters by period (7D, 30D, 90D, all), category and min/max amount.
- Budgets per category, weekly or monthly, with live progress bars on the dashboard.
- Recurring rules that generate repeating income and expenses automatically.
Insight
- Net balance at a glance, with income and expense totals on an animated wave card.
- Income vs expenses bars (monthly or weekly), and donut breakdowns by category for both income and spending.
- Trend comparison against the previous period; CSV export of all transactions.
Engineering
- Feature-first clean architecture with Riverpod for state and go_router for navigation.
- Isar for local storage; fl_chart plus custom painters for charts; flutter_animate for motion.
- Over-the-air patches with Shorebird and a versioned changelog sheet.
SCREENS
HAVE SOMETHING SIMILAR IN MIND?
Tell me what you are building. WhatsApp is the fastest way to reach me.