First off, thanks for taking the time to contribute! This project is made better by people like you.
Whether you're fixing a typo, reporting a bug, or proposing a new feature — every contribution matters.
Before asking:
- Check the README — it covers most use cases
- Search existing issues — someone might have asked already
Still stuck? Open a Discussion and we'll help out.
Great catch! Help us fix it by opening an issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Browser + OS + React version
- Which form adapter you're using (RHF, Formik, TanStack)
- A code snippet (bonus points for a minimal reproduction!)
We'd love to hear your ideas! Open a feature request and tell us:
- What problem does this solve?
- How would the API look?
- Any alternatives you've considered?
Keep in mind: this library aims to stay small and focused. We may decline features that add significant complexity or bundle size.
Awesome! Here's how to get started:
# Fork and clone
git clone https://github.com/YOUR_USERNAME/formless.git
cd formless
# Install dependencies
npm install
# Make sure everything works
npm testgit checkout -b fix/rhf-validation-bug
# or
git checkout -b feat/add-yup-bridgeA few guidelines:
| Do | Don't |
|---|---|
| Write tests for new features | Skip tests |
| Keep changes focused | Mix unrelated changes |
| Follow existing code style | Reformat entire files |
| Update docs if needed | Leave outdated docs |
npm run lint # Check code style
npm run typecheck # Verify types
npm test # Run tests
npm run build # Make sure it buildsWe use conventional commits:
git commit -m "fix: handle RHF validation mode correctly"
git commit -m "feat: add Yup schema bridge"
git commit -m "docs: add TanStack migration guide"Push your branch and open a PR. Include:
- What changed and why
- How to test it
- Screenshots (if UI-related)
- TypeScript — All code is typed
- Prettier — Formatting is automatic (runs on commit)
- ESLint — Linting catches common issues
Don't worry too much about style — our tools handle most of it automatically.
This library follows a few principles:
- Form agnostic — Works with any supported form library
- Small bundle — Minimal overhead on top of your form library
- Simple API — Easy to use, hard to misuse
- Type safe — Full TypeScript support with intelligent autocomplete
If your contribution aligns with these, we'll likely merge it!
By contributing, you agree that your code will be licensed under the MIT License.
Seriously — whether you're fixing a comma or adding a feature, we appreciate you taking the time to make this project better.
Happy coding!