Compare commits

...
Author SHA1 Message Date
asownerytandClaude Opus 5.5 2b2ac742dd Add Mac and console repairs with a footer disclaimer
Docker / build (push) Successful in 1m16s
Mac (MacBook, iMac) and PlayStation/Xbox repairs are now offered;
phones and tablets are not. The Apple, Sony and Microsoft
non-affiliation disclaimer is shown once in the footer, with
footnote markers on the mentions.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 16:09:49 +13:00
asownerytandClaude Opus 5.5 5be5bda079 Add Rybbit analytics and send click events to it
Docker / build (push) Successful in 1m31s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-04 15:35:34 +13:00
13 changed files with 72 additions and 19 deletions

No files matched your search

+4 -2
View File
@@ -1,6 +1,7 @@
import Link from "next/link";
import HeaderSm from "../components/HeaderSm";
import CtaBand from "../components/CtaBand";
import Footnote from "../components/Footnote";
import { business, pageMetadata } from "@/lib/site";
import { areas } from "@/lib/areas";
@@ -54,8 +55,9 @@ export default function AboutPage() {
appointment.
</li>
<li>
I work on Windows laptops and PCs, Chromebooks and custom-built
computers. I don&apos;t repair Apple devices.
I work on Windows laptops and PCs, Macs, Chromebooks, custom-built
computers, and PlayStation and Xbox consoles.
<Footnote /> I don&apos;t repair phones or tablets.
</li>
</ul>
</section>
+3 -1
View File
@@ -6,6 +6,7 @@ import ContactButtons from "../../components/ContactButtons";
import CtaBand from "../../components/CtaBand";
import FaqList from "../../components/FaqList";
import JsonLd from "../../components/JsonLd";
import Footnote from "../../components/Footnote";
import { areas, getArea } from "@/lib/areas";
import { services } from "@/lib/services";
import { business, pageMetadata, serviceSchema } from "@/lib/site";
@@ -89,7 +90,8 @@ export default async function AreaPage({ params }) {
<Link href="/pricing" className="text-primary underline">
pricing page
</Link>
. I don&apos;t repair Apple devices.
. I also repair Macs and PlayStation and Xbox consoles,
<Footnote /> but not phones or tablets.
</p>
</section>
+2 -2
View File
@@ -17,7 +17,7 @@ import { trackEvent } from "@/lib/analytics";
const FORM_ACTION = "https://form.taxi/s/es9ddva1";
const devices = ["Laptop", "Desktop PC", "Chromebook", "Other"];
const devices = ["Laptop", "Desktop PC", "Mac", "Chromebook", "PlayStation or Xbox", "Other"];
const problems = [
"Won't turn on or won't start",
"Cracked or broken screen",
@@ -188,7 +188,7 @@ export default function ContactForm() {
/>
<p className="text-sm text-muted-foreground">
* required. I don&apos;t repair Apple devices.
* required.
</p>
{status === "error" && (
+3 -1
View File
@@ -1,4 +1,5 @@
import JsonLd from "./JsonLd";
import Footnote from "./Footnote";
import { faqSchema } from "@/lib/site";
import {
Accordion,
@@ -13,11 +14,12 @@ export default function FaqList({ faqs }) {
<>
<JsonLd data={faqSchema(faqs)} />
<Accordion className="mb-8">
{faqs.map(({ question, answer, list }, i) => (
{faqs.map(({ question, answer, list, footnote }, i) => (
<AccordionItem key={question} value={`item-${i + 1}`}>
<AccordionTrigger>{question}</AccordionTrigger>
<AccordionContent>
{answer}
{footnote && <Footnote />}
{list && (
<ul className="list-disc pl-6 my-2">
{list.map((item) => (
+4 -1
View File
@@ -1,7 +1,7 @@
import Link from "next/link";
import { Mail, MapPin, Phone } from "lucide-react";
import { Separator } from "@/components/ui/separator";
import { business, links } from "@/lib/site";
import { brandDisclaimer, business, links } from "@/lib/site";
import { services } from "@/lib/services";
import { areas } from "@/lib/areas";
@@ -89,6 +89,9 @@ export default function Footer() {
</div>
<div className="container mx-auto mt-10">
<Separator className="mb-6 bg-slate-700" />
<p id="disclaimer" className="text-sm text-slate-400 mb-4 scroll-mt-24">
† {brandDisclaimer}
</p>
<p className="text-sm text-slate-400">
Copyright © {business.name}, {new Date().getFullYear()}
</p>
+15
View File
@@ -0,0 +1,15 @@
// Marker linking to the brand disclaimer in the footer. Add it after
// mentions of Mac or console repairs instead of repeating the disclaimer.
export default function Footnote() {
return (
<sup>
<a
href="#disclaimer"
aria-label="See disclaimer"
className="text-primary no-underline"
>
†
</a>
</sup>
);
}
+7 -1
View File
@@ -4,6 +4,7 @@ import HeaderSm from "./HeaderSm";
import ContactButtons from "./ContactButtons";
import CtaBand from "./CtaBand";
import FaqList from "./FaqList";
import Footnote from "./Footnote";
import JsonLd from "./JsonLd";
import PriceTable from "./PriceTable";
import { Card, CardContent } from "@/components/ui/card";
@@ -74,7 +75,12 @@ export default function ServicePage({ slug }) {
</li>
))}
</ul>
{service.fixesNote && <p className="mt-4">{service.fixesNote}</p>}
{service.fixesNote && (
<p className="mt-4">
{service.fixesNote}
{service.fixesNoteFootnote && <Footnote />}
</p>
)}
</section>
<section className="container mx-auto max-w-3xl mb-16">
+5
View File
@@ -1,4 +1,5 @@
import localFont from "next/font/local";
import Script from "next/script";
import "./globals.css";
import Navbar from "./components/Navbar";
import Footer from "./components/Footer";
@@ -34,6 +35,10 @@ export default function RootLayout({ children }) {
{children}
<Footer />
<AnalyticsEvents />
<Script
src="https://analytics.cloudrite.co.nz/api/script.js?siteId=362da09a6cea"
strategy="afterInteractive"
/>
</body>
</html>
);
+3 -3
View File
@@ -1,8 +1,8 @@
// Sends a custom event to Plausible if its script is installed; otherwise does nothing.
// Sends a custom event to Rybbit once its script has loaded; otherwise does nothing.
// Events: click_call, click_text, click_email, submit_quote_form, click_google_reviews.
export function trackEvent(name) {
if (typeof window !== "undefined" && typeof window.plausible === "function") {
window.plausible(name);
if (typeof window !== "undefined" && window.rybbit) {
window.rybbit.event(name);
}
}
+1 -1
View File
@@ -32,7 +32,7 @@ export const areas = [
slug: "henderson",
name: "Henderson",
intro:
"Need a computer repaired in Henderson? I fix Windows laptops, desktop PCs and Chromebooks for Henderson homes and businesses, from screen and battery replacements to virus removal, SSD upgrades and Wi-Fi problems.",
"Need a computer repaired in Henderson? I fix Windows laptops, desktop PCs, Macs and Chromebooks for Henderson homes and businesses, from screen and battery replacements to virus removal, SSD upgrades and Wi-Fi problems.",
gettingThere:
"You can drop your computer off at my base on Te Atatū Peninsula by appointment, or I can come to you in Henderson, or collect and return it. Many software problems, like email, slow Windows or pop-ups, can be fixed remotely, so you might not need to go anywhere.",
faq: {
+2 -1
View File
@@ -5,7 +5,8 @@ export const homeFaqs = [
{
question: "What types of devices do you repair?",
answer:
"I repair Windows laptops and desktop PCs, Chromebooks and custom-built PCs, plus some tablets depending on the problem. I don't repair Apple devices.",
"I repair Windows laptops and desktop PCs, MacBooks and iMacs, Chromebooks, custom-built PCs, and PlayStation and Xbox consoles. I don't repair phones or tablets.",
footnote: true,
},
{
question: "What kinds of problems can you fix?",
+17 -6
View File
@@ -9,7 +9,7 @@ export const services = {
"Cracked screens, dead laptops, PCs that won't boot and Windows faults. Upfront pricing and honest advice from your local tech in Te Atatū.",
h1: "Laptop & PC Repair in Te Atatū & West Auckland",
intro: [
"Laptop won't turn on? Screen cracked, keyboard dead, or Windows stuck on a loading screen? I fix Windows laptops, desktop PCs and Chromebooks from Te Atatū Peninsula, for people all over West Auckland.",
"Laptop won't turn on? Screen cracked, keyboard dead, or Windows stuck on a loading screen? I fix Windows laptops, desktop PCs, Macs, Chromebooks and PlayStation and Xbox consoles from Te Atatū Peninsula, for people all over West Auckland.",
"You'll deal with me directly, from the first call to handing your computer back. I'll find out what's wrong, tell you the cost, and only start once you're happy with the price.",
],
fixes: [
@@ -22,21 +22,31 @@ export const services = {
"Liquid spills: clean-up and assessment",
"Windows errors, blue screens and failed updates",
"Recovering files from a computer that won't start",
"PlayStation and Xbox console repairs",
],
fixesNote:
"I don't repair Apple devices. That includes MacBooks, iMacs, iPhones and iPads.",
"I repair MacBooks, iMacs and PlayStation and Xbox consoles, but not phones or tablets. I don't repair console motherboard faults.",
fixesNoteFootnote: true,
prices: [
{ item: "Diagnosis", price: "$35" },
{ item: "Laptop screen replacement", price: "from $35 + the screen" },
{ item: "Battery, charging port or keyboard", price: "from $35 + parts" },
{ item: "PlayStation or Xbox repair", price: "from $35 + parts" },
{ item: "Other repairs (labour)", price: "$35 an hour" },
{ item: "Windows reinstall", price: "from $45" },
],
faqs: [
{
question: "Do you repair MacBooks or other Apple devices?",
question: "Do you repair MacBooks and iMacs?",
answer:
"No. I only work on Windows laptops and PCs, Chromebooks and custom-built computers.",
"Yes. I repair MacBooks and iMacs as well as Windows laptops and PCs, Chromebooks and custom-built computers. I don't repair phones or tablets.",
footnote: true,
},
{
question: "Do you repair PlayStation and Xbox consoles?",
answer:
"Yes. I fix common PlayStation and Xbox problems, at the same prices as computer repairs. I don't repair console motherboard faults.",
footnote: true,
},
{
question: "What happens if you can't fix it?",
@@ -114,7 +124,7 @@ export const services = {
h1: "Virus & Malware Removal in Te Atatū & West Auckland",
intro: [
"Pop-ups that won't go away? A browser that keeps sending you to strange sites, a \"your computer is infected\" warning with a phone number, or a PC that's suddenly slow? These are common signs of malware or a scam, and they can usually be cleaned up.",
"I remove viruses and malware from Windows computers, usually without wiping the computer, so your files stay where they are. Then I'll show you how to avoid it happening again.",
"I remove viruses and malware from Windows computers and Macs, usually without wiping the computer, so your files stay where they are. Then I'll show you how to avoid it happening again.",
],
fixes: [
"Viruses, malware, spyware and adware",
@@ -150,7 +160,8 @@ export const services = {
},
{
question: "Do you remove viruses from Macs?",
answer: "No, I don't work on Apple devices. I only work on Windows computers.",
answer:
"Yes. I clean up malware, adware and scam pop-ups on Macs as well as Windows computers.",
},
],
testimonial: "Marlies",
+6
View File
@@ -56,6 +56,11 @@ export const business = {
facebookUrl: "https://www.facebook.com/profile.php?id=61571509018351",
};
// Shown once in the footer. Mark Mac and console mentions with <Footnote />
// (or `footnote: true` on a FAQ or service) instead of repeating it.
export const brandDisclaimer =
"Te Atatu Computers is an independent repair service and is not affiliated with, endorsed by or authorised by Apple, Sony or Microsoft. The use of genuine manufacturer parts and the continuation of any manufacturer warranty or AppleCare coverage cannot be guaranteed.";
export const BUSINESS_ID = `${SITE_URL}/#business`;
export const links = {
@@ -87,6 +92,7 @@ export const priceList = [
{ item: "Diagnosis", price: "$35" },
{ item: "Laptop screen replacement", price: "from $35 + the screen" },
{ item: "Battery, charging port or keyboard", price: "from $35 + parts" },
{ item: "PlayStation or Xbox repair", price: "from $35 + parts" },
{ item: "Other repairs (labour)", price: "$35 an hour" },
],
},