Print a QR and let people sign their own Model Release on the spot. The signer types their details on the page, then signs — no client record needed first.
Minor Model Release
The minor's name, date of birth, and the guardian's relationship are set on the client intake form via the “This client is a minor” toggle. The Client fields above are the parent/guardian who signs.
Second Shooter booking — no service selection needed
Location / Property Release — sent as a no-fee permission to film & photograph
The Client fields above are the property owner / authorized signer. The business / property name goes in the Company field above.
Commercial Service Agreement — sent as a no-fee e-sign agreement; fee is invoiced separately
The Client fields above are the authorized signer. The business name goes in the Company field above.
Commercial Image Licensing Agreement — Licensor is Funmi Adeshina; usage terms pull from the Licensing calculator
Set the media, reach, term, exclusivity, image count, and merchandise model in the Image Licensing block on the Photography tab — the contract and fee auto-match those selections. The Client fields above are the licensee’s authorized signer; the licensee business goes in the Company field above.
Used in Overtime clauses for the contract you generate. Defaults: $125/hr photo, $150/hr video.
One item per line. Markdown bold (**text**) supported. Only Payment and Deliverables are customizable — all other clauses use standard legal language.
Loading...
Loading...
Loading...
Loading...
Loading...
Contributions
Private patronage pages clients share with friends and family toward a session, an album, or a commissioned piece. Public list: /donate
Loading…
Packages
Edit copy, prices, and visibility. Hidden packages disappear from /events and 404 on direct links. Changes go live instantly — no redeploy.
Edit the base price of every service and add-on in one place. Changes go live the next time anyone opens the calculator — no redeploy. Every change is logged below; one click reverts.
A read-only check of what you've actually billed vs your list prices. Anything notably below list, comped often, or untouched for a long time gets flagged.
Loading…
New package
New contribution page
A hero image shown at the top of the public contribution page. Recommended: landscape 16:9, under 5 MB.
Or paste an image URL
Record a contribution
Use this to log a Zelle, Cash App, bank transfer, or check payment that came in outside of Stripe. Once saved as "received", it counts toward the contribution goal.
Share this contribution page
Opens your phone or Mac's native share sheet (AirDrop, Messages, Mail, etc.)
We'll send a branded email with the cover photo, progress bar, and a big Contribute button. Replies go to the client.
Tap below to open your Messages app pre-filled with this message. Add recipients there and hit send.
Opens WhatsApp (web or app) so you can pick a contact or group and forward.
Build contract from invoice
Pick a saved invoice, quote, or draft. Client info, line items, totals, and the recommended contract type all carry over. You can still adjust anything before generating.
Create contribution page from invoice
Pick an unpaid sent invoice. The new contribution page's goal will default to the invoice total, and contributions will credit toward the invoice balance (auto-marks paid once fully covered).
Events
Photo walks, free portrait sessions, gatherings. Public listing: /events
Loading...
Service QR
Build a gift-card promo for any service. Print, share, or post — scanning takes clients straight to the booking page with the service preselected.
No photo chosen
Tip: drag the photo on the preview to reposition. Use the slider to zoom.
—
New Event
Eligibility (optional)
Add up to 6 lines describing who or what this is for. Examples: "Houston locations only", "Valid 2nd Saturday in July only", "Couples only".
Both optional. Leave blank to accept reservations any time. Use the open date to delay the signup window (e.g. “reservations open Apr 1”).
$
Attendees pay via Stripe Checkout. Seats are held for 15 min during checkout. Anyone can cancel for a full refund any time before the event starts.
Custom signup questions
Ask signups extra questions — e.g. “Why should I pick you?” or “Upload a photo”.
Drag to reposition · Scroll or pinch to zoom
Signups
Loading…
Email Blast
Galleries
Photo galleries for sale. Public listing: /galleries
⚠️ R2 storage is not configured. Photo uploads will fail until R2_ACCOUNT_ID, R2_ACCESS_KEY, R2_SECRET_KEY, R2_BUCKET_PRIVATE, and R2_BUCKET_PUBLIC are set on the server.
Bulk-photo discount (global default)
Loading…
Gallery thumbnail layout
How visitors see thumbnails on /galleries and folder pages.
Loading…
Folders
Loading...
Paid gallery checkouts. New orders show a red bar until you open them.
Loading…
Visitors who entered their name + email before downloading from a gallery. Only those who ticked “Email me occasionally” are marked Subscribed.
Pick standalone galleries to move into this folder. They keep all photos, prices, and customers.
Choose folder cover photo
Pick any photo from any gallery in this folder. It will be shown as the folder’s cover on the public /galleries page. Clear it to fall back to the newest gallery’s auto-pick.
Loading photos…
QR Code
On iPhone: long-press the image and tap Save to Photos, or use the Share button below to send via AirDrop, Messages, or Mail.
QR Code
On iPhone: long-press the image and tap Save to Photos, or use Share to send via AirDrop, Messages, or Mail. Print it and bring it to your shoot or event.
Choose placard size
Story is best for Instagram/TikTok stories and reel covers. Portrait is best for feed posts.
You can switch sizes inside the editor too.
Placard — social post
Loading…
Drag to position the photo. Pinch or use the zoom slider below.
QR code links to
New Folder
/folder/
Auto-generated from title if blank. Lowercase letters, numbers, dashes only.
When enabled, the folder password unlocks every gallery inside. Children can keep their own passwords for direct links.
Stored hashed (PBKDF2). Leave blank when editing to keep the current password.
When unchecked, the folder is reachable only via direct link.
“Custom order” follows the sequence you drag galleries into in this folder. “Date captured” uses the earliest EXIF capture date across each gallery’s photos; galleries without EXIF info fall back to the upload date.
New Gallery
/gallery/
Auto-generated from title if blank. Lowercase letters, numbers, dashes only.
Used only when tier pricing is left blank
Optional fixed price for the entire gallery
Per-photo prices at four resolution tiers. Defaults: Low-res $3, Med-res $5, Hi-res $12, Original $45. Override per-photo in Manage Photos.
Password
Unlocks the entire gallery (e.g. for the bride & groom). Stored hashed (PBKDF2) for login plus a plaintext copy admin can reveal. Leave blank when editing to keep current.
Viewers who unlock with the full access password get free downloads of every photo plus a “Download all (ZIP)” button — no shopping cart. Guests and keyword-gate viewers keep the normal cart. Requires a full access password set above. Independent of the gallery-wide “Free downloads” mode.
Pick the client this gallery belongs to. Full Access downloads will be logged under their name automatically. Leave blank to instead ask Full Access viewers for their name + email at download time.
Guests with this password see only photos you mark “Show to guests” in Manage Photos. Useful for weddings where the couple sees everything but guests see a curated subset.
Different from the full access password. Stored hashed (PBKDF2).
Turn this on to let each family/group enter a keyword from the filename as their password. The buyer sees only photos whose filename contains that keyword as a separate segment (split on dashes, underscores, dots, spaces, brackets — so “Smith” matches FDay-Smith-001.jpg but not Smithson-001.jpg). Master password still unlocks everything.
Each line becomes one password. Case-insensitive. Editing this list immediately invalidates anyone already unlocked with the old list.
Buyers see a Buy all N matching photos button priced at this rate × their match count. Bulk discounts apply on top. Leave blank to disable.
Shown to guests on the lock screen above the password box. Auto-filled when the keyword gate is enabled — great when each family’s last name is their keyword. Edit or clear it as you like.
Independent of the gallery passwords above. When on, buyers must enter this password on the download page before they can download the zip or any individual photo. The gallery itself stays viewable per the visibility setting above.
Buyers see a password screen on the download page before the zip/photos are served. Stored hashed (PBKDF2).
Behavior
Pick how visitors interact with this gallery. New galleries default to View only — turn on Shopping cart only for galleries you're selling.
Shopping cart — buyers purchase (Stripe)
Standard sales mode. Visitors add photos to their cart, choose a tier (low/med/hi/original), and check out via Stripe. Bulk-photo discount and all-access bundle pricing also apply.
Allow downloads
Shows a Download icon on every photo (full resolution). In Shopping cart mode this turns it into a “client already paid offline” gallery (cart hidden, downloads free). In View only / Approval mode, downloads simply work alongside the existing UI.
Show “Download all (ZIP)” button
Off by default. Turn on for single-client galleries where bulk download is fine. Leave off for events or shared galleries where many people have access — individual photo downloads still work.
Visitors enter their name + email before downloading — captured to your mailing list automatically. They’re remembered for 30 days per browser.
Blur preview for everyone (hover to peek)
Every photo is blurred; hovering reveals one tile at a time. Click-to-expand (lightbox) is disabled. Use this for clients you don’t fully trust yet — they can browse without seeing usable resolution. Cart add buttons still work in Shopping cart mode. Pairs naturally with password protection.
Blur preview for guest viewers only
Only applies to viewers who unlocked with the guest password. Full-password viewers and you see everything sharp. Requires Guest access enabled in the Password card. Lets you share one gallery with two trust levels — give the full client the main password, share the guest password with anyone you don’t fully trust yet.
Bulk-photo discount
When a buyer adds enough photos to their cart from this gallery, a discount kicks in at checkout. Each tier is either a % off the photo subtotal or a flat package price (e.g. 15 photos for $150). Mix tiers freely — the cart applies whichever one is best for the buyer. The all-access bundle is never discounted (it's already a bundle price). Free-download galleries skip the cart entirely so this never fires.
Mode
Follow global defaultForce onForce off
Quick start
Tiers
Mix % off and flat $ packages — whichever tier gives the buyer the best price wins. Leave empty to follow the global ladder.
Eligible sizes
The bulk discount only applies when every photo in the cart is on a ticked size. Mixing in an unticked size disables the discount for the whole cart. Default: Original only.
Low-resMed-resHi-resOriginal
Allow mixed sizes Apply the discount to eligible-size photos only, even when the cart also contains photos in non-ticked sizes. Off = the whole cart must be eligible sizes (default).
Minimum cart subtotal to activate ($)
The discount only kicks in once the eligible-size photo subtotal hits this dollar amount. Leave blank for no minimum.
Group this gallery inside a folder (e.g. yearly portraits for the same family). The folder password unlocks every child gallery, and the cart is shared across siblings.
Cover photo
★Auto-pick (most recent photo)
Per-photo password
New password
Stored hashed (PBKDF2). The buyer enters this on the public gallery page to unlock the photo before purchase.
Manage Photos
Drop photos here or click to upload
JPEG, PNG, HEIC, WebP — up to 80 MB each. Originals stay private; thumbnails & previews are public.
Bulk pricingSet the same price on:at$
Sort by
Tile display
Show filenames
Show camera info
0 selected
♥ Client approvals0 approved
Loading...
New Contractor
Name *
Role
Email
Phone
Zelle handle
W-9 on file?
Mailing address (for 1099)
Name aliases (comma-separated, helps match bank txns)
Notes
Send Fee Schedule
Emails the rate card as a clean black-on-white PDF. Pick which sections to include below — leave all four checked to send the full rate card.
Marketing & Segmentation — all optional, used to target mailing-list campaigns
Date of birthGenderMarital status
Interests
Wedding Engagement Portrait Family Maternity Newborn Event Corporate Headshot Product Real estate Video
Race / ethnicity
Private · admin-only · for community holiday targeting. Select all that apply.
Black / African American White Hispanic / Latino Asian Native American Pacific Islander Middle Eastern / N. African Multiracial Other
Religion
Christian Catholic Jewish Muslim Hindu Buddhist Other None / Secular
Referred by (optional — pick a client or paste their referral code)
Subscribed to marketing emails
This client is a minor (under 18) — enter parent/guardian details; emails go to the guardian
Parent / Guardian & Minor Information
The Name, Email, and Phone above are the parent/guardian's — all contact and signing emails are sent to that email. Add the minor's details and the guardian's relationship below.
Minor's full nameMinor's date of birthGuardian's relationship to minor
Introduces you, links to your portfolio, asks permission to photograph/film the minor, and includes a Minor Model Release for the guardian to e-sign. Save the client first if it's new.
Client
Loading…
Client Proposal
Also generate:Hold (hrs):
Location / Property Release — no-fee permission to film & photograph
Signer title (e.g. Owner)Property address
Owner restrictions (optional)
Commercial Service Agreement — no-fee e-sign; fee invoiced separately
Signer title (e.g. Owner)Quoted fee (optional)
Project / scopeScope notes (optional)
Commercial Image Licensing Agreement — Licensor is Funmi Adeshina; terms pull from the Licensing calculator
Set media, reach, term, exclusivity, image count, and merchandise model in the Image Licensing block on the Photography tab — the contract and fee auto-match. The Client fields are the licensee’s authorized signer; the licensee business goes in the Company field.
Signer title (e.g. Owner)Campaign / brand (optional)
Licensed image(s) description (optional — defaults to Schedule A language)
Minor Model Release — the Client fields are the parent/guardian who signs
Minor's full nameMinor's date of birthGuardian's relationship to minor
Photo $/hrVideo $/hr
Used in the Overtime clause. Defaults: $125/hr photo, $150/hr video.