Skip to content
HA
← All projects

TypeScript

Funds

Mutual-fund comparator and analytics (BBVA, ERNI/Inteligo, and Tyba/Credicorp). Relative % series net of management fees, interactive Chart.js graphs, ranking, and a $0-cost serverless architecture.

What it solves

Fund managers publish raw NAVs across scattered portals without clarifying net returns after management fees. Ingestion runs decoupled without headless browsers (Puppeteer dropped): Inteligo API (ERNI), ASO endpoints with dynamic TSEC token acquisition for BBVA (delegated to GitHub Actions to bypass Akamai's WAF), and RSA-4096 request signing with automatic JWT refresh for Tyba. The domain engine (tea.ts) normalizes time series to the first quote and computes net variation after fees: (latest / first - 1) * (100 - fee). DynamoDB was dropped after hitting WCU/RCU bottlenecks on analytical queries, standardizing on MongoDB Atlas M0.

Stack

  • TypeScript
  • AWS CDK
  • AWS Lambda
  • MongoDB Atlas
  • React 19
  • Express
  • Chart.js
  • EventBridge
  • Fly.io

Infra

Hybrid architecture designed for a lifetime monthly cost of $0.00 governed by Spec-Driven Development (SDD). AWS CDK v2 in TypeScript: daily ingestion via Amazon EventBridge Scheduler, Node 24 Lambdas (TypeBox validation), credentials in SSM Parameter Store Standard ($0), and analytics served via Lambda Function URLs with native HTTPS without API Gateway. Dual frontend: React 19 + Vite + Tailwind + Chart.js SPA on GitHub Pages, plus a TypeScript Express SSR server on Docker Node 24 Alpine in Fly.io (GRU, 256 MB with auto-stop) preserved as a monolithic runtime.