Skip to content

Contributing

Simfinity.js is maintained by Simtlix and released under the Apache 2.0 License. Contributions to the library, examples, and documentation are welcome.

Work on the library

Clone the repository and install the locked dependencies:

sh
git clone https://github.com/simtlix/simfinity.js.git
cd simfinity.js
npm ci

Read AGENTS.md and the relevant files in .cursor/rules/ before changing behavior. The project uses ES modules, Mongoose 8, GraphQL 16, and Vitest.

sh
npm run lint
npm test

Add focused coverage for critical behavior and regressions. Keep the public documentation synchronized with API changes. A useful pull request explains the affected behavior, the change, and how it was validated.

Improve the documentation

Use Node.js 22 or newer for the website tooling:

sh
npm run docs:install
npm run docs:dev

Edit Markdown pages in docs/guide, docs/reference, or docs/resources. Add new pages to the sidebar in docs/.vitepress/config.mts. The site's dependencies are separate from the library's dependencies.

Before submitting:

sh
npm run docs:build
npm run docs:preview

Check links, search, mobile navigation, code examples, and both color themes. The website maintainer guide covers the layout, assets, build configuration, and publication workflow.

Report a problem

Open an issue on GitHub with your package version, Node version, the relevant type definitions, the GraphQL operation, and the observed result. Include a minimal reproduction when possible. Remove credentials and private data from examples.

Resources

Open source. Released under the Apache 2.0 License.