Skip to content

Contributing

Thank you for investing time in cross-framework. Contributions—code, tests, docs, and issue triage—directly improve how teams move React UI toward Vue.

The canonical contributor guide for GitHub discovery lives at the repository root as CONTRIBUTING.md. When you change workflow or policy, update both that file and this page so they stay aligned.

Live playground: cross-framework.netlify.app · Documentation (this site): cross-framework-doc.netlify.app

Contact & joining the team

See also Contact.

Quick start

From the repository root (parent of docs/):

bash
npm install
npm run build
npm test
  • npm run build runs tsup and produces dist/.
  • npm test rebuilds and runs node --test test/*.test.mjs.

Documentation site

VitePress lives under docs/ with its own package.json:

bash
npm install --prefix docs
npm run docs:dev

Project structure (where to edit)

AreaPathIdeas
Parsersrc/parser/react.tsJSX patterns, export resolution, edge cases
IRsrc/ir/types.tsRicher model when needed (careful with codegen)
Vue codegensrc/codegen/vue.tsOutput quality, readability
CLIsrc/index.tsFlags and UX (stay backward compatible)
Playgroundwebsite/Samples, UX, API wiring
Docsdocs/Accuracy and examples

High-impact areas

  1. Real-world React — components that fail or produce poor Vue output.
  2. Hook edge casesuseMemo, useEffect, refs in dependency arrays.
  3. JSX — spread, lists, keys, conditionals.
  4. Tests — new fixtures in test/fixtures/ + assertions in test/convert.test.mjs.
  5. Documentation — this site and the root README.

Adding a test fixture

  1. Add a file under test/fixtures/ (e.g. my-pattern.jsx).
  2. Extend test/convert.test.mjs with a test("…", () => { … }) that runs the CLI or convertCode and asserts on the output with assert.match / assert.doesNotMatch.

Run npm test before opening a PR.

Pull request guidelines

  • Scope: One logical change per PR when possible.
  • Style: Match existing TypeScript style; avoid unrelated refactors.
  • Evidence: For parser/codegen changes, prefer tests over screenshots alone.

Code of conduct

Be respectful in issues and reviews. Assume good intent; focus on the problem and the code.

For the full policy text, see CONTRIBUTING.md at the repository root.

Questions? parsajiravand@gmail.com · MIT License · BRANDING.md for name / fork policy · https://cross-framework.netlify.app/ · https://cross-framework-doc.netlify.app/