Skip to content

Output Structure

strapi2front uses a by-feature output structure, organizing code by content type following a “screaming architecture” pattern. Each content type has its own folder with all related files.

output: {
path: "src/strapi",
}
  • Directorysrc/strapi/
    • Directorycollections/
      • Directoryarticle/
        • types.ts
        • schemas.ts
        • service.ts
        • actions.ts
      • Directorycategory/
        • types.ts
        • schemas.ts
        • service.ts
    • Directorysingles/
      • Directoryhomepage/
        • types.ts
        • schemas.ts
        • service.ts
    • Directorycomponents/
      • seo.ts
      • hero.ts
    • Directoryshared/
      • utils.ts
      • client.ts
      • locales.ts
  • Scalability: Easy to navigate in large projects
  • Encapsulation: Each content type is self-contained
  • Co-location: Related code lives together
  • Easy imports: import { articleService } from '@/strapi/collections/article'
// Import from specific files (no barrel exports)
import { articleService } from '@/strapi/collections/article/service';
import type { Article } from '@/strapi/collections/article/types';
import { articleCreateSchema } from '@/strapi/collections/article/schemas';
// Import multiple items from the same file
import type { Article, ArticleCreateInput, ArticleUpdateInput } from '@/strapi/collections/article/types';