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

@tryghost/signup-form

v0.3.166

Published

Readme

Embeddable Signup Form

Embed a Ghost signup form on any site.

Development

Pre-requisites

  • Run pnpm in Ghost monorepo root
  • Run pnpm in this directory

Running via Ghost pnpm dev in root folder

Signup Form runs automatically when using Ghost's development command from the monorepo root:

pnpm dev

This starts all frontend apps (including Signup Form.)

Running the standalone demo page

Run pnpm dev:standalone (in this package folder) to start the standalone development server with HMR for testing/developing the form in isolation.

  • This serves the demo page at http://localhost:6173

pnpm dev on its own (in this package folder) only builds umd/signup-form.min.js and watches for changes — it does not bind a port. The UMD is served by Caddy at http://localhost:2368/ghost/assets/signup-form/signup-form.min.js when you run pnpm dev from the monorepo root.

Using the UMD build during development

Vite by default only supports HRM with an ESM output. But when loading a script on a site as a ESM module (<script type="module" src="...">), you don't have access to document.currentScript inside the script, which is required to determine the location to inject the iframe. In development mode we use a workaround for this to make the ESM HMR work. But this workaround is not suitable for production.

To test the real production behaviour without this hack, you can use http://localhost:6173/preview.html (served by pnpm dev:standalone). The page loads the production UMD via <script src="http://localhost:2368/ghost/assets/signup-form/signup-form.min.js">, which is served by Caddy when pnpm dev is also running from the monorepo root. Both processes need to be up at the same time.

Develop

This is a monorepo package.

Follow the instructions for the top-level repo.

  1. git clone this repo & cd into it as usual
  2. Run pnpm to install top-level dependencies.

Test

  • pnpm lint run just eslint
  • pnpm test run lint and tests
  • pnpm test:e2e run e2e tests on Chromium
  • pnpm test:slowmo run e2e tests visually (headed) and slower on Chromium
  • pnpm test:e2e:full run e2e tests on all browsers

Release

A patch release can be rolled out instantly in production, whereas a minor/major release requires the Ghost monorepo to be updated and released. In either case, you need sufficient permissions to release @tryghost packages on NPM.

Patch release

  1. Run pnpm ship and select a patch version when prompted
  2. Merge the release commit to main

Minor / major release

  1. Run pnpm ship and select a minor or major version when prompted
  2. Merge the release commit to main
  3. Wait until a new version of Ghost is released

To use the new version of signup form in Ghost, update the version in Ghost core's default configuration (currently at core/shared/config/default.json)

Copyright & License

Copyright (c) 2013-2026 Ghost Foundation - Released under the MIT license.