npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@a1local/adpages-mobile-cta-checker

v0.1.0

Published

Dependency-free CLI for checking saved local-business HTML for mobile CTA, tap target, and tracking preservation issues.

Readme

AdPages Mobile CTA Checker

Dependency-free CLI and library for checking saved local-business HTML for mobile conversion problems before a page, campaign, or client handoff goes live.

The checker is designed for agencies and local marketers who need quick evidence that a page has a usable Mobile CTA path: above-the-fold action, sticky mobile affordance, tappable phone/form/location CTAs, tracking preservation, and a focused primary action.

Built by AdPages from A1 Local as a free local-business website QA tool.

Publishing Position

  • Free no-login QA tool for local SEO, paid-search landing pages, and web design launch checklists.
  • Useful as a resource-page placement asset because it runs on saved HTML and does not crawl live websites.
  • Later monetisable with hosted batch checks, branded reports, benchmark data, team templates, or white-label agency exports.

Install

This package is intentionally dependency-light and can run directly with Node.js:

npm --prefix packages/adpages-mobile-cta-checker run check
npm --prefix packages/adpages-mobile-cta-checker run smoke
node packages/adpages-mobile-cta-checker/bin/adpages-mobile-cta-checker.mjs \
  --html-file packages/adpages-mobile-cta-checker/examples/sample-page.html

From the package folder:

npm run sample
npm run sample:text

CLI

node packages/adpages-mobile-cta-checker/bin/adpages-mobile-cta-checker.mjs \
  --html-file packages/adpages-mobile-cta-checker/examples/sample-page.html \
  --final-url "https://example.com/?utm_source=google&gclid=sample-click" \
  --required-param utm_source \
  --required-param gclid

JSON is the default output. Use a text summary when you want a client-facing quick read:

node packages/adpages-mobile-cta-checker/bin/adpages-mobile-cta-checker.mjs \
  --html-file packages/adpages-mobile-cta-checker/examples/sample-page.html \
  --format text

Options:

  • --html-file: saved HTML file to inspect.
  • --final-url: optional landing-page URL used to infer UTM and click-ID parameters and resolve relative CTA links.
  • --required-param: optional tracking parameter that CTA links/forms should preserve. Repeatable or comma-separated.
  • --format json|text: output mode. Defaults to json.

What It Checks

  • Above-the-fold CTA signals in the first content segment.
  • Sticky or mobile-specific CTA patterns such as fixed call bars.
  • Tap target semantics: accessible label, link/button semantics, and static 44px-friendly size or padding evidence.
  • Phone, form, booking, quote, and location/directions CTA intent.
  • UTM and click-ID preservation on CTA links plus matching hidden form fields.
  • Multiple competing primary CTAs above the fold.
  • Basic form handoff issues such as missing action, missing method="post", or missing submit controls.

The bundled examples/sample-page.html is an intentional demo landing page. It includes a sticky mobile call action, booking/form paths, hidden tracking fields, and one deliberately flawed Directions CTA that drops required tracking parameters so examples/sample-report.json demonstrates a real pre-launch fix.

When this is published, the public demo page should keep a visible "Built by AdPages from A1 Local" credit. Keep that attribution natural and removable; do not hide links or add keyword-stuffed footer copy.

Scope

This tool inspects saved HTML only. It does not crawl a URL, does not run browser automation, does not execute JavaScript, and does not make remote requests. That keeps it safe for local QA, resource-page distribution, and future app-store packaging.

Publish Blockers

See PUBLISH_BLOCKERS.md. Do not publish until the package name, support URL, example report wording, and hosted/demo positioning are approved.

Before packaging for npm, run:

npm --prefix packages/adpages-mobile-cta-checker run check
npm --prefix packages/adpages-mobile-cta-checker run smoke
npm --prefix packages/adpages-mobile-cta-checker run pack:dry-run