How I Manage My Project
February 8, 2025
Boilerplate
After working on several projects, i realized that setting up the initial configuration every time was time-consuming and repetitive. Manually configuring everything over and over felt inefficient. To solve this, i created my own boilerplate with preconfigured setup with all the tools i need. By using this boilerplate, i save hours on setup and repetitive configurations, i can start coding immediately and focus on building features.
Check out my boilerplate: https://github.com/jeeehaan/nextjs-starter-template. Here’s what my boilerplate include:
- Next.js
- TypeScript
- Prisma
- NextAuth
- Tailwind
- Shadcn
- Eslint
- Prettier
- Husky
- Docker
- GitHub Actions
Project Structure
Here’s my project structure look like, i follow feature-based architecture.
src/
├── app/
│ ├── layout.tsx
│ └── page.tsx
├── components/
├── configs/
├── libs/
├── modules/
│ ├── auth/
│ └── products/
│ ├── actions/
│ └── components/
│ └── services/
├── stores/
├── styles/
├── types/
└── utils/
Every module can have:
- actions, contains the business logic
- components, contains UI specific to that feature
- services, contains the database queries
I follow a feature-based architecture for several reasons:
- Easy Maintenance, since all related files for a specific feature are grouped together making changes becomes more efficient. Everything you need is right there, reducing the time and effort spent searching across the projects
- Team Collaboration, in a team setting a feature-based allows team members to work independently on different features without stepping on each other’s toes
So, that’s how i manage my project full-stack project.