Design the content model around the editor's work
Before writing a template, find out which information editors enter repeatedly. A case study might have a client, services, results and images. Give information that appears elsewhere its own entry and connect it with relationships. The same service can then appear on a case study, a service page and an overview without maintaining three copies.
Use Matrix to control the order of page sections such as text, images and quotes. In Craft 5, those sections are nested entries. Create a new block type only when it needs genuinely different input or presentation; dozens of near-identical options make editing harder. Test the model with someone who will use it: can they add a case study, link a service and replace an image without instructions?
A content model is not a one-off technical exercise. Document field names, required fields and translation rules so the editing experience still makes sense a year later.
How we do this at Luremo: _patterns/matrix.twig selects a template for each Matrix type. _patterns/matrix/cards.twig fetches the card data and passes prepared values to card-collection.twig. That presentation partial does not need to query content itself.