The problem
Yellowstone Country Outfitters is a licensed outfitting operation based just north of Gardiner, Montana. Jake Tanner runs eight guides across 180 backcountry trips per year — elk and mule deer hunts in the fall, cutthroat fishing in summer, and multi-day pack trips through the Absaroka-Beartooth Wilderness year-round. The operation holds Special Use Permits from two USFS Ranger Districts and a BLM recreation permit, each with its own use limits, reporting windows, and operating plan requirements.
The booking system was a phone call and a spiral notebook. A client would call, Jake would check the notebook for open dates, pencil in the trip, and mail a paper waiver. Deposits came by check or Venmo with no automated confirmation. Double-bookings happened three to four times a season — a guide would get scheduled for a float trip the same day he was already committed to a pack-in hunt. Jake caught most of them during his Sunday night planning session, but the ones he missed cost him: rebooking a client mid-season means scrambling for replacement dates, and the apology call erodes trust with a clientele that books 12 months out.
Compliance was worse. Each USFS permit caps the number of service days and client-days per season. Jake tracked actuals on a clipboard in the barn office — tick marks in a grid, tallied monthly and transferred to a spreadsheet his wife maintained. The BLM permit required quarterly activity reports with specific data fields: trip dates, group sizes, areas used, and any resource impacts observed. Preparing for the annual USFS permit review meant two full days of assembling records from the notebook, the clipboard, the spreadsheet, signed waivers from a filing cabinet, and guide certifications from a folder on his laptop.
The breaking point came in November 2025 when Jake’s USFS permit reviewer flagged three discrepancies between his reported client-days and the service-day totals. The numbers didn’t match because two trips had been recorded in the notebook but never made it to the clipboard. Jake spent a week reconstructing records from guide texts and client emails. The permit was renewed, but the reviewer’s written comments included “recommend improved record-keeping” — a flag that could complicate future renewals.
Jake called Coldsmoke after a referral from a neighboring ranch. He wanted three things: stop double-booking guides, automate USFS and BLM reporting, and let clients book and sign waivers online so he could stop playing phone tag during hunting season when he’s in the field 14 hours a day.
What we did
Week one we mapped the data model. Every entity in Jake’s operation became a structured record: trips (date, type, area, permit zone, max group size, assigned guide), guides (certifications, availability, wilderness first aid expiration), clients (contact info, booking history, waiver status, deposit status), and permits (agency, district, season dates, service-day cap, client-day cap, reporting schedule). We ingested two years of records from the notebook, clipboard spreadsheet, and filing cabinet to establish baseline actuals against each permit’s caps.
Week two we built the trip calendar and guide scheduling engine. The calendar shows every booked trip with guide assignments, permit zone, and capacity. Conflicts — a guide double-booked, a trip scheduled outside permit season dates, or a booking that would exceed the permit’s service-day cap — surface as inline warnings before the booking is confirmed. Jake can drag trips between dates and guides with constraint validation running in real time. We added a guide availability layer so time-off requests and certification expirations block scheduling automatically.
Week three was the public booking page and payment flow. Clients land on a branded page showing available trip types, dates with remaining capacity, and pricing. They select a trip, enter their party details, and pay a deposit via Stripe. The booking flows into the calendar with a pending status until Jake confirms the guide assignment. Confirmation triggers an automated email with trip details, packing list, and a link to the digital waiver.
Week four we built the digital waiver and document system. Waivers are pre-filled with trip and client details and signed on-screen — phone, tablet, or desktop. Signed documents store as PDFs in S3 with metadata linking them to the trip and client records. Jake can see at a glance which upcoming trips have unsigned waivers and send a one-tap reminder. We added guide document tracking: CPR certifications, wilderness first aid cards, and state license copies, each with expiration alerts at 90, 60, and 30 days.
Week five was the compliance engine. TrailBook continuously tracks service days and client-days consumed against each permit’s seasonal caps. A dashboard widget shows current utilization as a percentage with projected season-end totals based on booked trips. When any permit approaches 85% of its cap, Jake gets a push notification. We built the quarterly BLM activity report as a one-click export: trip dates, group sizes, areas used, and resource impact notes pulled directly from trip records. The annual USFS permit review package — all the data the reviewer needs in a single PDF — generates in under a minute.
Week six we built the offline-capable PWA shell. Guides need to check schedules and log trip notes from trailheads with no cell service. The app caches the current week’s trips, client rosters, and waiver statuses on-device. Guides can log trip completion, group size adjustments, and resource impact notes offline; data syncs when they’re back in range. Push notifications for new bookings, schedule changes, and waiver reminders work on both iOS and Android.
Week seven was the client CRM, mobile notification tuning, and production hardening. We added a client profile view showing booking history, lifetime value, preferred trip types, and communication log. Jake can tag clients for seasonal outreach — elk hunters get a September reminder, spring anglers get notified when runoff clears. We load-tested the booking page for the January rush when elk draw results come out and 40+ clients book within 48 hours, then hardened the Stripe webhook pipeline and deployed via Docker Compose on a single VPS with automated daily backups.
Results
In the first full booking cycle, TrailBook processed 52 trip bookings with zero double-bookings — down from three to four per season under the notebook system. Guide scheduling conflicts that previously surfaced mid-week now get caught at booking time.
The compliance workload dropped dramatically. Jake’s wife no longer spends Sunday evenings updating the spreadsheet. Permit utilization tracking is continuous and automatic. The quarterly BLM report that took half a day of assembly now exports in one click. When Jake’s USFS permit reviewer came for the spring review, he pulled the annual package in 20 minutes — the reviewer commented that it was the cleanest submission she’d seen from a small operator.
Online booking drove a 22% increase in new clients in the first season. Clients who previously had to call during business hours — difficult when Jake is guiding — now book and pay deposits at midnight from their phones. The digital waiver completion rate hit 94% before trip day, eliminating the morning scramble of printing and signing paperwork at the trailhead.
The 6 hours per week Jake saved on compliance and scheduling translated to roughly $12,000 per year in recovered time at his guide rate. More importantly, he spent that time where it generates revenue: scouting new areas, maintaining pack stock, and building client relationships. The $38k build paid for itself before the fall hunting season started.
