Every client wants a flexible website. Ask what that actually means and the answers get vague fast: something easy to update, something that doesn't need a developer for a small change, something that can grow without a rebuild. It's a word that does a lot of work without saying much.

What they're really asking for is something specific, even if they don't have the language for it. They want to add sections, swap layouts, and edit content freely, without ever making the site look broken. That's a harder problem than it sounds, and solving it depends on something the client will never see.

Freedomneedsaframe
It helps to think about the difference between clay and building blocks. Clay can be shaped into anything, which sounds like the more flexible material. But it doesn't hold its shape under repeated use. Every change risks collapsing what came before it.
Building blocks are more limited in what they can become at any one moment. But they can be taken apart and reassembled endlessly, and the result always holds together. That's the trade a good website makes. Real flexibility isn't the absence of rules. It's a set of rules considered enough that people can build within them without needing to understand them.
Components,notpages
This is where component architecture comes in, and the idea is simpler than the term suggests. Instead of designing a homepage, an about page and a case study page as three separate things, you define the pieces first: a heading style, a card, a testimonial block, a call to action. Each one is built once, with its own rules for spacing and behaviour, and pages are assembled from those pieces rather than built from scratch every time.
The CMS that clients actually use should mirror this. When an editor opens their website's admin panel, they're not filling in a blank canvas. They're choosing from a defined set of components and combining them, the same way the original design was combined. They can't accidentally break the typography or misalign the grid, because the system doesn't let them. The guardrails aren't a limitation on their freedom. They're what makes the freedom usable.

Whythisisadesigndecision,notjustabuildone
This is the part that gets missed. A component system works best when the design was conceived the same way, built from a defined set of elements from the outset, rather than as a series of unique page layouts that a development team has to rationalise into a system after the fact.
When that rationalisation happens late, it either takes time the project didn't budget for, or it doesn't happen properly, and the client ends up with a site that looks flexible in the design file and feels fragile the moment someone other than the original team starts editing it.
So the more useful question to ask early in a project isn't how flexible does this need to be. It's what should be allowed to change, and what should never move. Answer that at the design stage, and the flexibility the client actually wanted arrives on its own.