Ghost/apps/signup-form
Chris Raible af0f26c75f
Added Dev Container setup (#21279)
no issue

- Dev Containers let you work on Ghost in a consistent, isolated
environment with all the necessary development dependencies
pre-installed. VSCode (or Cursor) can effectively run _inside_ the
container, providing a local quality development environment while
working in a well-defined, isolated environment.
- For now the default setup only works with "Clone repository in
Container Volume" or "Clone PR in Container Volume" — this allows for a
super quick and simple setup. We can also introduce another
configuration to allow opening an existing local checkout in a Dev
Container, but that's not quite ready yet.
- This PR also added the `yarn clean:hard` command which: deletes all
node_modules, cleans the yarn cache, and cleans the NX cache. This will
be necessary for opening a local checkout in a Dev Container.
- To learn more about Dev Containers, read this guide from VSCode:
https://code.visualstudio.com/docs/devcontainers/containers#_personalizing-with-dotfile-repositories

---------

Co-authored-by: Joe Grigg <joe@ghost.org>
Co-authored-by: Steve Larson <9larsons@gmail.com>
2024-10-24 11:15:08 -07:00
..
.storybook Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
assets/icons 🐛 Fixed accessibility issue with hidden success message in signup form 2023-06-21 10:38:27 +02:00
src Added integrity token to signup-form package 2024-08-22 22:23:16 +01:00
test Added integrity token to signup-form package 2024-08-22 22:23:16 +01:00
.env.development Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
.eslintrc.cjs Enabled no-explicit-any for majority of packages 2023-07-27 16:49:08 +02:00
.yarnrc Prevented git tags from being created for apps 2023-07-10 13:09:28 +02:00
index.html Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
package.json Removed unused vite-plugin-commonjs dependency 2024-10-23 13:43:53 +02:00
playwright.config.ts Enabled parallel testing for Playwright tests of apps 2023-07-04 16:08:06 +02:00
postcss.config.cjs Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
preview.html Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
README.md Fixed typos (#18648) 2023-10-31 15:21:44 +00:00
tailwind.config.cjs Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
tsconfig.json Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
tsconfig.node.json Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
vite.config.ts Added Dev Container setup (#21279) 2024-10-24 11:15:08 -07: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 via Ghost yarn dev in root folder

You can automatically start the signup-form dev server when developing Ghost by running Ghost (in root folder) via yarn dev --all. This will only build the production build, without the demo site.

Running via yarn dev --all --signup or yarn dev --signup will also serve the demo site on http://localhost:6173.

Running the development version only

Run yarn dev (in package folder) 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 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.

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