Validation Checklist
Complete validation checklist for marketplace submission. Required and recommended checks for your module.
Validation Checklist
Use this checklist before submitting your module to the marketplace. You can also use the Module Validator tool to run automated checks.
Required
These checks must pass for your module to be approved:
- Module ID — Unique slug matching
/^[a-z][a-z0-9-]{2,30}$/ - Health endpoint —
GET /api/healthreturns{ status: "ok" }with 200 - HTTPS — Deploy URL uses HTTPS in production
- Iframe embedding — No
X-Frame-Options: DENYheader - Shell auth — Uses
ShellAuthProvider+useShellAuth()for authentication - At least 1 screenshot (recommended 3+)
- Short description — 20-200 characters
- Full description — At least 50 characters with feature list
- At least 1 pricing tier > €0 (or clearly free)
- Support email provided
Recommended
These improve your validation score and marketplace ranking:
- Unit tests (Vitest/Jest)
- E2E tests (Playwright)
- Documentation URL provided
- Repository URL provided (public or private)
- At least 2 tags for discoverability
- i18n support (Polish + English minimum)
- CI/CD pipeline (GitHub Actions)
- Security headers:
- X-Content-Type-Options: nosniff
- Strict-Transport-Security (HSTS)
- Referrer-Policy
- X-XSS-Protection
Module ID Rules
The module ID (slug) must:
- Start with a lowercase letter
- Contain only lowercase letters, digits, and hyphens
- Be 3-31 characters long
- Not be a reserved slug
Reserved Slugs
These cannot be used as module IDs:
Performance Targets
| Metric | Ideal | Maximum |
|---|---|---|
| Health endpoint response | < 500ms | 5000ms |
| Page load time | < 2000ms | 5000ms |
Modules that exceed the maximum load time will fail validation. Optimize your bundle size and use output: 'standalone' in next.config.ts.
Validation Score
The automated validator calculates a score from 0-100 based on weighted checks:
| Category | Weight | Checks |
|---|---|---|
| Security | 2x | HTTPS, security headers |
| Compatibility | 2x | Health endpoint, iframe embedding, Shell version |
| Performance | 1.5x | Page load time |
| Quality | 1x | Module ID, screenshots, metadata |
- Passed check = full weight
- Warning check = 50% weight
- Failed check = 0% weight
A module must have zero failed checks to be eligible for submission.