PUNCHKARD
The work record for skilled trades

Punch in.
Your clients get a text.
Punch out.
They get the receipt.

Built for plumbers, electricians, HVAC techs, handymen, landscapers, and the people who show up. Two taps per job. Your clients in the loop. Your work on the record.

Interactive preview

See the app. Hold the button.

Real iPhone-frame demo of the punch-in / punch-out flow. Press and hold — see what your client sees the second you commit. 60 seconds, no signup.

Try the demo →

— or get on the beta list —

Coming soon. We'll text you when the beta opens. Cancel by text.

What you get

Verified work record

Every punch is GPS-stamped, time-stamped, and confirmed by the customer. Daily-anchored to an independent timestamp authority. Your defense in any dispute.

Auto-text your clients

Punch in — they get a text with your ETA. Punch out — they get photos, an invoice, and a Pay button. No more "are you almost done?" calls.

$

Get paid in the app

Card, Apple Pay, Google Pay, ACH. Money lands in your bank in 2 days. No invoices to chase, no checks in the mail.

Multi-visit jobs + estimates

Drywall + paint over 3 visits? One job, three records. Free or paid estimates that convert to jobs in one tap when the customer accepts the quote.

License renewal alerts

SMS at 60, 30, 14, 7, and 1 day before your license expires. Never let a job slip into "license expired" territory by accident.

English & Español

Each client picks their language. Your texts go out in theirs, automatically. Built for the bilingual jobsite from day one.

Reviews that share themselves

Your customer leaves a review on Punchkard right after the job — tied to a real verified record, so it can't be faked. They get one tap to also post it on Google, Facebook, Yelp, or Nextdoor. Same prompt every time, no rating gates, no funny business — just real reviews where new customers find you.

→ Google → Facebook → Yelp → Nextdoor → Thumbtack

Your week

Every visit on the calendar.
Every conflict caught.

Plumbers don't run on spreadsheets. Punchkard handles working hours, time off, holidays, and back-to-back routing — and pings your clients when something changes.

Week of May 12 ◀ Today ▶
Mon12
9:00a Sarah Johnson · water heater JOB
11:00a Mike Chen · kitchen leak diag. EST
1:30p Theresa S. · drain snake JOB
Tue13
9:00a Lin family · faucet · visit 2/2 JOB
2:30p Apex office · repipe walkthrough EST
Wed14
9:00a Sarah Johnson · drywall · visit 2/3 JOB
Thu15
Time off · Vacation
Auto-replies on for inbound texts
OFF
Fri16
Time off · Vacation
Back Mon May 19
OFF
Sat17
9:00a Garage door · panel · half-day JOB

Each visit on its own line

Multi-visit jobs (drywall + paint over 3 days) show as separate calendar entries. Punch into the right one — no confusion.

Plug into your phone calendar

One iCal feed shows up in Google, Apple, or Outlook calendar — read-only. Your phone already knows your day before you open Punchkard.

Off the clock = off the radar

Time off, holidays, after-hours all set once. Clients who text get a heads-up: "Mike's off Thu–Fri, back Monday." No missed messages, no awkward silence.

?

"Saturday at 10 AM?" answered in two seconds

One-tap availability check considers working hours, conflicts, time off, and travel buffer between jobs. No more flipping through a calendar with the customer on the phone.

Subscribed iCal feed works in: → Google → Apple → Outlook → Fastmail

Customers book themselves in

Your own booking page.
Live the day you sign up.

Every Punchkard pro gets a public booking page at signup — no setup. Share the link, customers pick a time, you confirm by SMS. The calendar respects your hours, time off, and any coverage that's about to lapse — license, insurance, bonding. If something's set to expire, customers stop seeing dates past it.

M
MIKE
Plumber · Brooklyn
1. Pick a date
Mon12
Tue13
Wed14
Thu15
Fri16
Sat17
Sun18
2. Pick a time
8:00
9:00
10:00
11:00
License expires Jun 30 → dates after that aren't shown to customers.
  • Smart calendarAvailable times, working hours, time off, and existing visits — all reconciled automatically.
  • Coverage-awareDates past your license, insurance, or bonding expiration aren't bookable. Whichever expires soonest is the cap. Renew early — the window reopens the moment a new expiry hits.
  • SMS confirm loopCustomer books → you get a text → reply YES or NO → customer hears back. No app needed for either side.
  • TCPA-clean consentCaptured at the form, stored with the booking, audit-ready.
  • SEO-positive URLEach booking page is a real URL on a verified-pro platform. Share it on Google Business, Yelp, your truck wrap, or your invoice.
Your booking URL
punchkard.app/book/your-name

Auto-generated at signup. Editable once if you want something shorter.

See a live example →

On the record

Records that hold up.
Privacy that doesn't sell out.

Punchkard's value is being trusted with the records of your work and your customers' details. Three reasons that trust is enforceable, not promised.

Tamper-proof

Locked by math, not policy

Every punch is signed, chained to the prior punch, and anchored daily to FreeTSA — an independent timestamp authority recognized by U.S. federal courts. If anyone (including us) tries to alter a record after the fact, the signature breaks. You can verify any record with one OpenSSL command.

Encrypted

Codes never sit in plaintext

Alarm codes, gate codes, garage codes, special instructions — encrypted on your phone before sync. They sit in our database as ciphertext we can't read. A leaked backup is gibberish to anyone who gets it.

Yours

Export anything, anytime

Full job history, photos, client list, payment history — yours to download whenever. No per-export fees. No "premium tier" gates on your own data. Cancel and your records still belong to you.

A real verified record

The receipt that sells the next job.

Every job creates a tamper-proof record. Customers see the timeline. New customers see the proof. Below: a real receipt rendered from real data, with what makes each row unfakeable.

SAMPLE · WATER HEATER INSTALL ✓ VERIFIED
1
Punch in · 9:14:23 AM EDT
GPS 40.6782°N, 73.9442°W · accuracy 8m · server timestamp · hash chained to prior
2
Customer reply · 9:36:08 AM
Sarah replied "YES" to ETA SMS — confirmed Mike was on site
3
Photo attached · 11:42:11 AM
SHA-256 d4e2f8a9… · EXIF timestamp + GPS preserved
4
Punch out · 11:47:08 AM
Same crypto chain · time on site computed, not declared: 2h 33m
5
Payment · 11:50:32 AM
$475 via Apple Pay · Stripe Payment Intent pi_sample_3OqWaterHeater2026
6
Anchor proof · midnight UTC
Daily anchor at FreeTSA · verifiable URL · RFC 3161, court-recognized
  • 1 Server-side timestamp + GPS. Mike doesn't enter the time. The phone reports GPS, the server reports the clock. Both go into the chain.
  • 2 The customer's own SMS reply. Three independent signals confirm Mike was there — GPS, server clock, and Sarah's "YES." None can be forged unilaterally.
  • 3 Photo SHA-256 in the chain. Edit the photo, swap the photo, the chain breaks. Auditors compute the hash themselves.
  • 4 Total time is computed. Mike doesn't write "2h 33m." The system subtracts punch-in from punch-out. No fudging.
  • 5 Stripe is the source of truth for payment. Direct dispute path through Visa/MC/Amex. Punchkard isn't between Mike and the customer's money.
  • 6 RFC 3161 anchor. Daily merkle root signed by FreeTSA — recognized by U.S. federal courts. Anyone can verify with one OpenSSL command.
See the live receipt →