@a1local/nuxt-adpages
v0.1.0
Published
Dependency-light Nuxt module helpers for local-service schema, metadata QA, and UTM capture.
Maintainers
Readme
@a1local/nuxt-adpages
Dependency-light Nuxt helpers for local-service landing pages. The package ships a Nuxt module-shaped export plus plain runtime helpers for LocalBusiness JSON-LD, metadata QA, and UTM capture without making network calls.
What is included
- A Nuxt module object that can inject LocalBusiness JSON-LD into
app.head.script. - Runtime helpers for building schema.org LocalBusiness JSON-LD.
- Nuxt-shaped SEO metadata helpers for
useSeoMeta()anduseHead(). - Metadata checklist helpers for title, description, canonical, Open Graph, local signals, and indexability.
- UTM builder, inspector, validator, and server-side cookie capture plan helpers.
Install
npm install @a1local/nuxt-adpagesNuxt is an optional peer dependency so the package can be built and tested without installing a Nuxt app. Real projects should install it inside a Nuxt 3 or Nuxt 4 workspace.
Nuxt module
Add the module to nuxt.config.ts:
export default defineNuxtConfig({
modules: ["@a1local/nuxt-adpages"],
adpages: {
business: {
name: "Example Plumbing",
businessType: "Plumber",
url: "https://example.com",
telephone: "+61 8 0000 0000",
areaServed: ["Perth", "Fremantle"],
services: ["Emergency plumbing", "Blocked drains"]
}
}
});The module writes a single JSON-LD script into Nuxt app head config. It does not register remote services, analytics, or third-party calls.
Runtime schema helper
Use the head-script helper directly if the site needs per-page schema:
import { createNuxtLocalBusinessHeadScript } from "@a1local/nuxt-adpages";
useHead({
script: [
createNuxtLocalBusinessHeadScript({
name: "Example Plumbing",
areaServed: ["Perth"],
services: ["Hot water repairs"]
})
]
});Metadata helpers
Generate Nuxt-compatible page metadata:
import { buildLocalServiceSeoMeta, checkNuxtPageMetadata } from "@a1local/nuxt-adpages";
const meta = buildLocalServiceSeoMeta({
businessName: "Example Plumbing",
service: "Emergency plumber",
area: "Perth",
baseUrl: "https://example.com",
path: "/emergency-plumber/perth/"
});
useSeoMeta({
title: meta.title,
description: meta.description,
ogTitle: meta.ogTitle,
ogDescription: meta.ogDescription,
ogUrl: meta.ogUrl
});
useHead({ link: meta.link });
const result = checkNuxtPageMetadata(meta, {
service: "Emergency plumber",
area: "Perth",
businessName: "Example Plumbing"
});The checklist result includes ok, score, missing, warnings, and item-level messages suitable for build logs, CI output, or a future dev overlay.
UTM helpers
Build and inspect UTM URLs:
import { buildUtmUrl, createNuxtUtmCapturePlan } from "@a1local/nuxt-adpages";
const url = buildUtmUrl("https://example.com/quote", {
source: "google",
medium: "cpc",
campaign: "emergency-plumber-perth"
});
const plan = createNuxtUtmCapturePlan(url);createNuxtUtmCapturePlan() returns plain data plus a Set-Cookie header string when UTM parameters are present. Append that header from server middleware or a Nitro handler; client-only middleware cannot safely set an HTTP-only attribution cookie.
Publish status
This is an initial Nuxt package scaffold. Before publishing, validate it in a real Nuxt starter, finalize package ownership, add examples, and publish support/privacy URLs.
