Skip to content

Instantly share code, notes, and snippets.

@davidcostadev
Created June 8, 2024 20:04
Show Gist options
  • Save davidcostadev/178b4931d56f8168dcc520b5b99079ab to your computer and use it in GitHub Desktop.
Save davidcostadev/178b4931d56f8168dcc520b5b99079ab to your computer and use it in GitHub Desktop.
next js app folder structure
my-next-app/
├── src/
│ ├── app/
│ │ ├── [lang]/
│ │ │ ├── (auth)/
│ │ │ │ ├── login/
│ │ │ │ │ ├── page.tsx
│ │ │ │ └── register/
│ │ │ │ ├── page.tsx
│ │ │ ├── dashboard/
│ │ │ │ ├── page.tsx
│ │ │ ├── settings/
│ │ │ │ ├── page.tsx
│ │ │ ├── layout.tsx
│ │ │ ├── globals.css
│ │ │ └── page.tsx
│ ├── components/
│ │ ├── ui/
│ │ │ ├── button/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── button.tsx
│ │ │ │ ├── button.tests.tsx
│ │ │ │ ├── button.stories.tsx
│ │ │ ├── modal/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── modal.tsx
│ │ │ │ ├── modal.tests.tsx
│ │ │ │ ├── modal.stories.tsx
│ │ │ ├── spinner/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── spinner.tsx
│ │ │ │ ├── spinner.tests.tsx
│ │ │ │ ├── spinner.stories.tsx
│ │ │ ├── forms/
│ │ │ │ ├── input.tsx
│ │ │ │ ├── input.tests.tsx
│ │ │ │ ├── input.stories.tsx
│ │ │ │ ├── select.tsx
│ │ │ │ ├── select.tests.tsx
│ │ │ │ ├── select.stories.tsx
│ │ │ │ └── text-area.tsx
│ │ │ │ ├── text-area.tests.tsx
│ │ │ │ ├── text-area.stories.tsx
│ │ ├── layout/
│ │ │ ├── header/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── header.tsx
│ │ │ │ ├── header.tests.tsx
│ │ │ │ ├── header.stories.tsx
│ │ │ ├── footer/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── footer.tsx
│ │ │ │ ├── footer.tests.tsx
│ │ │ │ ├── footer.stories.tsx
│ │ │ ├── sidebar/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── sidebar.tsx
│ │ │ │ ├── sidebar.tests.tsx
│ │ │ │ ├── sidebar.stories.tsx
│ │ ├── forms/
│ │ │ ├── login-form/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── login-form.tsx
│ │ │ │ ├── login-form.tests.tsx
│ │ │ │ ├── login-form.stories.tsx
│ │ │ ├── register-form/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── register-form.tsx
│ │ │ │ ├── register-form.tests.tsx
│ │ │ │ ├── register-form.stories.tsx
│ │ │ ├── settings-form/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── settings-form.tsx
│ │ │ │ ├── settings-form.tests.tsx
│ │ │ │ ├── settings-form.stories.tsx
│ │ ├── sections/
│ │ │ ├── hero/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── hero.tsx
│ │ │ │ ├── hero.tests.tsx
│ │ │ │ ├── hero.stories.tsx
│ │ │ ├── features/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── features.tsx
│ │ │ │ ├── features.tests.tsx
│ │ │ │ ├── features.stories.tsx
│ │ │ ├── testimonials/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── testimonials.tsx
│ │ │ │ ├── testimonials.tests.tsx
│ │ │ │ ├── testimonials.stories.tsx
│ ├── hooks/
│ │ ├── data-fetching/
│ │ │ ├── use-fetch.ts
│ │ │ ├── use-fetch.tests.tsx
│ │ │ ├── use-post.ts
│ │ │ ├── use-post.tests.tsx
│ │ ├── state-management/
│ │ ├── use-auth.ts
│ │ ├── use-auth.tests.tsx
│ │ ├── use-toggle.ts
│ │ ├── use-toggle.tests.tsx
│ ├── services/
│ │ ├── api.ts
│ │ ├── api.tests.tsx
│ │ ├── auth.ts
│ │ ├── auth.tests.tsx
│ │ └── database.ts
│ │ ├── database.tests.tsx
│ ├── lib/
│ │ ├── helpers.ts
│ │ ├── helpers.tests.tsx
│ ├── styles/
│ │ ├── globals.css
│ │ ├── variables.css
│ ├── utils/
│ │ ├── helpers.ts
│ │ ├── helpers.tests.tsx
│ │ ├── validators.ts
│ │ ├── validators.tests.tsx
│ ├── schemas/
│ │ ├── user-schema.ts
│ │ ├── product-schema.ts
│ │ ├── order-schema.ts
│ ├── constants/
│ │ ├── api-endpoints.ts
│ │ ├── messages.ts
│ │ ├── roles.ts
│ ├── public/
│ │ ├── images/
│ │ └── favicon.ico
├── tests/
│ ├── utils/
│ ├── mocks/
│ ├── fixtures/
├── .env.local
├── .gitignore
├── next.config.js
├── package.json
└── tsconfig.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment