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-click-to-call-tester

v0.1.0

Published

Dependency-free CLI for checking saved local business HTML for click-to-call and mobile phone CTA issues.

Downloads

18

Readme

AdPages Click-to-Call Tester

A dependency-free local CLI for checking saved local-business HTML before a campaign or redesign goes live.

It helps agencies and local marketers answer: if someone opens this page on a phone, is the call CTA actually tappable, understandable, and pointing at the right number?

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

What It Checks

  • Finds tel: links in saved HTML.
  • Extracts visible phone numbers from page text.
  • Compares visible numbers, tel: hrefs, and an optional expected phone number.
  • Flags generic click target text such as Click here.
  • Checks whether phone links have usable visible or accessible labels.
  • Confirms a basic mobile viewport and mobile call CTA presence.
  • Outputs warnings with plain recommendations.

It does not crawl live websites, click phone links, verify call routing, submit forms, use credentials, or make network calls. In short, it does not make network calls at all. Save the page HTML first, then run the tester locally.

Usage

From the repository root:

npm --prefix packages/adpages-click-to-call-tester run smoke
node packages/adpages-click-to-call-tester/bin/adpages-click-to-call-tester.mjs \
  --html-file packages/adpages-click-to-call-tester/examples/sample-page.html \
  --expected-phone "08 6219 0100" \
  --pretty

From the package folder:

npm run sample
npm run check

Text summary:

node packages/adpages-click-to-call-tester/bin/adpages-click-to-call-tester.mjs \
  --html-file saved-homepage.html \
  --expected-phone "+61 8 6219 0100" \
  --format text

Write a JSON report:

node packages/adpages-click-to-call-tester/bin/adpages-click-to-call-tester.mjs \
  --html-file saved-homepage.html \
  --expected-phone "08 6219 0100" \
  --output click-to-call-report.json \
  --pretty

CLI Options

| Option | Purpose | | --- | --- | | --html-file <file> | Saved local HTML file to inspect. A positional file path also works. | | --expected-phone <phone> | Optional number that should appear in visible text and tel: links. | | --format json\|text | Output JSON by default, or a human-readable text summary. | | --pretty | Pretty-print JSON output. | | --output <file> | Write output to a local file instead of stdout. |

Report Signals

The JSON report includes:

  • summary.score: a simple launch-readiness score.
  • summary.mobileCtaPresent: whether the saved page has a mobile viewport and a usable call target.
  • visiblePhones: normalized visible phone numbers found in page text.
  • telLinks: each tel: link, normalized href phone number, link text, accessible label status, and per-link issue codes.
  • issues: warnings and recommendations for launch QA.
  • limitations: explicit local-only boundaries.

The bundled examples/sample-page.html is a polished demo page, but it intentionally includes a generic after-hours tel: link and multiple visible phone numbers. That keeps examples/sample-report.json useful as a realistic "needs review" handoff rather than a perfect fixture.

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.

Agency Workflow

  1. Save the page HTML from staging or production.
  2. Run the tester with the client-approved phone number.
  3. Fix mismatched tel: links, weak call button text, and missing accessible labels.
  4. Attach the JSON report to a launch checklist or client QA handoff.
  5. For tracking numbers, document intentional differences before launch.

Publishing Position

This is a free, no-login QA utility for small-business websites and agency launch checks. The landing-page angle is:

Test whether your local business website has working, consistent click-to-call links before you launch ads.

The tool is deliberately honest about its limits: it checks saved HTML only. A live browser extension or hosted checker could come later, but this package should stay useful without account access or network calls.

Before packaging for npm, run:

npm --prefix packages/adpages-click-to-call-tester run check
npm --prefix packages/adpages-click-to-call-tester run smoke
npm --prefix packages/adpages-click-to-call-tester pack --dry-run

Publish Blockers

  • Validate against real saved HTML from at least 25 local-business sites across builders such as WordPress, Webflow, Wix, Squarespace, and custom Astro/Next pages.
  • Decide final package name, license, repository URL, support URL, and privacy URL.
  • Confirm phone normalization expectations for AU, US, UK, and NZ before making international claims.
  • Add an optional browser-extension wrapper only after the local CLI behavior is stable.

Local Checks

npm --prefix packages/adpages-click-to-call-tester run check
npm --prefix packages/adpages-click-to-call-tester run smoke