The Client
Internal teams and the odd client who needs a headshot this week. Cute, not the niche. We do not treat this as a product line. Toolshed only, off /built.
The live app is a self-hosted Astria fork at headshots.pacing.agency. Sign-in is /overview. Support is [email protected].
The Brief
Cheap client and staff headshots without a studio day. Upload a handful of photos, train a model, pick a style pack, download a ZIP. Delete the lot on a timer so we are not sitting on faces forever.
The Approach
One credit trains one model and produces one pack. Training is usually 10-30 minutes. You get an email when the pack is ready. The app shows a 30-day countdown. Warning mail goes out at 14, 7, and 1 day. Use Download All before that.
1. Upload
4-10 photos, under 3MB
2. Train
Astria, 10-30 minutes
3. Generate
One credit, one style pack
4. Download
ZIP before day 30
Technical Implementation
Next.js, Supabase auth, Resend mail, Stripe for credits, Vercel Blob for files, Astria for training. Hosted on Hetzner (headshots-pacing, Nuremberg). Repo is Pacing-Agency/headshots-pacing. Monthly cost in the tool note is £7 plus credits.
| Credits | Price | What you get |
|---|---|---|
| 1 | £14.99 | One training, one style pack |
| 3 | £39.99 | Three trainings, more packs |
| 5 | £59.99 | Five trainings, best value in the note |
| Upload rule | Limit |
|---|---|
| Count | 4-10 photos, one person |
| Size | Under 3MB, JPG or PNG |
| Resolution | At least 512x512, square if you can |
| Face | Centred, no sunglasses or hats |
- Retention: Model, training photos, and generated images delete 30 days after the model is created. That is in the product, not a policy PDF.
- One production host: Do not treat a second white-label instance as live.
- Not the offer: Useful goodwill. Not what we sell as the agency.
Results & Impact
- Staff and clients can get a usable headshot without booking a photographer.
- Credit prices are on the site: £14.99 / £39.99 / £59.99. We are not inventing a cheaper tier.
- Faces do not sit on the box past 30 days if people download in time.
If someone wants a brand photoshoot, send them to a photographer. This is the cheap substitute.
We keep one production host. A second instance for a white-label experiment is not live, and we should not link it from this page.
Why It Worked
We needed the studio substitute more than we needed another SaaS to resell. Forking Astria and hosting it ourselves kept the cost in credits and a small Hetzner box.
- Credit = pack: The pricing is simple enough to explain on Slack.
- Timer is visible: A countdown beats a buried delete policy.
- Toolshed: Stays off the directory so /built does not look like a headshot shop.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.



.jpg)




