Invoice Reminder SaaS for Freelancers with Subscription Billing
A small subscription web app for freelancers, tutors and small service businesses that tracks unpaid invoices and sends polite, scheduled payment reminders by email or WhatsApp. An intermediate final year project covering everything a SaaS needs to charge money: plans with limits, test-mode checkout, webhooks, failed payments and MRR.
Intermediate
A small team, or one strong student willing to learn something new.1 semester · 1 to 2 students
8 to ship
3 optional extrasSuggested stack
What you should ship
- Sign-up, login and password reset with per-account data isolation enforced on the server or in the database, with tests that try to read another account's data
- Invoice list with clients, amounts, due dates and status, plus a reminder schedule (before due, on due, after due) with editable polite templates
- A reminder job that sends each scheduled email exactly once, stops when an invoice is marked paid, and logs every send
- Two paid plans with limits (for example number of clients or reminders per month) enforced on the server
- Hosted checkout and customer portal in test mode, with verified webhooks that update the plan idempotently
- Failed payment handling: grace period, dunning email and access downgrade on schedule
- An internal dashboard computing MRR, new, cancelled and failed-payment churn from your own records
- A written test log covering purchase, upgrade, downgrade, cancellation, failed card, refund and duplicate webhook
If you have time left
- A merchant of record provider as an alternative behind one billing interface
- WhatsApp reminders through an official Business API provider, with opt-in recorded
- A product analytics funnel from sign-up to first reminder sent to paid
The problem freelancers have chasing late payments
Freelancers, tutors, photographers and small agencies lose time and money chasing late payments. Many track invoices in a notebook or spreadsheet and send reminders by hand, when they remember and when they feel brave enough. Reminders sent too late or too bluntly damage the relationship; reminders never sent mean the money never arrives. A small tool that sends polite, scheduled reminders and shows who has paid is a realistic product people pay a small monthly fee for.
The second problem is the students' own: most student projects stop at features and never touch the parts that make software a business.
What already exists and the gap
- Chaser automates accounts receivable reminders and connects to accounting systems such as Xero, QuickBooks and Sage; it is built for businesses that already run accounting software.
- Xero and QuickBooks have built-in invoice reminders for their own customers.
- Invoice Ninja is an open source invoicing tool with reminders and client portals.
- Stripe Billing includes automated retries and dunning for its own subscription payments.
The gap is at the bottom of the market: individuals who do not use accounting software, invoice in a spreadsheet or a PDF, and want something that just chases politely, with templates that suit their clients' culture and channel.
What you build
Two halves.
The product: a freelancer adds clients and invoices (or imports a CSV), picks a reminder schedule and tone, and the app sends reminders until the invoice is marked paid. A dashboard shows what is overdue and what came in this month.
The business: sign-up with isolated per-account data, a free tier and two paid plans with limits, hosted checkout and a customer portal in test mode, webhooks that keep access in sync, failed-payment handling, legal pages and an internal revenue dashboard.
The technically interesting part
There are two hard problems, both about doing things exactly once.
Reminder scheduling: the job must send each scheduled reminder exactly once, even if it crashes mid-run or runs twice, and must never remind a client about an invoice paid an hour ago. Store each planned send as a row with a unique key (invoice, step), claim rows transactionally, and re-check invoice status just before sending.
Billing state: treat verified webhooks, not the checkout success page, as the source of truth for entitlements. Store event ids so duplicate deliveries are ignored, handle out-of-order events, and derive the plan from your own subscription table. Stripe's documentation on retries and dunning shows how failed payments move a subscription through past due to cancelled or unpaid; mirror those states in your app.
How to evaluate it
- Exactly once: kill the reminder job mid-run and restart it; show zero duplicate and zero missed sends in the log.
- Billing scenarios: the full test log, each scenario passing, including duplicate and out-of-order webhooks.
- Isolation: automated tests proving one account cannot read or change another's data.
- User pilot: five to ten freelancers or tutors use it for a month; record invoices tracked, reminders sent and invoices paid after a reminder.
- Metrics: MRR and churn on the dashboard match a hand calculation over seeded data.
Suggested plan
- Weeks 1 to 2: interview five freelancers or tutors about how they chase payments today.
- Weeks 3 to 5: auth, data isolation, clients and invoices.
- Weeks 6 to 8: reminder schedules, templates and the exactly-once job.
- Weeks 9 to 11: plans, checkout, webhooks, failed payments.
- Weeks 12 to 13: revenue dashboard, legal pages, analytics.
- Weeks 14 to 15: pilot and write-up.
Path to a product
The first customers are freelancers and tutors you know. A free tier with a small number of clients and a low monthly paid plan is the natural model. Grow through the reminder emails themselves (a small "sent with" footer on the free plan) and freelancer communities. Add integrations only after people pay.
Scope warning
Do not build full accounting, tax or payment collection from clients. Do not take real payments for a class project unless you are ready to support customers, handle refunds and follow tax rules. If Stripe is not available to businesses in your country, use a merchant of record such as Paddle or Lemon Squeezy in test mode.
Learn what you need on Sefism
- Full-stack roadmap : the front end, back end and database skills this needs.
- System design cheat sheet : idempotency, queues and at-least-once delivery.
- Stripe Documentation : checkout, customer portal, webhooks and dunning.
- Supabase Documentation : row level security for per-account isolation.
- PostHog : product analytics for the sign-up to paid funnel.
- The Mom Test : interviewing freelancers without leading them.
Get help with this idea
The billing half is where most teams underestimate the work. Tauseef can help you scope the plans, design the exactly-once reminder job and webhook handling, and plan an evaluation your examiners will respect. If you are new here, create a free account first.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.