Clients with per-property service contracts. Crews with members + assigned trucks. Weekly schedule auto-routed by geography. Post-service photo + note capture on the crew tablet. Auto-invoicing from completed services. Built for 2-10 crew operations that have outgrown a shared Google Sheet.
Each client: property address(es), services contracted (mow / fertilize / aeration / cleanup), frequency (weekly / bi / monthly), per-visit pricing. Year-over-year retention view.
Each crew: members, lead, assigned truck + trailer, equipment loadout. Timeclock via phone GPS. Per-crew productivity score (jobs-per-hour).
Weekly schedule laid out geographically. Auto-sequence stops to minimize drive time. Drag-to-reassign between crews. Built-in handling for weather cancels + reschedules.
Crew tablet app: before + after photo at each stop, 1-tap service completion, issue flag (broken sprinkler, gate locked, dog loose). Client sees the photos in their portal if enabled.
Completed services roll into invoices at cycle boundary. Stripe auto-pay for contract clients. One-off additions (extra aeration, storm cleanup) added before invoice send. Late-pay reminders.
Flask + SQLAlchemy. Runs on a laptop in the shop or a $5 VPS. Your client list + pricing doesn't leak to a Yardbook-scale platform.
Hosted plans are early-access. Self-host today; email tim@dangercorn.net to join the waitlist.
landscapepro is one of 220+ verticals scaffolded from the same template. Each gets a working skeleton for free; individual ones get promoted to full products as demand surfaces.