Technical case study · Backend / SaaS
CashTracker
Personal-finance SaaS with transactional operations, subscriptions and AI-assisted workflows.
Laravel · PostgreSQL · React · TypeScript · Stripe · Pest
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
- 01Financial operations use PostgreSQL transactions and pessimistic locking to control concurrent limits.
- 02Stripe Checkout and Billing Portal support monthly and yearly subscriptions with webhook validation.
- 03Authorization, rate limiting, email verification and password recovery protect accounts and sensitive operations.
- 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.