Photos are the most powerful single piece of evidence in a proof-of-service receipt. A customer looking at a photo of their freshly-vacuumed pool sees value in a way that a chemical list alone cannot deliver.
Taking photos
On the visit screen, tap Photos → +. The camera opens directly. Take as many shots as you want; tap done to return to the visit screen.
Common patterns we recommend:
- Before/after — one shot of the pool when you arrived, one when you finished.
- Equipment pad — pump, filter, and salt cell or chlorinator.
- Skimmer basket and pump basket — proof that you actually emptied them.
- Anything that needs the customer's attention — broken tile, equipment leak, low water level.
On-device compression
PoolStamp compresses photos on your phone before upload. A typical iPhone photo (~3 MB) becomes ~600-800 KB after our compression. This means:
- Upload works on weak cellular signal
- Your data plan isn't eaten by visit photos
- Storage on your phone stays light
There's no quality loss the customer will notice on email or portal viewing.
Where photos are stored
Photos upload to Cloudflare R2 (an S3-compatible object store). They're attached to the visit record and never expire. Customers see them in the receipt email and any time they open the customer portal.
Photos on the receipt
The receipt email shows photo thumbnails inline; clicking any thumbnail opens the full-size image. There's no per-receipt cap, but practically over 12 photos in one receipt is overwhelming for the customer. 4-6 is the sweet spot.
Deleting a photo
In the visit screen, tap a photo and choose Delete. It's removed from the visit and from R2 storage. If the receipt was already sent, the customer's email still references the deleted URL — clicking it will 404. Edit with intent.