Skip to content

Fintech · Personal product · Product design

GoFinancial

An awareness-first expense tracker exploring how rapid manual logging can make everyday spending easier to remember and understand.

Role
Product Designer & Product Lead
Client
Personal Project
Year
2026
GoFinancial product interface

Overview

The product in context.

A self-initiated product exploration centered on rapid expense capture and immediate daily spending awareness. V1 became an offline-first web PWA before an incomplete React Native exploration prompted a wider reassessment of scope and architecture.

The tension

The product challenge.

Cash purchases were easy to forget when logging was delayed. The challenge was to reduce the effort of recording spending while making each entry immediately useful through daily awareness.

Self-initiated fintech product

An awareness-first expense tracker built around one deliberately simple habit.

problem
Cash purchases recorded too late were easy to forget, creating an everyday awareness gap.
hypothesis
If expense entry requires very little time or thought, spending is more likely to be recorded while it is still remembered.
role
Product direction, UX, interaction design, and AI-assisted implementation review.
platform
Web PWA → React Native exploration.
status
Personal product exploration — paused for redesign.
contribution
Defined the product principles and requirements, reviewed implementation decisions, corrected hierarchy, and evaluated trade-offs.

Origin

I could remember spending money—or remember to record it—but not always both.

body
GoFinancial began with my own attempt to track daily expenses in a notebook. The approach worked only when I recorded a purchase immediately. If several days passed, smaller details became difficult to reconstruct: how much I spent, what I bought, and where cash had gone. Banking applications could show transactions that passed through an account, but they could not explain every cash purchase. The problem was therefore not primarily missing banking data. It was a gap in everyday awareness.

Product hypothesis

When friction disappears, consistency has a better chance to follow.

principle
Open → Log → Close. Make expense entry almost frictionless, then return the user directly to daily awareness.
rationale
Every additional field, screen, setting, and capability had to justify the friction it introduced. The hypothesis has not been validated through retention or behavior-change data.

Primary interaction

The product needed to connect capture and awareness in one short loop.

finding
Expense capture only became useful when a saved entry immediately changed the daily-awareness view.
evidence
The implemented loop is Quick Add → amount → category → optional note → save → updated daily total.
implication
Entry hierarchy, validation, and feedback should protect the path back to awareness rather than introduce additional setup.
GoFinancial New Expense flow with amount, category, and description completed
Expense entry keeps amount and category selection inside one focused action.
GoFinancial dashboard updated after saving a transport expense
Saving the entry immediately updates the daily total and transaction history.

Product decision 01

Awareness before automation.

  1. 01

    Context

    Bank applications already exposed account transactions, while the original awareness gap was strongest around cash spending.

  2. 02

    Decision

    Keep the MVP manual and awareness-first rather than introducing bank synchronization.

  3. 03

    Why

    Financial integrations would add setup, trust, security, and maintenance requirements before the central hypothesis had been tested.

  4. 04

    Trade-off

    Manual entry preserves simplicity and cash visibility, but asks the user to record each expense themselves.

Product decision 02

Quick Add needed to become the product’s centre.

  1. 01

    Context

    An early implementation treated Quick Add like a secondary feature.

  2. 02

    Decision

    Make the expense-entry action persistent, visually distinct, and immediately accessible.

  3. 03

    Why

    A functioning feature was not enough; the interface hierarchy needed to communicate the product’s actual priority.

  4. 04

    Trade-off

    Giving one action strong prominence reduces room for competing navigation and secondary capabilities.

Product decision 03

Categories turned individual entries into useful context.

  1. 01

    Context

    The original concept emphasized descriptions, while the AI implementation partner proposed structured categories.

  2. 02

    Decision

    Retain categories as a required part of expense entry.

  3. 03

    Why

    Categories gave individual records enough structure to support weekly comparisons and monthly spending breakdowns.

  4. 04

    Trade-off

    Selecting a category adds a step to the core loop, but produces more useful context later.

Information hierarchy

Daily, weekly, and monthly views answered different questions.

finding
A single transaction becomes more useful when the product provides progressively broader context.
evidence
V1 implements a prominent daily total, weekly spending visualization, and monthly/category aggregation.
implication
Start with one useful number, then reveal deeper context without forcing every user into a complex dashboard.
GoFinancial weekly spending chart and category breakdown
The same entry contributes to weekly awareness and category context.

Designing for continuity

Offline was a product requirement, not a technical extra.

finding
Expense recording should not depend on connectivity because capture often happens in transitional moments.
evidence
The V1 repository implements IndexedDB, localStorage fallback, service-worker caching, and an offline-state banner.
implication
Storage architecture and offline feedback directly supported the product promise that an expense could be recorded when it happened.

Designing for continuity

Multi-currency was a global-use hypothesis, not validated traveler demand.

finding
Spending records should remain understandable when a person moves between currency contexts.
evidence
V1 includes multiple currency options, stored original-currency information, static conversion data, and converted-from provenance in the interface.
implication
Entry, storage, aggregation, and display must agree about what an amount represents; static rates must not be presented as live exchange data.

Designing for continuity

Local-first data still needed a route out of the product.

finding
Local-first storage should not make financial records permanently dependent on one interface.
evidence
The V1 Settings implementation generates downloadable CSV and printable HTML reports from stored transactions.
implication
Export created a portability and backup path, although the repository contains no evidence about how frequently it was used.

Implementation evidence

V1 became a working web PWA—but implementation breadth was not product validation.

finding
V1 proved that the product concept could be expressed as a substantial working web implementation.
evidence
The final committed repository contains transaction CRUD, calendar review, charts, budget states, export, IndexedDB/localStorage persistence, PWA caching, offline feedback, themes, and keyboard/ARIA/error-state implementation.
implication
The breadth demonstrates product and technical fluency, while the absence of user and business metrics keeps the outcome scoped to implementation and learning.

Architecture learning

A personal prototype is not automatically a multi-user financial product.

finding
The assumptions that supported a personal prototype did not match the requirements of a wider financial product.
evidence
V1’s local storage and local authentication architecture was centered on a personal, single-user context rather than production-grade ownership and isolation boundaries.
implication
A wider product would need explicit authentication, record ownership, user isolation, recovery, synchronization, deletion, and authoritative data boundaries.

Product evolution

The product started on the web, but the intended destination was a mobile application.

  1. Specification

    Principles before screens

    The friction-first product rules, core loop, offline requirement, and design constraints were defined before the main implementation.

  2. V1

    Mobile-first web PWA

    The web implementation explored capture, daily awareness, history, charts, export, themes, offline behavior, and interaction states.

  3. Learning

    Architecture and feature breadth

    Considering wider use exposed the single-user assumption and the cost of expanding capability before validating repeat usage.

  4. V2

    React Native exploration

    An Expo/React Native rewrite began to explore native distribution. It remains incomplete, has known engineering and UX issues, and is not presented as launched.

AI-assisted product development

AI accelerated implementation. It did not own the product decisions.

task
Turn product requirements and interaction ideas into tangible implementations that could be reviewed quickly.
use
ChatGPT supported product thinking and documentation; Antigravity/OpenCode supported exploration and engineering implementation.
judgment
I retained responsibility for hierarchy, prioritisation, trade-offs, and quality: correcting Quick Add prominence, accepting categories for aggregation, and rejecting/refining an inadequate chart direction.
outcome
The working loop was human direction → AI exploration or implementation → human evaluation → acceptance, rejection, or correction → verified product state.

Reflection

I added too much too early.

Expand capability early

Benefit: Made the prototype broad enough to explore charts, budgets, currencies, export, themes, recovery, and localization architecture.

Cost: Increased complexity before repeat usage established which supporting capabilities were necessary.

Protect the core loop

Benefit: Keeps product effort focused on rapid capture and immediate daily awareness.

Cost: Delays potentially useful secondary capabilities until evidence justifies them.

Decision: Restart with the narrower core loop, validate repeat usage earlier, and make every secondary capability earn its place.

What I would do differently

Building more is not the same as strengthening a product.

body
If I restarted GoFinancial today, I would protect Quick Add and the daily total, remove steps that do not contribute directly to capture or awareness, test repeat usage before expanding scope, define user and architecture assumptions earlier, and establish authentication, ownership, and isolation before wider distribution. The harder discipline is deciding what deserves to exist—and what should wait.

Future direction

Future exploration must remain narrower and evidence-led.

  • Validate whether rapid manual logging is useful enough to repeat before expanding feature breadth.
  • Resolve authentication, data ownership, user isolation, recovery, synchronization, and deletion requirements before wider distribution.
  • Reassess which V1 capabilities genuinely support awareness before carrying them into a native redesign.
  • Treat AI-assisted financial guidance strictly as future product exploration—not an existing feature, validated demand, regulated advice, or investment-performance capability.