Built RentFig to replace the spreadsheet-and-sticky-notes system I was using to manage my own HMOs — it tracks statutory compliance (gas safety, EICR, EPC, licensing), chases rent automatically, does double-entry accounting, and has an AI assistant on WhatsApp for quick portfolio questions. England-focused, built by a working landlord.
On the Vercel side, the interesting bit is the cron split: ~15 scheduled jobs (compliance checks, rent chasing, invoicing, regulatory scans) run as Vercel Cron hitting Next.js route handlers — but a few (headless-Chromium document scraping, nightly pg_dump backups) need a full runner, so those live in GitHub Actions instead and just don't touch Vercel Cron at all. Kept the split explicit rather than forcing everything through one mechanism.
Stack: Next.js 16 App Router + Turbopack, Supabase (Postgres + RLS), Sentry, PostHog.
https://www.rentfig.co.uk — would genuinely welcome feedback, especially from anyone who's dealt with cron-job sprawl on Vercel.
Steps: