Cascadia Forestry Platform
Cascadia & Ramos, Forestry Services
Role
PM-builder lead · contract engagement
Duration
Phase 1 shipped Q1 2026 · Phase 2 in flight
Status
Active engagement

Admin dashboard. KPIs, pending decisions, today's pulse, and daily trends.
The problem
Two related forestry-services companies were running side-by-side on paper timesheets, an Excel payroll spreadsheet held together by one person's institutional memory, and a stack of AppSheet tools that nobody on the field side could keep working. Foremen submitted hours on paper, the office re-keyed them into Excel, and partial payments against 16+ active contracts were tracked across three different systems.
The work happens in remote Pacific Northwest forests where cell signal is unreliable. Crews are bilingual EN/ES. The owners wanted one system that the field could actually use, and that the office could trust for payroll without the weekly reconciliation marathon.
The approach
Discovery first. Two weeks shadowing foremen, office staff, and ownership before writing any code. The asked-for feature (a cleaner AppSheet rebuild) was wrong. The real problem was data fragmentation across three systems and the office's lack of trust in field submissions.
Built mobile-first as a PWA so foremen install it like an app on Android phones. Offline submission queue with conflict-resolution on reconnect. Bilingual UI driven by a single content table. EN and ES rows side-by-side, swap by toggle.
Role-based dashboards (admin / owner / foreman / office / employee) with hard RLS enforcement at the Supabase layer. The office sees all of one company; the owner sees both. Foremen only see their crew. Employees see their own hours.
What shipped
- ▪Phase 1: Auth + roles + crew/job/timesheet schema + foreman submission flow + office review dashboard. Bilingual EN/ES live across the whole UI. PWA install + offline queue working in field-tested conditions.
- ▪Phase 2 (in flight): Data ingest from the legacy Excel payroll, payroll engine, invoice generation, partial-payment tracking against active contracts. Production tracking and expense auto-assignment.
Stack & decisions
Next.js + TypeScript
App Router, RSC where it fits, client components for the form-heavy field surfaces.
Supabase
Postgres + RLS handles authorization. Auth is email/password with magic-link fallback for foremen who forget passwords.
TanStack Query
Aggressive caching + prefetch for offline-first UX. Reconciles cleanly with optimistic updates on reconnect.
PWA
Service worker queues submissions when offline, replays on reconnect with conflict-resolution. Field-tested on rural Oregon coverage.
Tailwind
Mobile-first across every surface. Touch targets 48px minimum. Tested on cheap Android devices the field actually uses.
What you won't see in screenshots
The slider above shows the actual client system with synthetic names and dollar values overlaid at capture time. The live demo at bobilabs.dev/forestry-demo is a public clone of the same code running entirely on synthetic data. Click anywhere. Cascadia Forestry and Ramos Reforestation brand names are the real public-facing companies and are intentionally preserved. Deeper live walkthroughs of the production system available over screenshare under NDA.
Have something we should ship?
60-minute scoping call, then a clear plan for how we'd approach it.








