One page your customers already have the link to. Job status, invoices, photos, next visit. Lives on your domain, ships on tools you keep, cancels anytime.
The job on your calendar with their name, address, and an ETA. Confirmed the moment you say yes.
First view
Day-of updates. Before-and-after photos. When the crew is on the way and when they leave.
During the job
A single-tap pay link. A receipt in their inbox the moment it clears. No portal login to remember.
After the job
The portal lives at something like portal.acmeplumbing.com, not jobhub.io/acmeplumbing. When your customer bookmarks it, they land on you. When you text them the link, your name is in the URL. When they show a neighbor, your name is on the screen.
The SaaS portals are fine tools. But every customer login is a reminder that the software owns the relationship. When the software raises prices, drops a feature, or you decide to leave — the portal and its history walk out the door with them.
No per-seat fee. No forced fields. No branded footer that says Powered by [Their SaaS]. Built once on tools you own or can own outright, extended monthly if you want us to.
Does this replace Jobber, Housecall Pro, or Buildertrend?
Depends how you use them. If you rely on them internally for scheduling and invoicing, keep them — this portal is the customer-facing surface, which is a separate concern. If all you use those tools for is the built-in client portal, then yes, a custom portal on your domain can replace that piece.
What does a custom client portal cost?
Custom builds run $5,000 to $25,000 depending on scope. Most first portals land in the middle of that band. A managed retainer ($500 to $5,000 a month) is optional if you want us to keep extending it. The audit that tells you whether it is worth building is free.
How long does it take to build?
Two to four weeks for the first version. We ship the shortest useful thing first — usually job status plus an invoice link — and add photos, appointment reminders, and other fields based on what your customers actually ask for.
What if my customers already use a Jobber or Housecall Pro portal?
We can wire the custom portal to read from that tool, so you do not double-enter jobs. Or we can build it independently if you plan to move off the SaaS portal anyway. Both paths keep your data yours.
What happens if I stop paying?
The portal keeps running on your domain and the code stays yours. That is the whole point of building on tools you own. You lose our maintenance and extensions, not the portal itself.
More workflows built on tools you already own the accounts for.
The moment a call goes unanswered, the caller gets a text from your business number. The lead lands with a name and a job description, not a voicemail.
See how it works → Scheduling and invoicingBooked-job reminders and 7 / 14 / 30-day invoice chases. Both stop the moment the customer replies or pays.
See how it works → Photo documentationCrews capture, label, and organize slope photos with GPS/time metadata. Automatic PDF report generation directly to your own storage.
See how it works → Spreadsheet CRM replacementTrack deals and automate estimate follow-ups on HubSpot's free tier or custom databases. Flat-fee setup, zero monthly seat licensing markups.
See how it works →The audit that tells you whether a custom build is worth it starts with your phone line. We call it, document what happens, and hand you the cost in writing. One page, no pitch attached.
Or email origin@stoneveil.io. Replies go to a real inbox, not noreply.