Every freelancer I've talked to has the same problem: their client and project information lives in 5 different places — a spreadsheet, random notes, a few sticky posts, their inbox, and memory.
When you're busy, this feels manageable. When you get a second client, it breaks.
I've tried Notion, Airtable, project management apps, and custom Python dashboards. Here's what I actually found useful (and what was overkill).
The Real Problem: Too Much Friction
The best tracking system is the one you'll actually use. Fancy Notion setups with linked databases and rollup formulas are great — until you don't fill them in because it takes 90 seconds to add a new client.
What works:
- One place for all client info — not split across Notion, Gmail, and your head
- Quick to update — adding an invoice should take 10 seconds
- Easy to review — weekly check-in shouldn't require decoding your own system
The Minimum Viable Tracker Setup
After a lot of iteration, I settled on 4 linked spreadsheets (or Notion databases if you prefer):
1. Client CRM
Tracks every client with their contact info, contract type, hourly/flat rate, and current status.
Key columns: Client Name | Status | Rate | Contact | Start Date | Notes
This is the master record. Everything else links back here.
2. Project Tracker
One row per project (you might have multiple per client).
Key columns: Project | Client | Status | Start | Deadline | Hours Est | Hours Actual | Revenue
The "Hours Actual vs Hours Est" column is the most useful number you'll ever see — it tells you which clients are profitable and which are quietly draining you.
3. Invoice Tracker
Every invoice you've ever sent, with payment status.
Key columns: Invoice # | Client | Amount | Sent Date | Due Date | Status | Paid Date
Run this as a monthly report and you'll never miss a late payment again.
4. Revenue Tracker
Monthly view of income by client and category.
Key columns: Month | Client | Category | Amount | Payment Method
This feeds your quarterly taxes and tells you which clients to clone.
The Notion vs Spreadsheet Debate
Notion is better if:
- You write a lot of notes about projects (linked pages are great for this)
- You want to visualize your pipeline as a Kanban board
- You're tracking more than 20 active clients
Spreadsheets are better if:
- You just need the numbers, not the prose
- You want to export to CSV for invoicing software
- Your accountant needs the data in a standard format
Both can work. The key is having pre-built templates with the right columns so you're not designing the system every time.
The Freelance Business Starter Kit
I packaged the 4 trackers above into a ready-to-use kit: Freelance Business Starter Kit ($9)
It includes:
-
client_crm.csv— ready to import into Excel, Google Sheets, or Notion -
project_tracker.csv— with formulas for profitability per project -
invoice_tracker.csv— with status and aging columns -
revenue_tracker.csv— for monthly/quarterly revenue review - A README with setup instructions for Notion and Google Sheets
I use this myself. The templates are opinionated (not everything is configurable) because that's what makes them actually usable.
Finding Clients to Put in Your CRM
The tracker is only useful if you have clients. If you're actively looking for freelance work, I built HN Startup Hunter to help with that — it searches every "Who is Hiring" thread on Hacker News by tech stack and pulls emails. Free tier gives you 20 results per search.
The Bottom Line
Don't over-engineer your tracking system before you need to. Start with a client CRM and invoice tracker. Add the rest when you actually feel the pain of not having it.
The freelancers who burn out aren't the ones who worked too hard — they're the ones who worked on things they forgot to invoice for.
If you're curious how I built the HN Startup Hunter (it's a Python scraper + Flask app deployed free on Render), I wrote about that here: Building a Job Lead Scraper in 50 Lines of Python
Top comments (0)