This is a modern portfolio website built with Next.js, TypeScript, and Tailwind CSS. The project follows a structured organization to make it easy to maintain and modify.
├── app/ # Next.js app directory containing pages and layouts
├── components/ # React components organized by category
│ ├── layout/ # Layout components (header, footer, etc.)
│ ├── sections/ # Main section components
│ ├── shared/ # Reusable components
│ ├── ui/ # UI components (buttons, inputs, etc.)
│ └── providers/ # Context providers
├── hooks/ # Custom React hooks
├── types/ # TypeScript type definitions
│ └── components/ # Component-specific types
├── public/ # Static assets
└── data/ # Data files and constants
- Place new components in the appropriate directory under
components/ - Use default exports for Single File Components
- Follow the naming convention:
ComponentName.tsx - Add corresponding types in
types/components/
- Place new hooks in the
hooks/directory - Follow the naming convention:
useHookName.ts - Keep hooks focused on a single responsibility
- Place shared types in the
types/directory - Place component-specific types in
types/components/ - Follow the naming convention:
entityName.ts
- Each component should have a single responsibility
- Use custom hooks for complex logic and state management
- Keep components small and focused
- Use TypeScript types for better maintainability
- Follow the import/export conventions:
- Use default exports for components
- Use named exports for hooks and types
- Import syntax should match export type (no curly braces for default exports)
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm startImportant: Do not modify the following configuration files unless specifically instructed:
package.jsontailwind.config.tstsconfig.jsonnext.config.ts
These files are carefully configured for the project's needs.