Privacy-first financial assistant for UK freelancers preparing for Making Tax Digital (MTD) for Income Tax Self-Assessment. Drag-and-drop bank statements in, MTD-compatible JSON exports out.
UK freelancers transitioning to MTD ITSA need a way to turn messy bank statement PDFs and CSVs into tax-ready records without uploading everything to a cloud accounting platform. Existing tools were either expensive or privacy-hostile.
Built a React, TypeScript and Vite frontend backed by Supabase magic-link auth and Vercel Edge Functions that proxy to Google Gemini. Client-side PDF parsing with pdf.js using a strategy pattern that recognises Monzo, Revolut, PayPal, Nationwide and a generic fallback. Sensitive data stays client-side; only scrubbed text reaches the AI. Stripe billing via Autumn Cloud.
Working MVP that ingests CSVs and bank-statement PDFs, categorises transactions against HMRC rules, and exports MTD-compatible JSON. Honest learning project: it shipped, but a follow-up code review surfaced security gaps including test-mode URL bypasses and weak encryption. The lesson stuck: I now treat authentication and encryption as foundation work in any new project, alongside the database and logging.