Ghost/ghost/signup-form
Simon Backx 7e27d3f3e8
Added signup form attribution (#16899)
fixes https://github.com/TryGhost/Team/issues/3331

This adds attribution tracking to the signup form. It sends a newly
created url history when sending the signup API call, this url history
will get translated to a proper attribution and saved on the backend. We
send a history with only a single item that contains the referrer
source, medium and path of the Embed form.

This also makes some changes to the E2E tests so that the tests run
in an https environment instead of about:blank.
2023-06-01 10:18:11 +02:00
..
.storybook Updated signup form to support configuring background and button color 2023-06-01 14:43:57 +12:00
src Added signup form attribution (#16899) 2023-06-01 10:18:11 +02:00
test Added signup form attribution (#16899) 2023-06-01 10:18:11 +02:00
.env.development Fixed default Ghost url in dev environment 2023-05-23 17:11:04 +02:00
.eslintrc.cjs Added signup-form package (#16846) 2023-05-23 14:58:33 +02:00
.yarnrc Added signup-form package (#16846) 2023-05-23 14:58:33 +02:00
index.html Updated signup form to support configuring background and button color 2023-06-01 14:43:57 +12:00
package.json Update dependency vitest to v0.31.2 2023-06-01 09:44:15 +02:00
playwright.config.ts Added Playwright tests to Signup Form 2023-05-24 15:06:44 +02:00
postcss.config.cjs Added signup-form package (#16846) 2023-05-23 14:58:33 +02:00
preview.html Updated signup form to support configuring background and button color 2023-06-01 14:43:57 +12:00
README.md Added Playwright tests to Signup Form 2023-05-24 15:06:44 +02:00
tailwind.config.cjs Updated signup form to support configuring background and button color 2023-06-01 14:43:57 +12:00
tsconfig.json Added signup-form package (#16846) 2023-05-23 14:58:33 +02:00
tsconfig.node.json Added signup-form package (#16846) 2023-05-23 14:58:33 +02:00
vite.config.ts Added signup-form package (#16846) 2023-05-23 14:58:33 +02:00

Embeddable Signup Form

Embed a Ghost signup form on any site.

Development

Pre-requisites

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

Running the development version

Run yarn dev to start the development server to test/develop the form standalone.

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 workaroudn 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.

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 yarn to install top-level dependencies.

Test

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