From f1944924098d158dc070d366ff94a7604c26f8b9 Mon Sep 17 00:00:00 2001 From: KarenZita01 Date: Sat, 25 Jul 2026 13:47:27 +0100 Subject: [PATCH 1/2] feat(seo): implement comprehensive SEO with Open Graph, structured data, sitemap, and metadata - Add generateMetadata helper with title template and base URL - Update layout with Open Graph and Twitter Card tags - Create sitemap with static routes and priorities - Create robots.txt with production rules - Add JSON-LD structured data (WebApplication, Organization, BreadcrumbList) - Add per-page metadata for all routes - Create og-image.png placeholder --- app/billing/page.tsx | 34 +++++++++++++++++ app/dashboard/page.tsx | 34 +++++++++++++++++ app/layout.tsx | 41 +++++++++++++++++++- app/meters/page.tsx | 34 +++++++++++++++++ app/page.tsx | 82 +++++++++++++++++++++++++--------------- app/robots.ts | 26 +++++++++++++ app/sitemap.ts | 38 +++++++++++++++++++ app/streams/page.tsx | 34 +++++++++++++++++ package-lock.json | 24 ++++++++++-- package.json | 1 + public/og-image.png | Bin 0 -> 9603 bytes src/lib/seo/json-ld.ts | 50 ++++++++++++++++++++++++ src/lib/seo/metadata.ts | 67 ++++++++++++++++++++++++++++++++ 13 files changed, 429 insertions(+), 36 deletions(-) create mode 100644 app/billing/page.tsx create mode 100644 app/dashboard/page.tsx create mode 100644 app/meters/page.tsx create mode 100644 app/robots.ts create mode 100644 app/sitemap.ts create mode 100644 app/streams/page.tsx create mode 100644 public/og-image.png create mode 100644 src/lib/seo/json-ld.ts create mode 100644 src/lib/seo/metadata.ts diff --git a/app/billing/page.tsx b/app/billing/page.tsx new file mode 100644 index 0000000..f98b413 --- /dev/null +++ b/app/billing/page.tsx @@ -0,0 +1,34 @@ +import { generateMetadata } from "@/src/lib/seo/metadata" +import { breadcrumbListSchema } from "@/src/lib/seo/json-ld" + +export const metadata = generateMetadata({ + title: "Billing", + description: "View billing history, manage payments, and track usage costs for your utility meters on EquipChain.", + path: "/billing", +}) + +export default function BillingPage() { + const jsonLd = breadcrumbListSchema([ + { name: "Home", path: "/" }, + { name: "Billing", path: "/billing" }, + ]) + + return ( + <> +