apps/signup-form/README.md
Embed a Ghost signup form on any site.
pnpm in Ghost monorepo rootpnpm in this directorypnpm dev in root folderSignup Form runs automatically when using Ghost's development command from the monorepo root:
pnpm dev
This starts all frontend apps (including Signup Form.)
Run pnpm dev (in package folder) to start the development server to test/develop the form standalone.
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. This HTML page will use http://localhost:6174/signup-form.min.js directly.
This is a monorepo package.
Follow the instructions for the top-level repo.
git clone this repo & cd into it as usualpnpm to install top-level dependencies.pnpm lint run just eslintpnpm test run lint and testspnpm test:e2e run e2e tests on Chromiumpnpm test:slowmo run e2e tests visually (headed) and slower on Chromiumpnpm test:e2e:full run e2e tests on all browsersA 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.
pnpm ship and select a patch version when promptedmainpnpm ship and select a minor or major version when promptedmainTo 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 (c) 2013-2026 Ghost Foundation - Released under the MIT license.