Content types, custom theme, custom plugins
Every project starts with the content model. Pages and posts rarely cover everything a company publishes, so we define custom post types and custom fields first: case studies, locations, job openings, contacts, product data. Taxonomies come with them, so content can be filtered and reused automatically in several places. The theme is built once that structure is settled.
We write themes ourselves instead of recoloring a purchased template. The markup follows the design rather than the feature set of somebody else's page builder. For the editorial team we configure the block editor deliberately: custom blocks for recurring elements, block patterns for entire sections, locked regions where the layout must not shift. Whoever maintains the content only sees the building blocks that belong to the design.
Anything the core does not cover goes into a plugin of its own, not into the theme's functions.php. That way the logic survives a later design change. Multilingual setups, forms, caching and the search engine basics are covered by established extensions, used sparingly, because every additional plugin has to be maintained for as long as the site runs.
