Review Process
Every template submitted to Gymlium goes through a manual review by the platform team. This ensures quality, consistency, and a great experience for trainers.
What reviewers check
Functional testing
- All pages render without errors
- Navigation works correctly (all links functional)
- No JavaScript console errors
- Loading states display properly
- Auth-dependent UI works (login/logout flow)
- Conditional navigation respects plan limits
Visual quality
- Professional, polished appearance
- Consistent design language across all pages
- Good use of whitespace and typography
- Quality hover and focus states
- Smooth transitions and animations (if any)
- Visually distinct from existing marketplace templates
Responsiveness
- Layouts adapt smoothly from mobile (375px) to desktop (1440px)
- Mobile menu works correctly
- No horizontal scrolling on any viewport
- Touch targets are adequately sized (44×44px minimum)
- Images scale appropriately
RTL support
- Layout mirrors correctly in Arabic locale
- Navigation flows right-to-left
- Text alignment is correct
- No overlapping elements
- Mobile menu slides from the correct side
- Directional icons flip appropriately
Dark & light mode
- Both modes look polished and intentional
- No invisible text against backgrounds
- Borders and dividers are visible in both modes
- Form inputs have visible focus indicators in both modes
- Images/icons have appropriate contrast in both modes
Code quality
- Correct export patterns (Header/Footer named, pages default)
- CSS Modules used properly — no global style leaks
- No inline styles (except dynamic values)
- No hardcoded user-facing text — everything uses
t() - Locale-aware links use
localePath() - Semantic HTML elements
- ARIA attributes on interactive custom elements
Assets
- Thumbnail is high-quality, 1200×900px
- Screenshots accurately represent the template
- Total package size is within limits
- No unnecessary files included
Common rejection reasons
| Reason | How to fix |
|---|---|
| Hardcoded English text | Replace all visible text with t('key') calls |
| RTL layout broken | Test with ar locale, add :global([dir="rtl"]) overrides |
| Only one theme mode works | Define variables for both [data-theme="light"] and [data-theme="dark"] |
| Mobile layout broken | Test at 375px width, implement hamburger menu |
| Header uses default export | Change to export function Header() (named export) |
| Console errors | Fix all runtime errors visible in DevTools |
| Low-quality thumbnail | Create a high-resolution 1200×900px screenshot |
| Missing pages | Ensure home, about, and login pages exist |
| Horizontal scroll on mobile | Check for elements exceeding viewport width |
| Inaccessible interactive elements | Use <button>, <a>, add aria-label to icon buttons |
Timeline expectations
| Stage | Duration |
|---|---|
| Automated validation | Instant (seconds) |
| Queue wait | 1-3 business days |
| Manual review | 1-2 business days |
| Total | 2-5 business days |
Review times may be longer during peak submission periods. You’ll receive email notifications at each stage change.
Reviewer feedback
When changes are requested, reviewers leave specific, actionable feedback on each issue. You’ll see this in the developer portal under your template’s detail page.
Example feedback:
RTL: Mobile menu slides from wrong side The mobile menu slides in from the right in RTL mode — it should slide from the left. Add
:global([dir="rtl"])overrides to your mobile menu CSS.
Dark mode: Footer links invisible Footer links use
color: #64748bwhich has insufficient contrast against--bg-primary: #0f172a. Usevar(--text-secondary)instead.
How to resubmit after rejection
- Read all reviewer feedback carefully
- Fix each issue in your local template
- Run validation:
npm run validate -- --template your-template-name - Test thoroughly — especially the areas the reviewer flagged
- Repackage and upload through the developer portal
Resubmissions are reviewed with priority and typically processed within 1-2 business days. Reviewers will specifically re-check the areas they previously flagged plus a general quality pass.