Phase 4: pricing, about, area, Windows 10 and business pages
- /pricing: full price list, no-fix-no-fee terms, travel and payments - /about: first-person page from confirmed facts, links to area pages - /areas/[suburb]: Te Atatū Peninsula, Te Atatū South, Henderson and Massey, generated from src/lib/areas.js with suburb-specific copy - /windows-10: options page with free Windows 11 check; October 2028 used for business Extended Security Updates - /business: $65/month plan (2 hours, no lock-in, no rollover) - Nav gains Pricing/About and Business/Windows 10 links; footer rebuilt with address, hours and links; homepage links areas, /business and a Windows 10 banner; sitemap includes all new routes - Mobile menu hides by its own height (fixes overflow with more links); hamburger now used below 900px so the link row never overlaps Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
40d3a08050
commit
9f5cf387dc
13 files changed
+862
-57
No files matched your search
+57
-2
@@ -72,9 +72,59 @@ export const routes = [
|
||||
{ path: "/services/computer-upgrades", priority: 0.8 },
|
||||
{ path: "/services/virus-removal", priority: 0.8 },
|
||||
{ path: "/services/it-support", priority: 0.8 },
|
||||
{ path: "/pricing", priority: 0.8 },
|
||||
{ path: "/business", priority: 0.7 },
|
||||
{ path: "/windows-10", priority: 0.7 },
|
||||
{ path: "/about", priority: 0.6 },
|
||||
{ path: "/contact", priority: 0.6 },
|
||||
];
|
||||
|
||||
// Full price list, shown on /pricing. Labour prices; parts are extra.
|
||||
export const priceList = [
|
||||
{
|
||||
group: "Repairs",
|
||||
items: [
|
||||
{ item: "Diagnosis", price: "$35" },
|
||||
{ item: "Laptop screen replacement", price: "from $35 + the screen" },
|
||||
{ item: "Battery, charging port or keyboard", price: "from $35 + parts" },
|
||||
{ item: "Other repairs (labour)", price: "$35 an hour" },
|
||||
],
|
||||
},
|
||||
{
|
||||
group: "Upgrades & Windows",
|
||||
items: [
|
||||
{ item: "SSD upgrade", price: "from $45 + the drive" },
|
||||
{ item: "Windows reinstall", price: "from $45" },
|
||||
{ item: "Windows 11 compatibility check", price: "Free" },
|
||||
{ item: "RAM, graphics card and Windows 11 upgrades", price: "from $35 + parts" },
|
||||
{ item: "Custom PC build (labour)", price: "from $35" },
|
||||
],
|
||||
},
|
||||
{
|
||||
group: "Viruses, data & support",
|
||||
items: [
|
||||
{ item: "Virus and malware removal", price: "from $35" },
|
||||
{ item: "Moving files to a new computer", price: "from $45" },
|
||||
{ item: "New computer setup", price: "from $35" },
|
||||
{ item: "Remote support", price: "$35 an hour" },
|
||||
{ item: "Onsite support", price: "$35 an hour + travel" },
|
||||
{ item: "Small business IT plan", price: "$65 a month" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export const businessPlan = {
|
||||
price: "$65",
|
||||
hours: 2,
|
||||
includes: [
|
||||
"2 hours of remote or onsite support every month",
|
||||
"Extra time at the normal $35 an hour",
|
||||
"No lock-in contract. Cancel any time.",
|
||||
],
|
||||
terms:
|
||||
"Unused hours don't roll over to the next month. Onsite visits have a travel fee based on distance.",
|
||||
};
|
||||
|
||||
// Builds per-page metadata: title, description, canonical, Open Graph and Twitter.
|
||||
export function pageMetadata({ title, description, path }) {
|
||||
return {
|
||||
@@ -146,7 +196,12 @@ export function localBusinessSchema() {
|
||||
};
|
||||
}
|
||||
|
||||
export function serviceSchema({ name, description, path }) {
|
||||
export function serviceSchema({
|
||||
name,
|
||||
description,
|
||||
path,
|
||||
areas = business.serviceArea,
|
||||
}) {
|
||||
return {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Service",
|
||||
@@ -155,7 +210,7 @@ export function serviceSchema({ name, description, path }) {
|
||||
description,
|
||||
url: `${SITE_URL}${path}`,
|
||||
provider: { "@id": BUSINESS_ID },
|
||||
areaServed: business.serviceArea.map((area) => ({
|
||||
areaServed: areas.map((area) => ({
|
||||
"@type": "Place",
|
||||
name: `${area}, Auckland`,
|
||||
})),
|
||||
|
||||
Reference in new issue
Block a user