A framework is a structured set of components, rules and conventions that serves as the foundation for building an application, so you do not start from scratch on every project.
It provides the common building blocks (routing, data access, security, testing) and imposes a way of organizing code. The difference with a plain library: with a library, your code calls it when it needs to; with a framework, the framework structures the application and calls your code at the right places.
Each framework is tied to a language. A few examples:
- PHP: Symfony, Laravel
- Java: Spring
- Python: Django, FastAPI
- JavaScript / TypeScript: Angular, Next.js, NestJS
Choosing a framework commits a team for years: it shapes how code is written, which ecosystem is available and which pool of developers you can hire from.
Why it matters when hiring
A job ad built around a single framework sharply narrows the pool, often for no good reason: a good Symfony developer moves to Laravel in a few weeks, since the language and principles are the same. Real skill shows in understanding what the framework does under the hood. In an interview, asking why it works the way it does, and when to step outside it, separates the expert from the tutorial user.
