Meta: Want to contribute to QAtrial? Learn how to run the project locally and where to add value across countries, verticals, modules, languages, AI prompts, and documentation.
Why QAtrial Is Open to Contributors
QAtrial is licensed under AGPL-3.0 (GNU Affero General Public License v3.0). This license means two things for contributors:
- You can use, modify, and distribute QAtrial freely. Fork it, customize it for your organization, run it internally, extend it with new features.
- If you modify QAtrial and serve it over a network, you must share your source code under the same license. This ensures that improvements flow back to the community rather than being locked in proprietary forks.
The practical effect is that QAtrial grows through community contributions. Every country template, every vertical, every translation, and every bug fix benefits every user. The platform’s value increases with the breadth of its regulatory coverage, and no single team can cover 37 countries, 10 verticals, and 12 languages alone.
Contribute
{cc}/base.ts
{id}/common.ts
src/templates/registry.ts
{lang}/common.json
src/connectors/
npm install && npm run dev
(if EU/EFTA country)
templates
overlays
templates
sub-templates

How to Use Visual Studio Code: A Beginner’s User Guide 2026: The Handbook to Learn Editor Navigation, Add the Right Extensions, and Build Your First Real Project with Ease
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
What Kinds of Contributions Matter Most
QAtrial has clear extension points where contributions create the most value. They are listed here in approximate order of impact:
1. Country Templates
QAtrial’s country registry lists 37 countries, but only 14 have full templates with jurisdiction-specific requirements and tests. That leaves 23 countries where users get either EU base templates or generic content.
Adding a country template means encoding a jurisdiction’s regulatory authorities, key regulations, submission requirements, and compliance expectations into structured requirements and tests. This is high-impact work because it directly improves the experience for every user in that jurisdiction.
Where to start: src/templates/regions/{cc}/base.ts — see the Developer Guide section on adding countries.
Domain knowledge required: Understanding of the country’s regulatory framework (which authority, which key regulations, which standards apply to which verticals).
Code knowledge required: Minimal. Country templates are TypeScript data files — arrays of objects with title, description, tags, riskLevel, and regulatoryRef fields. You do not need to understand React, Zustand, or the component architecture.
2. Vertical Templates
10 verticals are defined, and 8 have base templates. Beyond filling the gaps, existing verticals can always be deepened with more requirements, more tests, more specific regulatory references, and project-type sub-templates.
Where to start: src/templates/verticals/{id}/common.ts
Domain knowledge required: Understanding of the vertical’s regulatory standards, risk management approach, and quality expectations.
3. Quality Module Content
QAtrial has 15 quality modules, each with a small set of requirements and tests (typically 5 requirements and 2-3 tests per module). Modules can always benefit from deeper content — more specific requirements, additional tests, more precise regulatory references.
Where to start: MODULE_DEFINITIONS in src/templates/registry.ts
4. Language Translations
QAtrial has 12 complete translations (English, German, French, Spanish, Italian, Portuguese, Dutch, Japanese, Chinese Simplified, Korean, Hindi, Thai) with approximately 440 keys each. There are 23 additional locale directories prepared under public/locales/ waiting for translations.
Where to start: Copy public/locales/en/common.json to public/locales/{code}/common.json and translate all values.
Domain knowledge required: Fluency in the target language, plus familiarity with regulated industry terminology in that language.
Code knowledge required: None. Translation files are JSON.
5. AI Prompts
QAtrial has 6 AI prompt templates for test generation, risk classification, gap analysis, CAPA suggestions, executive brief, and requirement extraction. Contributors can improve existing prompts (better regulatory context, more precise output formatting) or add new prompt types.
Where to start: src/ai/prompts/
Skills required: Understanding of prompt engineering, regulatory domain knowledge, and familiarity with the AI response validation schema.
6. Dashboard Views, Report Types, Connector Implementations
For contributors comfortable with React and TypeScript, there are extension points for:
- New dashboard views (adding a tab to the Evaluation dashboard)
- New report types (adding a template to the report generator)
- Connector implementations (building actual sync logic for the JIRA, Azure DevOps, GitHub, GitLab, Veeva Vault, MasterControl, TrackWise, SharePoint, or Confluence connectors — currently interface-only)
Where to start: src/components/dashboard/, src/components/reports/, src/connectors/
7. Documentation, Bug Reports, and Testing
Not every contribution requires writing code or templates:
- Bug reports: File issues on GitHub with reproduction steps
- Documentation: Improve the User Guide, Developer Guide, or API Reference
- Testing: Write Vitest tests for existing functionality, improve test coverage

Avid Pro Tools Artist – Music Production Software – Perpetual License
- Download Card with Serial Key: Includes download instructions and activation key
- End-to-End Audio Production: Supports all stages from idea to final mix
- Non-Linear Composition Tools: Create with loops, MIDI, and recordings
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Local Setup
Prerequisites
- Node.js 18.0 or later
- npm 9.0 or later
- Git
Clone, Install, Run
git clone https://github.com/MeyerThorsten/QAtrial.git
cd QAtrial
npm install
npm run dev
The development server starts at http://localhost:5173 with hot module replacement. Changes to source files are reflected immediately in the browser.
Available Scripts
| Script | Purpose |
|---|---|
npm run dev | Start Vite dev server with HMR |
npm run build | Production build to dist/ |
npm run lint | Run ESLint on source files |
npm run test | Run all tests with Vitest |
npm run test:watch | Run tests in watch mode |
npm run test:coverage | Run tests with coverage report |

Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Where to Start If You Have Domain Knowledge (Not Code Skills)
Country templates and vertical templates are the best starting point for contributors with regulatory domain knowledge but limited front-end development experience.
These templates are TypeScript data files. They do not use React components, hooks, or state management. They export arrays of objects with string fields. If you can write JSON, you can write templates — the TypeScript syntax adds only type annotations.
Workflow for domain-focused contributors:
- Fork the repository on GitHub
- Clone your fork locally
- Run
npm install && npm run dev - Find the appropriate directory:
- Country:
src/templates/regions/{cc}/base.ts - Vertical:
src/templates/verticals/{id}/common.ts
- Create your template file following the patterns in existing templates
- Test through the setup wizard (select your country/vertical, check the preview)
- Add translation keys to
public/locales/en/common.json - Commit and push to your fork
- Open a pull request
You do not need to understand how the template composition system works internally. You just need to export a CountryTemplateSet or VerticalTemplateSet object with the right fields, and the system handles the rest.

Experiential Robotics Platform (XRP) – DIY Kit – Chassis Not Included – Beginner to Advanced STEM Robot – Print Your Own Chassis
- Hardware Kit: Easy-to-assemble expandable robot platform
- Programming Environment: Supports Blockly, Python, WPILib coding
- Online Modules: Structured robotics learning with projects
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Where to Start If You Have Code Skills
For developers comfortable with React and TypeScript, QAtrial offers several areas for contribution:
Components: The application has 14 dashboard components, wizard components, requirement and test tables, AI panels, report generators, and audit trail views — all in src/components/. The component architecture follows standard React patterns with Zustand stores for state management.
Stores: QAtrial uses 14 Zustand stores for state management, persisted to localStorage. Adding a new feature often means adding a new store or extending an existing one.
AI prompts: The src/ai/prompts/ directory contains prompt templates that structure the input and validate the output of AI interactions. Improving prompts or adding new prompt types is a high-leverage area.
Dashboard views: Each dashboard tab is a component in src/components/dashboard/. Adding a new tab means creating a component and wiring it into the dashboard navigation.
Tech stack reference: React 19, TypeScript, Vite, Tailwind CSS 4, Zustand, TanStack Table v8, Recharts, react-i18next, Lucide React, Vitest.
Best First Contributions
If you are looking for a specific task to start with, these are the two most accessible:
A Country Template for Your Jurisdiction
If you live or work in a country that is in the QAtrial registry but does not have templates (23 of 37 countries), creating the template for your jurisdiction is an immediately useful contribution. You know the regulatory authorities, the key regulations, and the compliance expectations better than anyone.
A good first country template includes:
- 5-10 base requirements covering the jurisdiction’s key regulatory expectations
- 3-5 tests linked to those requirements via tags
- Real regulatory references (statute names, regulation numbers, guidance document titles)
- Appropriate risk levels (not everything is “critical”)
A Translation File for Your Language
If QAtrial is not available in your language but a locale directory exists under public/locales/, translating the approximately 440 keys from the English file is a self-contained, high-value contribution. The JSON structure is flat — no nested complexity. Each key has a clear English value that you translate.
How the Developer Guide Is Organized
The Developer Guide covers each extension type in a dedicated section:
- Development Setup — Prerequisites, clone/install/run, available scripts
- Adding a New Country — Base templates, registry, overlays, EU mapping, translations
- Adding a New Vertical — Common templates, registry, risk taxonomy, project-type packs, translations
- Adding a New Module — Module definitions, requirements, tests, translations
- Adding a New Language — Locale files, language selector, translation key reference
- Adding a New AI Prompt — Prompt structure, response validation, schema definition
- Adding AI Validators — JSON schema validation for AI responses
- Writing Connectors — Connector interface, field mapping, sync implementation
- Creating New Stores — Zustand store patterns, persistence, naming conventions
- Adding Dashboard Views — Component structure, data hooks, tab integration
- Adding Report Types — Report template structure, data collection, rendering
- Code Conventions — Naming, TypeScript patterns, file organization
- Test Infrastructure — Vitest setup, test patterns, coverage
- Testing Checklist — What to verify before submitting a pull request
Each section includes step-by-step instructions, code examples, and templates you can copy and modify.
The Template Composition System
Understanding how templates compose helps you write better ones.
When a user creates a project through the setup wizard, the template composer collects content from multiple sources:
- Country base templates — Jurisdiction-specific requirements and tests
- EU base templates — Loaded first for EU/EFTA countries
- Country-vertical overlays — Loaded if the country has an overlay for the selected vertical
- Vertical common templates — Domain-specific requirements and tests
- Vertical project-type templates — Loaded if the vertical has a template for the selected project type
- Module templates — Requirements and tests from each selected quality module
All sources are merged, and duplicates are removed using templateId matching (or title matching as a fallback). The result is a unified, non-redundant set of requirements and tests.
This means your country template automatically works with all verticals and modules. Your vertical template automatically works with all countries. You do not need to think about every possible combination — the composer handles it.
AGPL-3.0 Obligations
The AGPL-3.0 license has specific obligations that contributors and users should understand:
Using QAtrial internally is fine. If you run QAtrial within your organization — on a local machine, on an internal server, behind your firewall — you have no obligation to share your modifications. Internal use is not “conveying” or “providing as a service.”
Modifying and serving QAtrial requires sharing source. If you modify QAtrial and make it available over a network (for example, hosting a modified version as a SaaS product), you must make your modified source code available under the AGPL-3.0 license. This is the “network copyleft” provision that distinguishes AGPL from standard GPL.
Contributing back is voluntary (but encouraged). The license does not require you to submit your changes upstream to the QAtrial repository. But doing so benefits the community, ensures your changes are maintained alongside the main project, and avoids the burden of maintaining a private fork.
Final Takeaway
QAtrial is built to be extended. The architecture has clear extension points for countries, verticals, modules, languages, AI prompts, dashboard views, report types, and connectors. You do not need to be a front-end developer to contribute — the highest-impact contributions (country templates and translations) require domain knowledge and data entry skills, not React expertise.
The template composition system ensures that every contribution composes cleanly with every other contribution. A country template written today will work with a vertical template contributed next month. This composability is what makes community contributions so valuable — each addition multiplies the platform’s coverage.
Related Topics
- Why Open Source — The rationale behind AGPL-3.0 licensing and community-driven development
- How to Add a Country — Step-by-step guide for creating jurisdiction-specific templates
- How to Add a Vertical — Step-by-step guide for creating industry domain templates
Clone the repo, run locally, and pick a contribution area. Visit github.com/MeyerThorsten/QAtrial, fork the repository, and run npm install && npm run dev. Browse the template directories to understand the patterns, then pick the contribution that matches your expertise: a country you know, a vertical you work in, or a language you speak. Open a pull request when it is ready.