Contributing

Sometic is open source under MIT. Contributions are welcome via GitHub pull requests. Pushes to main are restricted; changes land through PRs with required checks and approval.

Requirements

  • Node.js >=20.18.0
  • pnpm 10.14.0 (see the repository root packageManager field)

Setup

bash
git clone https://github.com/aitistack/sometic.git
cd sometic
pnpm install
pnpm build

Common commands

CommandPurpose
pnpm buildBuild packages (Turbo)
pnpm lintLint
pnpm typecheckTypecheck
pnpm testUnit / package tests
pnpm test:coverageCoverage
pnpm test:e2ePlaywright e2e
pnpm sizeBundle size budgets
pnpm packages:validatePackage metadata / export checks
pnpm docs:devDocs site (VitePress)
pnpm docs:buildBuild docs
pnpm docs:checkDocs validation
pnpm playground:vanillaVanilla / Web Components playground → http://127.0.0.1:5190
pnpm playground:reactReact playground
pnpm playground:vueVue playground
pnpm format / pnpm format:checkPrettier
pnpm changesetAdd a Changeset for publishable changes
pnpm changeset:statusChangeset status

Local quality gate:

bash
pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm size && pnpm packages:validate

Before you start

  1. Read Architecture and What’s included
  2. Prefer a focused PR (one concern) over a large mixed change
  3. Match existing package boundaries and dependency direction (adapters → features → foundation)

How to contribute

  1. Fork the repository (or branch, if you have write access)
  2. Create a branch from main
  3. Implement with tests and docs (FAQ/comparison for public modules)
  4. Add playground coverage for new interactive / browser-visible surfaces
  5. Run the local quality gate above
  6. Add a Changeset for publishable package changes: pnpm changeset
  7. Open a pull request and wait for CI + maintainer review

What we look for

DoAvoid
Four-space indentationTabs or two-space indent
Production TypeScriptPlaceholders or mock-as-production
Docs with the changeUndocumented public APIs
Stable issue codes for validationSchema-library lock-in in cores
Security notes on sensitive PRsPublic issues for unfixed vulns
Playground demos for new interactive UIDocs-only interactive features

Architecture for contributors

Public architecture lives under Concepts and the API package index. Decisions that affect consumers are documented on those pages and in release notes. Keep dependency direction one-way: framework adapters never leak into foundation packages, and cores must not import React/Vue/etc.

Bugs and features

Use GitHub issue templates (Bug report / Feature request). Include package versions, framework, and reproduction steps.

Security

Do not file public issues for exploitable vulnerabilities. See Security and the repo SECURITY.md.

License

By contributing, you agree your work is provided under the project MIT license (see Terms and License).