punch·card

Track shifts, breaks, mileage, receipts, and pay across multiple jobs. All from one installable app.
Open Punchcard → See features
Free & private — your data stays on your device. No account required.
Time tracking
💼 Multi-job
🚗 Mileage
📷 Receipts
☁️ Dropbox sync
📄 PDF export
Features

Everything you need.
Nothing you don't.

Built for gig workers, delivery drivers, freelancers, and anyone who works hourly across multiple jobs.

Punch in / out

One-tap punch in with live timer. Start and end breaks — the clock pauses automatically. Break timestamps are recorded with start and end times.

💼

Multiple jobs

Add unlimited jobs, each with its own color, pay rate, pay period, overtime rules, rounding, auto-break, mileage rate, and saved locations. Switch between them instantly.

📍

GPS location

Automatically captures your location on punch-in and reverse-geocodes it to a street address. Save named locations — the app auto-detects when you're within 250m.

💰

Pay calculation

Set your hourly rate per job with per-day-of-week overrides (e.g. weekend premium). Rate history is saved per pay period — changing your rate doesn't affect past earnings.

Overtime

Configure daily and/or weekly overtime thresholds with custom multipliers per job. The timesheet shows regular vs. OT hours and calculates blended pay automatically.

🚗

Mileage tracking

Dedicated mileage tab with GPS start/stop trip flow. Captures start and end locations, calculates straight-line distance, and lets you enter actual odometer miles. Round trip toggle. Per-job reimbursement rate.

📷

Receipt capture

Snap photos of receipts with your phone camera. Auto-compressed for storage efficiency. Log vendor, amount, date, and notes. Export as CSV or view in a grid.

📊

Timesheets

Navigate pay periods with a swipeable period selector. Summary tiles show hours worked, estimated pay, sessions, break time, mileage, and reimbursement at a glance.

📄

PDF & CSV export

Export timesheets as professional PDFs with per-job tables, overtime breakdown, mileage section, and totals. Or export raw CSV for spreadsheets. Filter by job, month, or custom date range.

☁️

Dropbox sync

Sync across devices via Dropbox. Merge-by-ID with tombstone deletes — changes from any device are preserved. Receipt photos sync as separate files. Auto-syncs after every punch action.

🔧

Rounding rules

Round tracked times and breaks to the nearest 5, 10, 15, or 30 minutes. Choose nearest, up, or down rounding. Configure per job to match your employer's payroll system.

🍽

Automatic breaks

Auto-deduct break time from long shifts. Set the break length and the hour threshold. Optionally apply to manual entries too. Configured per job.

The clock that actually works for you

Punch in, take breaks, punch out. The timer pauses during breaks and resumes when you're back — no math required. Every break is timestamped so you have a full audit trail.

  • Live timer counts working hours in real-time
  • Break timer shows how long you've been away
  • Break start/end times saved on every entry
  • Manual entry for shifts you forgot to track
  • Auto-save — nothing lost if the app closes
On the clock
04:32:17
Working hours accumulating
Started
08:15:00
Location
Dollar General
PUNCH OUT

Know what you've earned — down to the penny

Set rates per job, per day of the week, with overtime multipliers. The app calculates it all and shows you exactly what each pay period is worth.

  • Per-day rate overrides (e.g. $18/hr on Sundays)
  • Rate history — changing rate doesn't rewrite the past
  • Weekly and daily overtime with custom multipliers
  • Mileage reimbursement included in pay period totals
  • Export everything as a professional PDF timesheet
Hours
38.50
Pay
$548.63
Regular
38.5h × $14.25
OT (1.5×)
0.0h
Mileage
+ $24.50
Breaks
3h 15m

Track every mile

Dedicated mileage tab with a GPS start/stop flow. Hit start when you leave, stop when you arrive. The app grabs both locations and calculates the distance.

  • GPS captures start and end coordinates
  • Reverse-geocoded to street addresses
  • Straight-line distance calculated automatically
  • Edit actual odometer miles before saving
  • Round trip toggle doubles the distance
  • Per-job reimbursement rate with rate history
  • Manual entry for trips you forgot to track
Trip in progress
📍 Tracking
12 minutes elapsed
From
123 Main St, Ontonagon
🛑 STOP TRIP
Sync & Privacy

Your data. Your device.
Your choice to sync.

Everything is stored locally on your device. Optionally connect Dropbox to sync across devices — your data is never sent to our servers because we don't have any.

Storage
Browser local storage
Sync
Dropbox (optional)
Merge
Per-record by ID
Conflicts
Newest edit wins
Deletes
Tombstone propagation
Receipts
Separate file upload
Auth
OAuth PKCE (no secret)
Backend
None — fully client-side
Technical

One file. Zero dependencies.

Punchcard is a single HTML file with no build step, no framework, and no server. Vanilla JS, CSS, and the Web Platform APIs.

Framework
None (vanilla JS)
Hosting
Cloudflare Pages
Install
PWA (service worker)
Offline
Full offline support
Geolocation
Navigator + Nominatim
PDF
jsPDF + AutoTable
Theme
Dark / Light / Auto
Job accent
Dynamic from job color

Start tracking

Open Punchcard in your browser, add it to your home screen, and you're set. No signup, no subscription, no strings.

Open Punchcard →