Total clients
—
Upcoming shoots
—
Galleries in progress
—
Awaiting delivery
Outstanding invoices
—
Upcoming shoots
| Client | Date | Type | Location | Package | Status |
|---|---|---|---|---|---|
| Loading... | |||||
Galleries awaiting delivery
| Client | Shoot type | Shoot date | Edit status | Progress |
|---|---|---|---|---|
| Loading... | ||||
All clients
| Name | Phone | City | Shoots | Services | Release | Source | |
|---|---|---|---|---|---|---|---|
| Loading... | |||||||
← Back to clients
Client added and saved to your database!
Contact information
Address
Services required
Additional details
← Back to client
Client details updated!
Contact information
Address
Services required
Additional details
Shoot schedule
| Client | Date | Type | Location | Package | Deposit | Status |
|---|---|---|---|---|---|---|
| Loading... | ||||||
Booking saved to your database!
Booking details
Shoot history note (optional)
← Back to client
Booking confirmation details
Preview
Gallery tracker
| Client | Type | Date | Status | Progress | Gallery link | Action |
|---|---|---|---|---|---|---|
| Loading... | ||||||
Business details
Invoice details
Line items
Service
Hrs
Rate ($)
Live preview — A4
Total outstanding
—
Pending invoices
—
Deposits awaited
—
Outstanding invoices
| Client | Invoice # | Total | Balance due | Due date | Status | Action |
|---|---|---|---|---|---|---|
| Loading... | ||||||
No packages yet — create your first one below.
Create package
Business settings
Settings saved — invoices will now use these details automatically.
Appearance
Accent colour
Display mode
Database connection
1
Run SQL in Supabase (first time only)
Go to your Supabase project → SQL Editor → New query. Paste and run:
alter table clients disable row level security;
alter table bookings disable row level security;
alter table deliverables disable row level security;
alter table invoices disable row level security;
create table if not exists settings (
id int primary key default 1,
business_name text, email text, phone text,
abn text, bsb_account text, address text,
constraint single_row check (id = 1)
);
insert into settings (id) values (1) on conflict do nothing;
alter table settings disable row level security;
-- Add contract tracker to clients (run once):
alter table clients add column if not exists
services_required text;
alter table clients add column if not exists
contract_signed text default 'No';
alter table clients add column if not exists
deposit_received text default 'No';
alter table clients add column if not exists
final_payment text default 'No';
alter table clients add column if not exists
gallery_delivered text default 'No';
2
Connection status
Checking connection...
3
Custom domain (Cloudflare)
When you are ready to use a custom domain like clients.mashfordphotography.com.au, upload this file to Cloudflare Pages and point a CNAME at it. Everything else stays the same.