Support Lithia.js by becoming a sponsor at

Menu

Project Structure

Optimized Architecture for Modern Node.js Applications

Core Directory Conventions

Essential Directories

Project Architecture

DirectoryPurposeImplementation Notes
srcBusiness logic & domain modulesOptional TypeScript/JS organization
routesAPI endpoint definitionsZero-config routing system

Configuration Ecosystem

FileRole
lithia.config.jsFramework behavior customization
package.jsonDependency management & scripts
tsconfig.jsonTypeScript compilation rules

Environment Management

FileEnvironment Scope
.envBase variables
.env.localDeveloper overrides
.env.productionCloud deployment config
.env.developmentDev-specific settings

Routing Architecture

Core Routing Conventions

PatternURL StructureUse Case
index.ts/Root endpoint
user.ts/userStatic resource
[id].ts/:idDynamic identifiers
[slug].ts/:slugSEO-friendly paths

Advanced Routing Patterns

StructureExample PathImplementation Benefit
api/v1/users/api/v1/usersVersioned endpoints
products/[id]/reviews/products/123/reviewsNested resources
(admin)/dashboard/dashboardRoute grouping without URL prefix

Best Practices

Code Organization Strategy

  1. Keep route handlers focused on HTTP layer
  2. Store business logic in src/modules
  3. Maintain shared types in src/types
  4. Place middleware in src/middlewares

Scalability Patterns

  • Use route groups for permission-based endpoints
  • Implement dynamic segments for CRUD operations
  • Leverage nested folders for complex API structures

Pro Tip: Generate route visualization with ###npx lithia routes analyze### to optimize your API structure.