Contributing

Get started with Gitpod

The repository has a gitpod.yml and Gitpod offers 50 hours/month for free for working on public repos. The easiest way to get started with development.

Open in Gitpod

After opening the repo in Gitpod you can instantly experiment with the e2e/docs apps, explore code etc.

If you want to submit a PR, you can just create a new branch (e.g. fix-123) and start working on it. On the first time you try to push it, access will be denied and Gitpod will prompt you to fork the repository.

Package development

Run dev servers with local packages

Run in repo root:

yarn dev

It will rebuild and rebundle packages on changes and run next dev of the e2e app and the docs app in parallel.

Serve an e2e app production build with local packages

Required to test and evaluate things around Strict CSPs. Run in repo root:

yarn start

It will (re)build all packages in the repo that have changed and serve a production build of the e2e app with next start and local package builds.

Deploy the e2e app with local packages to Vercel

So see the behavior of the package in a production environment, you can deploy the e2e app to Vercel. It will always use the local packages built from the last commit you pushed/deployed.

First, fork this repo. Then click the deploy button and import your fork:

Deploy with Vercel

Afterwards, you need to customize commands in Vercel project settings to make it work with Yarn 3 monorepo structure.

In your Vercel project settings:

Set apps/e2e as "Root Directory" and enable "Include source files outside of the Root Directory in the Build Step."

In "Build & Development Settings":

Set "Framework Preset" to Next.js and override the following commands:

Build Command:

cd ../.. && yarn build:e2e:vercel

Install Command:

yarn install --immutable --immutable-cache

Serve a docs app production build with local packages

yarn start:docs

It will (re)build all packages in the repo that have changed and serve a production build of the docs app with next start and local package builds.

Submit PRs

TODO

Report bugs

TODO

Suggest features and enhancements

TODO

Ask questions

TODO

Commit and code conventions

TODO + setup for ESLint, Prettier, husky and lint-staged will be provided at some point.

Repository structure

TODO

Attributions

Policy icon used as icon of this website and README created by Kiranshastry - Flaticon