Back to Blogs

Backend10 Oct 2025
How I Structure Node.js Backends for Freelance and Startup Projects

Omer Toqeer
Author

Goals
For client and startup work, backend code needs to be:
- Easy to onboard new devs
- Simple to deploy
- Easy to extend
My Usual Layout
- `src/config` — env, DB, logging
- `src/modules` — one folder per domain (auth, users, orders…)
- `src/modules/*/controller.ts`
- `src/modules/*/service.ts`
- `src/modules/*/model.ts` (or Prisma schema)
- `src/routes` — wiring routes to controllers
Other Conventions
- All responses go through a small helper (consistent shape)
- Error classes for domain vs validation vs auth errors
- Request validation with Zod or Joi, never “trust the client”
This keeps things boring in a good way — and boring backends scale.