Live customer-facing landing page for my own field-service business - Vista Lawn Care, operating in Brisbane.
Problem:
Running a field-service business means every inbound lead needs to convert fast. Booking friction kills jobs. Needed: a landing page that lets a customer go from ad-click to paid-deposit booking without picking up the phone - and that I could ship and iterate on without paying a monthly SaaS fee for a booking widget.
What I built:
- Responsive single-page landing with service + pricing visible above the fold
- Booking form wired to operations backend (YardPilot)
- Conversion tracking (GA4 events + one attribution layer)
- Deployed on Laravel Forge, running to production
Outcome:
Live page driving real bookings for y own operating business. Same pattern I ship to client landing-page rush engagements - Stripe-wired, conversion-tracked, mobile-first, deploy fast.
Why this is proof: I didn't build it as a portfolio piece. I built it because I needed it. It processes real bookings every week. When I quote your 3-day rush landing page, I'm reusing the pattern I bet my own revenue on.
Stack: Laravel 13, Google Analytics 4, Tailwind CSS, Laravel Forge
0
3
Scheduling and invoicing software built specifically for lawn care operators running 1-5 crews.
Problem:
Lawn care operators spend a disproportionate amount of their week on admin - quoting, scheduling, invoicing, chasing payment. Existing CRMs are either too generic (Salesforce-heavy, priced for enterprise) or too light (calendar apps + spreadsheets held together with tape). Needed: purpose-built operational software that covers quote + schedule + invoice + payment without the operator leaving it for any step.
What I built:
- Quote builder with custom-facing quote links
- Crew scheduling calendar with drag-to-reschedule
- Invoicing with saved-card Stripe payments
- Branded customer portal for quote acceptance + payment
- Automated reminders across the quote-to-payment lifecycle
Outcome:
Paying operators in production running their quote-to-payment flow end-to-end inside one app. Proof of UI polish + data-model discipline on longer-lived operational SaaS - the engineering that a 14-day client MVP inherits from day one.
Stack: Laravel 13, Vue.js 3, Stripe (one-time payment + saved cards), MySQL, Laravel Forge, GitHub Actions CI/CD.
0
7
Missed-call capture service for Australian tradies. When a tradie missed a call, the caller's details and job type get captured and pushed to the operator's phone via SMS and email in under 60 seconds.
Problem:
Australian tradespeople miss roughly 40% of inbound calls. Hiring a full-time receptionist is uneconomic for sub-$500K businesses. Needed: a near-real-time system that captures the caller, categories the job, and pushes the ticket to the operator - at a price tradies will actually pay (under $2/day).
What I built:
- Vapi + Twilio voice pipeline handling inbound missed calls
- SMS + email notification rail firing inside 60 seconds of call end
- Operator dashboard for ticket management
- Stripe billing (subscription + one-time), per-operator pricing
- Uptime-critical deploy pipeline (every missed capture = a missed job)
Outcome:
Live product with paying users. Per-operator pricing under $2/day enabled by a focused single-call-handling path rather than a full AI receptionist build - proof that scoped simplicity beats feature bloat in the tradie market.
Stack: Laravel 13, Vue.js 3, Inertia.js, Vapi Voice + Twilio SMS, Stripe Billing, MySQL, Laravel Forge, GitHub Actions CI/CD.
0
10
Audio course platform that teaches professional skills by modelling what top performers actually do - not what they say they do.
Problem
Build a subscription learning platform where content delivery, subscription billing, and authorisation stay tightly integrated, without fragmeting across three different third-party tools.
What I built:
- Laravel + Vue + Inertia codebase, single-repo
- Stripe Billing (subscriptions) with webhook lifecycle handling
- Content delivery + access-gating tied to subscription state
- Analytics layer for engagement + churn signals
Outcome:
Live in production with paying subscribers. Billing + content + analytics all running on a single Laravel + Vue stack - no Zapier-tape, no fragmented tool chain.
Stack: Laravel 13, Vue.js 3, Inertia.js, Tailwind CSS, Stripe Billing, MySQL, Laravel Forge, Github Actions CI/CD.