It was built for a lawn care business and that part is incidental. What it covers is the whole run of a service job: someone finds you, you work out what the work is and what it costs, they approve it, you schedule it, you do it, you get paid, and you find out whether it was worth doing. Most software picks one of those. This is four connected pieces instead: a back office, a customer portal, a public website, and the platform underneath that lets a business sign up and get all three.

Every business gets a public website it can edit itself, with a contact form that drops a new lead straight into the pipeline. Roadside signs get placed on a map, grouped into zones, with a record of what went where. Channel tracking ties each lead back to whatever produced it, and every channel comes with a written playbook for running it.
Measure the property off satellite imagery, area by area, each area assigned to a different service. Photos of the site run through image analysis that comes back with structured findings you can price against. A pricing engine turns all of it into a number that accounts for time, materials, equipment, labor and tax, with rates set per service and overridable on any single job. That becomes a proposal document: versioned, sent, tracked, and approved by the customer.
The customer reviews the proposal in their own portal, reached by a magic link. They approve it there themselves, and proposal versioning keeps every revision. Approval turns the lead into a customer record with the whole history attached.
Customers get grouped into service zones you draw on a map, and anything falling inside a boundary is assigned to its zone on its own. Recurring schedules generate forward automatically on a season cadence. Route ordering sequences each day against real drive times and distances, and the day timeline lays the whole thing out hour by hour before anybody leaves.
The day is bracketed by a day start and day close. Every visit gets a worksheet shaped to the service being performed, with gates that stop a job being marked finished before the required steps are filled in. Execution photos attach to the visit. Regulated work writes a chemical application record against the visit and the product used. Weather delays, mileage and travel time get logged as they happen.
Customers pay from their own portal, with card payments running through Stripe and webhook reconciliation keeping the ledger correct when a charge succeeds, fails or gets refunded. Payment plans split a large job into installments. Budget billing levels a year of recurring service into one predictable monthly number.
A profit and loss view runs off the real numbers. Per-job profitability says which work actually made money once the costs came out. Expenses arrive by receipt parsing, where a photograph of a receipt comes back as a categorized line item, and asset depreciation writes equipment down across its life. Out the other end come quarterly tax estimates and a bundle for an accountant.
It runs on Laravel with Stancl Tenancy. A business that signs up gets a separate MySQL database, so one company's customers, books and payments are never in the same tables as another's.
The back office is server-rendered pages, with JavaScript calling the server for the parts that change while you work: a price recalculating, the day's route, the worksheet. There is no front-end framework in between.
When a payment goes through, fails, gets refunded or gets disputed, Stripe tells the software and the ledger updates itself. A repeated message changes nothing the second time. 318 automated test files check the business logic.
It is in its second to last round of testing. You can make an account and go through it, put customers in, and see how the pieces actually fit together. The AI analysis is switched off at the moment, and there is a list of things to fix before it goes to a paid release.
If you go in and something is broken, or something obvious is missing, I want to hear about it.