Skip to main content
Back to work

Technical case study · Backend / SaaS

CashTracker

Personal-finance SaaS with transactional operations, subscriptions and AI-assisted workflows.

Laravel · PostgreSQL · React · TypeScript · Stripe · Pest

CashTracker dashboard

Context

CashTracker manages budgets and expenses in a SaaS product. Its technical interest lies in protecting financial operations under concurrency, coordinating subscriptions and maintaining clear authorization boundaries in a web interface.

Architecture

The React/Inertia interface integrates with Laravel, where services, policies and business rules coordinate operations. PostgreSQL provides transactional persistence; Stripe remains the external integration for checkout, portal and webhooks.

Technical decisions

  1. 01Financial operations use PostgreSQL transactions and pessimistic locking to control concurrent limits.
  2. 02Stripe Checkout and Billing Portal support monthly and yearly subscriptions with webhook validation.
  3. 03Authorization, rate limiting, email verification and password recovery protect accounts and sensitive operations.
  4. 04Pest/PHPUnit covers application behaviour, including PostgreSQL-specific cases where required.

Reliability & security

Consistency is handled at the persistence boundary, not only in the interface: transactions and locking protect financial operations under concurrency. Policies and account controls limit who can act and how often.

Testing & delivery

The project uses Pest/PHPUnit and keeps specific coverage for PostgreSQL behaviour when the database engine is part of the guarantee. Billing flow documentation makes the webhook dependency explicit.

Trade-offs

Pessimistic locking adds coordination and waiting cost, but it is a reasonable choice when financial-limit consistency is the priority. Stripe simplifies billing while making webhooks and idempotency part of the flow.