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

@xapp/contact-app

v1.94.4

Published

Booking & Contact Page for Form Widget

Readme

@xapp/contact-app

Hosted, stand-alone contact us and scheduling page.

Supported Query Strings

Overrides

When provided, these will override the values from the form widget config.

  • businessName
  • businessAddress
  • businessLogoUrl
  • businessWebsite
  • chatWidgetKey
  • partnerId

Settings

  • disablePoweredBy - This will disable the "Powered by XAPP AI" text at the bottom of the page.
  • poweredByMessage - Custom message for the "powered by" footer text (defaults to "Powered by XAPP AI").
  • poweredByUrl - Custom URL for the "powered by" footer link (defaults to "https://xapp.ai").

Widget Pass-Through

These will be saved to local storage so that the widgets can look for them and respond accordingly.

  • service - Not in use yet but can pass through which service the user selected
  • environment - Can be helpful for sandbox testing
  • origin - Used to configure the form widget specifically for Reserve with Google
  • enablePreferredTime - Used to turn on preferred time capture for non-scheduling customers.
  • rwg_token - Set by Google Actions from Google Business Profile for tracking
  • merchant_id - Optional, we can add this to track merchant ID

Tracking Parameters

Marketing attribution and tracking parameters are automatically captured and passed through to form submissions for analytics filtering. All tracking parameters are persisted to localStorage for 30 days and included in form widget API requests.

Standard UTM Parameters (Google Analytics standard)

  • utm_source - Traffic source (e.g., "google", "facebook", "newsletter")
  • utm_medium - Marketing medium (e.g., "cpc", "email", "social")
  • utm_campaign - Campaign name (e.g., "spring_sale", "product_launch")
  • utm_term - Paid keywords (for paid search campaigns)
  • utm_content - Ad content identifier (for A/B testing different ads)

Platform-Specific Click IDs

  • gclid - Google Click ID (automatically set by Google Ads)
  • fbclid - Facebook Click ID (automatically set by Facebook)
  • msclkid - Microsoft Click ID (automatically set by Bing Ads)

Custom Tracking Parameters

  • track_* - Any parameter prefixed with "track_" will be captured and passed through

Usage Example:

https://your-contact-page.com/widget-key?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale&track_landing_page=homepage

Data Flow:

  1. Parameters are extracted from the URL when the page loads
  2. Stored in localStorage with 30-day expiration
  3. Automatically included in all form widget API requests
  4. Available for filtering in OpenSearch analytics

Configuration: Tracking parameter capture is enabled by default. The system follows industry standards and handles parameter persistence automatically.

Note: The contact-app and embedded form-widget both extract tracking parameters independently. This is safe:

  • Both read from the same page URL
  • Both write to the same localStorage keys (xa_tracking_*)
  • The form-widget's extraction is idempotent and just refreshes the data
  • All parameters are correctly passed to the API regardless of which component extracted them