ramirocerda

PROJECT / gastify

Gastify — Finance tracking with a Telegram bot

Personal Active

A personal finance tracker with two entry points: a PWA dashboard and a Telegram bot that parses natural-language messages ('I spent 5k at the store on debit') into structured transactions using AI.

Logging income and expenses by hand is tedious and quickly abandoned; and once the data is scattered across spreadsheets by currency, category, and month, it becomes unmanageable.

Built the app on SvelteKit, deployed as a Cloudflare Worker, with Drizzle ORM over Turso/libSQL. The Telegram bot parses natural-language Spanish via OpenRouter and links to the web account with one-time codes. Auth is JWT in httpOnly cookies, it's an installable PWA with a service worker, and the whole design is documented with OpenSpec and ADRs.

  • A Telegram bot that turns 'I spent 5k at the store' into a structured transaction using AI (OpenRouter).
  • Installable PWA dashboard with per-currency, per-category, and monthly breakdowns.
  • Web ↔ bot account linking via one-time codes.
  • Compile-time type-safety: a module asserts that Drizzle's inferred types match the domain types, preventing schema drift.
  • Deployed on Cloudflare Workers, with JWT auth in httpOnly cookies.
  • SvelteKit
  • Svelte 5
  • TypeScript
  • Cloudflare Workers
  • Drizzle ORM
  • Turso / libSQL
  • OpenRouter