Invoice Manager
Enter PIN to continue
Incorrect PIN. Please try again.
Dashboard
Loading…
Revenue by Client
Due in 14 Days
Revenue by Month
Invoice NoDateDue DateClientProjectAmountTypeStatusActions
—
Auto-generated


$ 0.00
—
How Numbering Works
📌 Format: TMG[CODE]/YY-YY/NN
📌 NN is shared across all clients
📌 Resets to 01 every April
📌 Duplicates are auto-blocked
📌 Number locks in on Save
Current FY
—
Next invoice #: —
1. Get the template

Download the template, add one row per old invoice (in Excel, Google Sheets, or Numbers), save/export as CSV, then upload it below. Keep the invoice numbers exactly as they were originally issued — that's what keeps this a compliant historical record. Each Client Name must exactly match a name already set up under Clients & Codes (add any missing ones there first).

2. Upload your filled-in CSV
Loading…
Client Codes
Client NameCodeFull PrefixContactEmail
Add New Client
Will create prefix: TMGGRT/YY-YY/NN

Supabase Setup

One-time setup · ~5 minutes · Free forever on Supabase's free tier

1

Create a free Supabase project

Go to supabase.com → New Project. Pick any name/region and a database password (save it somewhere safe — you won't need it for this app, but keep it).

2

Create the tables

In your project: SQL Editor → New query. Paste the script below, then click Run.

Loading…
3

Get your API keys

Project Settings → Data API for the Project URL, and Project Settings → API Keys for the key — copy the Publishable key (starts sb_publishable_…) or, on older projects, the anon public key (starts eyJ…). Never use the Secret / service_role key here — that one doesn't belong in client-side code.

4

Paste your Project URL and key

5

Change PIN (default: 1234)

6

Team member view-only access

Give a teammate (e.g. Kevin) this separate PIN. It unlocks the same dashboard, invoices, alerts and client list, but hides New Invoice, Import, Database Setup, and every edit/delete/add action — read-only. Default: 4321.

⚠ The anon key is meant to be public, but the SQL above opens these tables to anyone who has your Project URL + anon key — the same trust model as the old "Anyone can access" Apps Script deployment. This app's PIN screen is a convenience lock, not real authentication. Don't publish this app's URL anywhere public.