I built Uaryn because I was tired of chasing clients for payment. As a freelancer, I spent more time writing "friendly reminder" emails than doing actual work.
Uaryn is a simple invoicing tool with one twist: adaptive reminders that learn from your clients' payment behavior. Instead of blasting generic "your invoice is overdue" emails, the system adjusts timing and frequency based on how each client historically pays. Some clients pay early — they get fewer nudges. Serial late-payers get reminded more aggressively before the due date.
What it does: - Create professional invoices in under 2 minutes (3 fields minimum) - Built-in Stripe payments — clients pay directly from the invoice - Smart reminders that adapt over time (J0, J+15, J+28, J+30, J+37 schedule) - Recurring invoices for retainer clients - Analytics: average days-to-payment, on-time rate, revenue trends - PDF export, custom branding
What it doesn't do: - Accounting, tax reports, expense tracking. There are great tools for that already. Uaryn does one thing: get you paid faster.
Tech stack (for the curious): - Next.js 14 + Prisma + PostgreSQL (Neon) - Stripe Connect for direct payments to freelancer accounts - LemonSqueezy for subscription billing - Resend for transactional emails - Vercel cron jobs for reminder scheduling and recurring invoice generation - Deployed on Vercel
Pricing: Free tier (3 invoices/month), Pro at $9/month for unlimited invoices, recurring billing, analytics, and custom branding. No credit card required to start.
Some technical decisions that might interest HN: - Stripe Connect so payments go directly to the freelancer's account — zero platform transaction fees - Timing-safe auth comparisons + dummy hash checks to prevent user enumeration - Idempotency checks on cron jobs to prevent duplicate invoice generation - Real-time status computation instead of storing derived state in the DB
I'd love feedback on the product and the adaptive reminder approach. Is the "learning" angle compelling enough, or would you want more transparency into how the system decides when to remind? https://uaryn.com