- Component system
- Variables
- Handover
A site the client keeps building without me
I build every site on 40–60 components, so clients can ship new marketing pages on their own.
2 min read
- Scope
- Applies to every build
- Components
- 40–60 per project — around 30–40 sections, ~20 card types
- My role
- Developer / dev lead
- Stack
- Webflow variables, component library, starter pages
I’ve seen a lot of Webflow sites start well and fall apart in the client’s hands. Someone duplicates a section, nudges a margin, adds a new heading style. Six months later there are fourteen shades of grey, more than 500 new classes, and nobody wants to touch the site.
I build so that doesn’t happen, and I use the same approach on every project.
I start with variables: colours, type, spacing and corner radius, defined once, with names anyone can read. My setup is close to Lumos, but lighter. I kept what helps a system scale and dropped what makes it hard for someone else to follow. If the next person can’t use it without me on a call, it doesn’t work.
Then I build the components on top. A typical project has 40 to 60 of them — around 30 to 40 section types and roughly 20 card types. Each one takes content, and where the design needs options, it has variants — a dark background, the image on the other side. The client changes the text, the image or the number of cards, or picks a variant, and the layout holds.
The last part matters most after handover. Every project gets a component library page with every section in one place, and a starter page to duplicate. To build a new landing page, the client copies the starter, adds the sections they need and fills in the content.
And they do. Clients on my builds regularly publish new marketing pages without calling a developer.
- Variables
- Components
- Starter page
- New pagebuilt by the client
What this means for you
Handover is where agencies usually lose the relationship: the client breaks the site, blames the build, and you end up fixing it for free. I hand over a system your client can actually use, so that call never comes.