Codie Marketplace Quality Review

Each marketplace submission is connected to a selected GitHub repository, branch, and exact source revision. Advisory evidence and staff review support approval or rejection, and Codie records which reviewed revision is currently published.

Quality reports are advisory and can include false positives or false negatives. They are not a certification or guarantee. Codie does not automatically deploy or publish repository changes.

1. Submit a source revision

The seller connects an authorized GitHub repository, selects a branch, and submits an exact revision for review.

2. Review evidence

Codie records quality evidence and staff decisions against that exact revision, including reasons and limitations.

3. Approve the current publication

An authorized publication decision activates one current reviewed revision while preserving superseded history.

4. Maintain after publication

Published products can enroll in advisory maintenance and receive revision-bound findings and scan history.

5. Send updates through review

A maintenance fix or seller update creates a normal new submission and follows the same review and approval path.

6. Keep control

Repository access can be revoked, findings remain advisory, and Codie never automatically merges or deploys.

For ongoing runtime health after launch, see QC Guard.

  • Use proper naming conventions (camelCase, PascalCase).
  • Ensure consistent indentation and formatting.
  • Write modular and reusable code with small components.
  • Avoid hardcoding values; use config files or environment variables.

Templates must follow a well-structured architecture for scalability, maintainability, and easy customization. Codie requires a Feature-based structure with the Atomic Design pattern.

📂 Web (React/Next.js)
src/
 ├── assets/              # Images, fonts, icons, static files
 │    ├── images/
 │    ├── fonts/
 │    └── icons/
 │
 ├── components/          # Reusable UI Components (Atomic Design)
 │    ├── atoms/          # Smallest elements (Button, Input, Icon)
 │    ├── molecules/      # Combination of atoms (Form, Card, NavbarItem)
 │    ├── organisms/      # Complex sections (Header, Sidebar, Footer)
 │    ├── templates/      # Page-level structures (Dashboard layout, Auth layout)
 │    └── pages/          # Final pages that use templates (Home, Login, Dashboard)
 │
 ├── features/            # Feature-based modules
 │    ├── auth/           # Authentication module
 │    │    ├── api/       # API calls for login, register
 │    │    ├── components/ # Feature-specific UI
 │    │    ├── hooks/     # Feature hooks
 │    │    └── utils/     # Helpers
 │    ├── orders/         # Orders module
 │    ├── products/       # Products module
 │    └── users/          # User management
 │
 ├── hooks/               # Global custom hooks (e.g., useAuth, useFetch)
 ├── services/            # API clients (axios, graphql, etc.)
 ├── utils/               # Global utilities (validators, formatters)
 ├── styles/              # Global styles, Tailwind config, SCSS variables
 ├── config/              # Environment variables, constants
 ├── App.tsx              # Root app entry
 └── index.tsx            # Entry point
📂 Mobile (React Native/Flutter)
src/
 ├── assets/              # Images, fonts, icons, static files
 │
 ├── components/          # Atomic Design (same as web)
 │    ├── atoms/
 │    ├── molecules/
 │    ├── organisms/
 │    ├── templates/
 │    └── screens/        # Screens equivalent to pages
 │
 ├── features/            # Feature-based modules
 │    ├── auth/           # Authentication
 │    ├── chat/           # Messaging
 │    ├── profile/        # User profile
 │    └── shop/           # E-commerce example
 │
 ├── navigation/          # React Navigation / Flutter Navigator
 ├── hooks/               # Custom hooks
 ├── services/            # API clients
 ├── utils/               # Global utilities
 ├── styles/              # Global styling (Theme, Colors)
 ├── config/              # Environment variables, constants
 ├── App.tsx              # Root app
 └── main.tsx             # Entry point
📂 Backend (Node.js/Express)
backend/
 ├── src/
 │    ├── config/         # Env variables, DB config
 │    ├── controllers/    # Business logic
 │    ├── middlewares/    # Auth, error handling, validation
 │    ├── models/         # Database schemas (Mongoose/Sequelize)
 │    ├── routes/         # API routes (feature-based)
 │    ├── services/       # Reusable business services
 │    ├── utils/          # Helpers & common functions
 │    ├── tests/          # Unit & integration tests
 │    └── app.js
 ├── package.json
 └── server.js

  • Optimize images, videos, and assets for faster load.
  • Avoid unnecessary dependencies and libraries.
  • Use lazy loading where possible.
  • Provide reproducible performance evidence for the supported environment and disclose known limitations.

  • Follow mobile-first approach.
  • Test on multiple devices and browsers.
  • Use relative units (%, em, rem) instead of fixed widths.

  • Validate & sanitize all inputs (prevent SQL injection/XSS).
  • Ensure compatibility with latest 2 major browser versions.
  • Use secure coding practices, enforce HTTPS.

  • Use CSS/SCSS variables for colors, fonts, and spacing.
  • Organize assets in logical folders (images, scripts, styles).
  • Components must be independent and reusable.
  • Include documentation for easy customization.

  • Perform unit tests for key features.
  • Validate HTML/CSS/JS with W3C Validator, ESLint.
  • Ensure no console errors/warnings.
  • Test all forms, buttons, and interactive elements.

  • Follow WCAG 2.1 accessibility guidelines.
  • Use semantic HTML for screen readers.
  • Ensure proper color contrast for readability.
  • Support keyboard navigation for all interactive elements.

  • Provide a README with setup & installation instructions.
  • Include examples for customization.
  • List dependencies or required tools.

  • Submit only after full testing & validation.
  • Address Codie review team feedback within deadline.
  • Templates must pass final QC check before approval.
⚠️ Templates that fail to meet these guidelines will be rejected. Repeated violations may result in account suspension.