Completed
Public personal project
2026

Expenser: Full-Stack Expense Manager & Self-Hosted Infrastructure

A multi-currency finance application and self-hosted micro-cloud project demonstrating API quality, data integrity, security, and end-to-end systems thinking.

Architected Expenser, a NestJS and PostgreSQL personal finance API, and deployed it on a custom Fedora Linux mini PC. The project combines financial calculation and persistence concerns with a security-focused self-hosted environment managed through Docker and Coolify.

TypeScriptNestJSPostgreSQLPrismaDockerCoolifyCloudflare TunnelsTailscaleFedora Linux

Key Highlights:

  • Multi-currency budget aggregation with cached exchange rates
  • Token authentication, strict CORS, Helmet, and payload limits
  • Zero-trust public ingress through Cloudflare Tunnels and private Tailscale access

Tools & Technologies

JavaScript
TypeScript
NestJS
NestJS
PostgreSQL
PostgreSQL
Prisma
Prisma
Docker
Docker
Coolify
Coolify
Cloudflare
Cloudflare Tunnels
Tailscale
Tailscale
Fedora Linux
Fedora Linux

Challenges

  • Keeping multi-currency calculations and relational data consistent
  • Exposing services publicly without opening router ports
  • Resolving Tailscale and Traefik interface and port conflicts

Solutions

  • Used Prisma constraints, upserts, and nullable cascading relations to protect data integrity
  • Added timing-safe token authentication, strict CORS, Helmet, and request limits
  • Separated public Cloudflare Tunnel ingress from private Tailscale administration and fixed interface bindings

Results

  • Delivered a working full-stack finance application with resilient exchange-rate synchronization
  • Created a reproducible Docker and Coolify deployment on personal hardware
  • Demonstrates QA-relevant API, integration, security, failure-handling, and release-validation thinking