A Sunshine Coast home-services business now runs its entire customer operation — website, instant lead response, an AI receptionist, an AI mockup tool and an auto-publishing content engine — on software it fully owns, for roughly $0–15/month instead of $1,200–2,300+/year in rented SaaS.
| Business | Vivanova Blinds — residential blinds & shading, Sunshine Coast QLD (my own / the reference build) |
| Industry | Home services / trades |
| Brief | Get off a $97/mo all-in-one SaaS without losing a single capability — and gain ones it didn't offer |
| What I built | Owned website + serverless lead pipeline + AI receptionist + AI mockup lead magnet + auto-publishing blog + production hardening |
| Stack | Vercel · Resend · Cloudflare · Airtable (optional) · Claude · OpenRouter (image gen) · custom JS/Python |
| Cost | ~$0–15/mo owned, vs $97/mo SaaS (+ optional $97/mo AI add-on) it replaced |
| Status | Lead pipeline, AI receptionist (text), mockup tool, blog and hardening live; voice receptionist in rollout |
The business was paying $97/month for an all-in-one SaaS (GoHighLevel) to host its website and capture leads — with the platform's AI receptionist gated behind a further ~$97/month add-on. That's a recurring $1,200–2,300+/year for a stack the business didn't own, couldn't fully customise, and would lose entirely the day it stopped paying.
The core jobs were simple — capture every enquiry, respond instantly, never drop a lead, and answer common questions after hours. The goal: own the whole stack, match every capability the SaaS provided, add the ones it didn't, and drive the recurring cost to near zero — without making the business more fragile.
A complete, self-owned operations stack, deployed and running in production.
A custom site (Vercel) with a quote form that accepts a photo upload. On every submission a zero-dependency serverless API emails the owner an instant lead notification, sends the customer a branded auto-responder from an authenticated domain (SPF/DKIM), optionally upserts to a CRM (Airtable), blocks spam (honeypot), and is fail-safe by design — if any channel errors, the form tells the customer to call rather than show a false "we got it." A lead is never silently dropped. Verified end-to-end with a live submission including a file attachment.
A Claude-powered receptionist grounded in a curated knowledge base (products, service areas, lead times, warranty, process, pricing ranges). It answers safe questions automatically, captures and offers to book the lead, and escalates the moment a chat turns to a firm price, a complaint, an unusual job, or a hot "can someone come today?" — handing those to the owner. It never quotes a final price and never handles complaints on its own. Passed a 22-scenario QA suite before going live. Web chat is live; SMS and voice are in rollout.
A customer uploads a photo of their room and gets back an AI-generated render of that window fitted with the product — a "see it before you buy" hook the old SaaS couldn't do. Each render takes ~12 seconds, costs ~4¢, and is owner-approval-gated before it's sent.
A generator builds and auto-publishes the blog on a weekly schedule, then auto-commits and redeploys — a hands-off SEO/content drip with no monthly content tool.
The stack passed a 10-point production-readiness audit: a WAF rate-limit rule (20 req / 60s per IP on the lead API → 429) closing autoresponder-spam and cost-burn vectors; an uptime monitor every 30 minutes across 4 owned sites plus a synthetic, side-effect-free probe of the lead API, alerting after two consecutive failures and on recovery; and auto-commit + redeploy after every publish, with the whole site under private version control and secrets kept in platform env, never in the repo.
The whole stack is driven by a single configuration file (business.yaml) that holds everything specific to the business — name, ABN, service area, products, brand colours, escalation rules. The website, the receptionist, the quote logic and the automations all read from it.
One file = one business. To stand the same stack up for a different service business, I swap the config and repoint the integrations — I'm not rebuilding from scratch each time. A plumber, builder, electrician, or any business that captures enquiries online can get the same own-it-don't-rent-it lead pipeline, AI receptionist and content engine — fast.
I build owned, AI-automated lead-and-response systems for service businesses tired of renting their stack. Start with a free 30-minute audit — I'll run a real enquiry through your site first, then show you this live build on the call. Proof available on request: the live site, the lead-notification flow, the receptionist answering test conversations, and a sample AI mockup render.