Work

Two sites, and everything running under them.

Both sites are live. We built them and we run them. Every figure below is countable in the code: products in the catalogue, pages in the routes, redirects in the config. There is no results section. Revenue belongs to the client.

One disclosure worth making first: Smart-Space and SmartCare Living share a managing director. Two businesses, one client relationship, and the testimonial below is from him.

Home security installation, Ireland

Smart-Space

smart-space.ie

A shop that sells fitted equipment, so the checkout has to sell the fitting too. Card payment and an installation slot in one transaction, booked against the installer's live calendar.

smart-space.ie
The Smart Space homepage as it appears on a laptop.
The homepage as it was served on 26 August 2026.

The situation

Smart-Space sell and fit smart-home security: doorbells, floodlight cameras, whole-home bundles. The old shop ran on Shopify. It took the money and knew nothing about installer availability, so every order needed a phone call to agree a date. Two systems, two diaries.

What was built

A shop that understands configuration

15 products resolving to 151 buyable configurations, from €139 to €1,577. Wiring, number of devices and finish are the answers that change the price, and all three are asked on the product page.

The installation booked inside the checkout

The customer picks a date and a two-hour window while paying. Availability is checked live against the installer's calendar, lead times differ by job type, and the appointment is created automatically the moment the payment clears.

A checkout that revalidates every price on the server

Every line is resolved again on the server against the real catalogue and rejected if the price falls outside the range for that product. A price edited in the browser does not become a Stripe session.

Conversions measured twice

Ad blockers, consent refusals and backgrounded mobile tabs drop a share of browser-fired conversions, and the losses land disproportionately on paid traffic. Each conversion is sent a second time from the server, with email and phone hashed first.

One screen for the whole operation

Stripe orders, calendar bookings and web enquiries merged into a single view, with the live Stripe balance, the value of work already booked, and a button that opens the day's jobs as a multi-stop route in Google Maps.

The old shop's addresses kept working

31 permanent redirects carrying the Shopify URL structure onto the new site, written after a Search Console failure was traced to the previous many-to-one redirect pattern.

Products
15, in 151 configurations
Pages
48
Payments
Stripe, live
Structured data
38 files, 25 schema types
Health probe
Every 30 minutes
Live since
March 2026

An order that loses its appointment repairs itself

Payment and calendar are two systems, and two systems occasionally disagree. A job runs every day, finds orders that were paid for but carry no appointment, and books the missing one. The same job tests that the calendar connection is still alive: an expired token announces nothing, it stops creating appointments, and the first person to notice is a customer waiting in on the wrong day.

Every order used to mean a phone call to agree a fitting date. Now the customer picks their slot while they are paying and it is in the installer's diary before I have seen it. I open one screen and I can see what has come in, what is still owed and what the booked work is worth, without asking anyone for a spreadsheet. The ads side is the part I did not expect: I can check for myself whether a conversion actually reached Google instead of being told it did, and the sales get counted from the server as well as the browser, so the reports are closer to what I banked. On the care side the enquiries go five separate ways, so one of them cannot quietly disappear. That was the part that used to keep me up.

Nigel · Managing Director, Smart-Space and SmartCare Living
Eldercare advice and equipment, Ireland

SmartCare Living

smartcareliving.ie

Visitors arrive mid-crisis. The site scores urgency in ninety seconds and sends every enquiry five separate ways, so none of them can be lost.

www.smartcareliving.ie
The SmartCare Living homepage as it appears on a laptop.
The homepage as it was served on 26 August 2026.

The situation

SmartCare Living advise families deciding about care for an elderly relative. The visitor is often mid-crisis: a fall has happened, or a discharge is scheduled for Friday. A contact form that fails silently means somebody who needed a call back does not get one.

What was built

A six-question assessment

Six questions about the relative, scored into urgent and standard, ending on a results page that reads the answers back and recommends a configuration. Health data is involved, so the consent tick-box names Article 9 on the form itself.

Three ways to book, one calendar

A ten-minute callback, a home consultation and an installation, each with live availability, weekday-only slots, and a real appointment created in the calendar on submit.

An enquiry that cannot quietly vanish

Every submission goes five separate ways: email, text message, spreadsheet, CRM and conversion pixel, each independently timed out so one slow service cannot take the others down. If the submission itself fails, the browser sends a beacon carrying the details so the enquiry still arrives.

An admin suite

Enquiries with search and filters, Stripe subscription reporting with monthly and annual revenue, churn and a renewal calendar, a diagnostics page that shows which tracking is firing with a safe mode so test fires do not pollute Google Ads, and a checker that reports which settings are missing without ever printing their values.

Written for the questions people search

32 long-form advice articles and a family advice hub, each carrying structured data, canonical tags and language targeting. People find it by searching the question, not the company.

Pages
74
Advice articles
32
Serverless endpoints
11
Structured data
62 pages, 23 schema types
Health probe
Every 15 minutes
Skip links
On 68 pages

The health check resolves DNS as well as pages

A site can return 200 on every page while its email silently fails, because what broke is a DNS record. The probe here resolves the DKIM record over DNS every fifteen minutes, calls an endpoint that reports missing configuration, and asserts that the admin routes still answer 401. It emails a person only when something is wrong.

Any of this can be opened on a screen.

Both sites are live, and so is the software behind this one. Twenty minutes on a call and you pick what to look at: the admin screens, the automation log, the compliance record.