Codie Quality Control System

To ensure the highest quality of templates on Codie marketplace, developers must follow these rules and guidelines. Templates not meeting these standards will not be accepted.

  • 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.
  • Templates must score 85+ on Google PageSpeed Insights.

  • 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.