Contributing
Flaghoist is Apache-2.0 and community-driven. Contributions are very welcome.
Development
Section titled “Development”It is a pnpm + Turborepo monorepo:
corepack enablepnpm installpnpm buildpnpm testpnpm typecheckRun one package’s tests with a filter:
pnpm --filter @flaghoist/core testA local server
Section titled “A local server”To run a real Flaghoist server on your machine, so you can curl it, point the browser examples at
it, or manage it with the CLI, use:
pnpm dev:server # → http://localhost:8787It uses the in-memory adapter, seeds a couple of flags, opens CORS to the Vite dev ports, and serves
the dashboard at /admin if you have run pnpm build. The read key is read-key and the admin
token is admin; override with PORT, READ_API_KEY, ADMIN_TOKEN, or FLAGS_CORS.
Good first contributions
Section titled “Good first contributions”- New storage adapters. Implement the four-method
StorageAdapterfor a database we do not ship yet (DynamoDB, Deno KV, SQLite, MongoDB…). Copy an existing adapter, and make it pass the shared conformance suite: that is the whole spec. - OFREP language guides. Document using Flaghoist from Go, Python, Java, .NET, Ruby or Rust via the official OpenFeature OFREP providers.
- Examples. A minimal runnable app in a framework we do not cover yet.
Pull requests
Section titled “Pull requests”- Branch from
main. - Add a changeset for any user-facing change:
pnpm changeset. - Make sure
pnpm build,pnpm test, andpnpm typecheckpass. - Sign off your commits (
git commit -s) per the DCO.
main is always releasable. Keep changes small and, where it makes sense, behind flags: we develop
Flaghoist the way Flaghoist is meant to be used.
Reporting security issues
Section titled “Reporting security issues”Please report vulnerabilities privately. See SECURITY.md. Do not open a public issue for security reports.