Contribute
1Form is open source and community driven. Here's how you can help.
Add a New Form
Each form is defined as a TypeScript file in src/data/forms/. To add a new form:
- Fork the repository
- Copy an existing form file (e.g.,
w-4.ts) as a template - Fill in the form metadata: title, description, issuing authority, difficulty, etc.
- Write the walkthrough sections and steps with explanations, examples, common mistakes, and tips
- Register your form in
src/lib/forms.ts - Submit a pull request
Improve Existing Walkthroughs
Found a mistake? Have a better explanation? You can:
- Fix inaccurate or outdated information
- Add missing common mistakes or tips
- Improve field explanations for clarity
- Add reference screenshots with field highlights
- Report form changes and version updates
Report Issues
Found a bug or have a feature request? Open an issue on GitHub Issues.
Data Model Reference
Each form data file exports a FormData object with two properties:
- meta — Form identity, category, difficulty, quick facts, tags, and resources
- walkthrough — Introduction, sections (with steps), and completion content. Each step includes field label, explanation, detailed guidance, field type, examples, common mistakes, and tips.
See the TypeScript types in src/types/form.ts and src/types/walkthrough.ts for the complete schema.