Skip to main content

Contributing

We welcome issues and pull requests. The full process is documented in CONTRIBUTING.md. The short version:

Local setup​

Use Node.js 22.18+ in 22.x, 24.11+ in 24.x, or 26+ and npm 10+. Build from source; these examples do not depend on published FlipCard packages.

git clone https://github.com/microsoft/flipcard.git
cd flipcard
npm ci
npm run build
npm test

Quality gates​

Before opening a pull request, run:

npm run lint
npm run typecheck
npm test

Add tests for new behavior using the existing Vitest setup, and run npm run build before submitting. These are required checks, not a claim that the current branch is passing or has no security alerts.

TypeScript 7 builds the workspaces; TypeScript 6 is isolated in lint tooling for parser compatibility. The dev container uses Node 24 and image version 5.2.5.

Working on the docs site​

cd docs
npm ci
npm start # dev server at http://localhost:3000
npm run build # static build into docs/build

The docs install uses its own lockfile. .github/workflows/deploy.yml combines Docusaurus, FlipDeck (/flipdeck/ and compatibility /showcase/), and the exported manifest schema (/schema/v0.1.json) under /flipcard/. Set repository Settings → Pages → Source to GitHub Actions. Branch/Jekyll publishing does not build the site. Deployment and hosted links must be verified separately from a local build.

Reporting security issues​

Please do not open a public GitHub issue. Follow SECURITY.md to report vulnerabilities through the Microsoft Security Response Center.

Code of conduct​

This project follows the Microsoft Open Source Code of Conduct.