Contributing to Fluid

May 27, 2026 ยท View on GitHub

Development setup

Prerequisites

Initial configuration

git clone git@github.com:fluid-org/fluid.git
cd fluid
./script/setup/dev-setup.sh
yarn install

Building

yarn workspace @fluid-org/fluid build

This compiles PureScript, bundles the Fluid runtime, and produces output-es/ (ES module output).

Running websites locally

The websites are SvelteKit apps under website/. To run one in dev mode:

cd website/article
yarn dev

For a production-like preview:

yarn build && yarn preview

Testing

PureScript unit tests

yarn workspace @fluid-org/fluid test

Website tests (Puppeteer)

Tests all SvelteKit websites with Puppeteer (Chrome and Firefox):

./script/test-website-all.sh

Or test a single website:

cd website/article
yarn test

Browser tests

yarn workspace @fluid-org/fluid test-browser

Opens a browser window; check the JavaScript console for test results.

Publishing to npm

From the monorepo root:

yarn workspace @fluid-org/fluid build-publish

Bumps the patch version, commits, tags vX.Y.Z, builds in production mode, stages the article website, and publishes to npm. Version tracks milestone (e.g. 0.12.x for milestone fluid 0.12). After it succeeds, push manually:

git push && git push --tags

Requires an npm automation token in ~/.npmrc (bypasses 2FA):

//registry.npmjs.org/:_authToken=npm_...

VS Code

  • Install the PureScript IDE extension
  • In extension settings, select Add Npm Path
  • Avoid having PureScript installed globally

Windows users:

  • Launch VS Code from the Ubuntu (WSL) terminal
  • Install the WSL extension

Workflow

See CLAUDE.md for the development workflow, including branching strategy, issue lifecycle, and milestone management.