Fintech / Personal Finance · 2026

Keel

A self initiated concept: a cash flow app for freelance income, designed as a full product and then animated, so the interactions can be judged in motion rather than imagined from a static frame.

Keel cash flow app shown on an iPhone, with the safe to spend balance and forecast

Services

  • Mobile App Design
  • UI/UX & Product Design
  • Design System
  • Motion & Interaction
  • Brand Identity

Stack

  • Figma
  • JavaScript
  • SVG
  • FFmpeg

Outcome

  • 33 Screens designed, plus a full design system
  • 5 UI animations, built in code and rendered at 60fps
  • 1 Forecast the whole product is built around

The problem with budgets

Budgeting apps assume a salary. You get paid on the same day for the same amount, so a monthly envelope is a reasonable fiction. Freelance income does not work that way. Money arrives in lumps, sometimes late, and the question that actually matters is not “how much have I spent on coffee” but “how much of what is in my account is already spoken for”.

Keel is a self initiated concept built around that single question. Instead of a budget it draws one line: the balance you can expect over the coming weeks, with everything already promised subtracted from it, and a floor underneath that you have told it never to cross.

Designing for an honest forecast

The hard part was not the chart. It was deciding what the product is allowed to claim. A forecast built on irregular income cannot be precise, so the design never pretends otherwise. Income that has not landed yet is shown as a range rather than a figure. A goal reports the window it will most likely land in instead of a date. When the app is unsure, the band around the line gets wider, and it says so.

That principle set the visual language. Grey means spoken for, one colour means yours, and a single accent is reserved for the floor, the one number the product will defend. Nothing else in the interface is allowed to use it.

Making the assistant useful instead of decorative

The app has an assistant, and the design brief for it was mostly a list of things it must not do. No chat bubbles, no glowing orb, no animated personality. It reads the ledger, it never moves money, and it says so on the surface where you use it.

What it does instead is show its working. Ask whether a weekend spend is affordable and the answer arrives as a receipt: the balance today, the spend, what is left, and the one caveat worth knowing. Ask where the money is going and the answer is ordered deliberately, evidence first and advice last, because a recommendation is only believed once the numbers behind it have been shown.

Why it was animated

A finance interface is mostly judged on how it responds. A static frame cannot show whether a number rolls or snaps, whether a total updates in the same beat as the row that caused it, or whether the app feels considered when you touch it.

So the five flows above were built in code rather than prototyped in a design tool, with a virtual clock so every frame is deterministic, and rendered at 60fps. The camera holds still at the start and end of each one and makes a single slow move in between, which keeps attention on the interface rather than on the camera work. Every figure on screen reconciles with every other: the balance, the commitments, the floor and the dates are one consistent set of numbers across all 33 screens.

The question people actually ask their bank, answered with the arithmetic visible instead of a confident number on its own.
The charge travels into its own detail rather than cutting to a new screen, and the search field doubles as the way to ask a question.
Confirming a subscription the app detected itself. The total, the count and the timeline update in the same moment, so the consequence sits beside the decision.
A goal that reports a landing range instead of a promised date, because with irregular income a single date is a guess.
Evidence before advice: the category, then the pattern behind it, then the size of it, and only then something to do about it.

What this project involved

Next projectMedicia Health

Next project

Have an ideaworth raising?