Skip to content

How We Built a Custom WordPress Block Theme for a Garden Design Business on a Fixed Price

• By Jasper Frumau WordPress

A garden designer in Amsterdam asked what a new website would cost. He had a quote in hand for a full build and it was more than he wanted to spend. What he actually wanted was narrower: a site that looked like his work, that he could fill in himself, and a number he could agree to up front without watching an hourly meter run.

We agreed on a fixed price before starting. Six pages, his colors, his photos, built on a custom block theme, in less than a working day of build time. This is what made that possible, and — more usefully — what it does not cover, because the parts a fixed price cannot absorb are the parts worth understanding before you sign one.

Quick Summary: A six-page custom WordPress block theme, delivered on a fixed price in less than a working day of build time. Extra design rounds became one small add-on, quoted before the work shipped. The speed comes from not starting at zero: a maintained starter theme, a shared block library, and a validated pattern kit that turn “build a theme” into “configure a theme.” The design rounds, not the code, were what actually took the time — and that is the part a fixed price has to account for honestly.

What he actually needed

Doede Valeri van der Linden runs Duurzaam Doede, designing and building ecological gardens in and around Amsterdam. Between clients and building sites there was never time for a website, so he set up a basic one himself and got on with the work. It did its job, but a basic setup could not show what he actually builds: planted walls, reused materials, gardens that bring insects back. He wanted a professional to make it look the part.

His business is lead-based, not transactional. No checkout, no cart, no product catalog. What matters is a portfolio of finished gardens, a clear explanation of how the process works, and a quote request that reaches him. That constraint removes a large amount of the usual scope before anything gets built.

Six pages, then: home, services, process, portfolio, about, contact. In Dutch, because his customers are. The new theme went live on duurzaam-doe.de on September 22, eleven days after he accepted the quote.

How the price worked

The build was a fixed price, agreed before any work started and sitting at the lower end of our fixed-scope build options. It covered the six pages, the palette and typography, the mobile layouts and the contact form. The build came in under its budget, which is the fixed price working as intended.

Two things sat outside it. The extra design rounds ran past the budget, so they became one small add-on, quoted and accepted before the work shipped. After launch he also asked for his page titles and meta descriptions to be fixed for search, which was billed separately by the hour. Neither was a surprise on an invoice: each was agreed first.

Six pages, five design rounds before approval, eight days from accepted quote to finished build.

Why less than a day is enough

Less than a day is not enough time to build a WordPress theme from nothing. It is enough time to shape one that already exists, and that difference is the entire business model.

A starter theme we maintain

Every client theme starts as a fork of Aviendha, our open-source full-site-editing starter theme, and Doede’s was no exception: his theme is an Aviendha fork, renamed and restyled for his business. It ships a complete design system in theme.json — color palette, typography scale, spacing, layout widths — plus block templates and template parts. It deliberately ships no bundled patterns, so there is nothing to delete before you start.

Forking is a GitHub template action followed by an automated workflow that renames every mechanical identifier: CSS class prefixes, the PHP namespace, function prefixes, the text domain, package names. That step is minutes, not hours, and it is the same base behind our block theme development work. What is left afterward is judgment work — the theme description, the logo mark, the palette — which is the work you actually want a person doing.

Treat it the way Sage is treated in classic theming: a versioned base you clone and then own. Fixes made upstream do not flow back into a client’s site unasked, which is the right trade for a site somebody is running a business on.

A block library shared across every theme

Aludra is a separate plugin holding the blocks — mega menu, carousel, FAQ tabs, pricing tiers, feature cards. Keeping blocks in a plugin rather than in the theme is what WordPress.org’s theme review rules ask for, and it has a practical payoff: block work done for one client’s site is available to all of them. Aludra’s color and spacing slugs match what the themes define, so blocks inherit a site’s palette with no configuration.

It stays optional. With the plugin inactive the theme is a plain block theme that works with core blocks — which matters, because it means a client is never locked to us to keep their site running.

Patterns as real content, validated automatically

The six pages were not assembled block by block in the editor. They were built as block patterns — twenty-five of them in the end, six full-page and nineteen section-level — carrying the real Dutch copy rather than placeholder text. Patterns are PHP files in the theme, which means they are in version control, reviewable in a pull request, and reproducible on a fresh install.

Hand-written block markup breaks in a specific and annoying way: the JSON attributes in a block comment and the inline styles in the HTML drift apart, and Gutenberg flags the block as invalid the moment somebody opens the page. We run every pattern through wp-pattern-sentinel, which parses them the way WordPress does and fails the build on a mismatch. Two real bugs in the validator itself surfaced during this project and were fixed there rather than worked around here.

Turning those section patterns into a reusable kit, with the docs to go with it, took extra time of our own on top of the build. That time was not billed to him. It is an investment in the toolchain, and the next client’s build starts with it already in place.

Duurzaam Doede homepage section listing native plants in a dark green band, built with the ecotuin block theme
One of the section patterns: a plant list with Latin names, carrying the real Dutch copy.

The practical effect is that “the client wants the hero changed” is a pattern edit and a theme release, not an afternoon of clicking in the Site Editor hoping nothing else moved.

What actually took the time

Not the code. The code was the predictable part: fork and rename, install, configure, build six pages, check them at 360px and 390px and on desktop, fix what broke. That is the part the toolchain makes boring, and boring is what you want inside a fixed price.

The Duurzaam Doede homepage and services page on a 390px phone screen
The home and services pages on a 390px phone, one of the widths every build is checked at.

The design took five rounds.

Doede pointed at another garden designer’s site as the closest thing to what he wanted. Rather than guess, we measured: the palette came out of that site’s computed styles, not out of an eyedropper — a warm cream, a sage green, a deeper moss, and a dark ink that happened to match the navy in his own ivy-in-hands logo. That gave the theme a real palette without waiting on brand assets he did not have.

Four-step process section on the Duurzaam Doede homepage, from first conversation to a garden in bloom
The process section on the home page, in the palette measured from the reference site.

Then came the shapes. The reference site used organic blob-masked photos. The first alternative used stacked slabs, like a dry-stone wall — closer to what he builds. He liked the walls but wanted the photos softened. The version he approved combined them: stacked-slab sections, rounded organic photo shapes, his typeface for headings.

That iteration ran past the build budget. We did not absorb it silently and we did not bill it as a surprise. The photo shapes became a small fixed-price add-on, quoted and accepted before the work shipped. The colors and fonts stayed inside the basis, because agreeing a palette is part of any build.

The lesson, if you are buying one of these: a fixed price covers work that can be specified. Build the six pages, apply the palette, make it work on a phone — specifiable. “Keep going until it feels right” is not, and no honest fixed price includes it. Ask where that line sits before the work starts, and expect design iteration to be the thing that crosses it.

What a fixed-price build includes

Concretely, for this project:

  • A custom block theme on his own install, named for his business, with his palette and typography in theme.json.
  • Six pages built and published, with his real copy pulled from the existing site rather than lorem ipsum.
  • A working contact form wired to a quote request.
  • A header menu, a branded footer, and mobile layouts checked at phone widths.
  • Every page stored as a version-controlled pattern, so the site can be rebuilt from the theme.

And what it does not include, because the list matters as much:

  • Copywriting. We moved his existing words onto better pages. We did not write new ones.
  • Photography. Only two usable photos were on hand, so they were reused across sections as placeholders until he supplies project images. Good photos of finished gardens would do more for this site than any further development.
  • Unlimited design revisions. The look is agreed in a set number of rounds. Rounds beyond that are billed hourly or quoted as a fixed add-on before the work is done, which is what happened here with the photo shapes.
  • Hosting and maintenance. He stays with his existing host. That is a separate conversation, not a bundled upsell.
  • Ongoing SEO. The theme produces clean, fast markup, and fixing his page titles and meta descriptions after launch was billed separately. Keyword research, new content and links are a campaign, not part of a build.

Whether this fits your business

This shape of project works when a few things are true. You have copy, or can write it. You have or can get decent photographs. Your site needs to generate inquiries rather than process transactions. And you are willing to agree a look in a handful of rounds rather than an open-ended number.

It works badly when the real requirement is a store with a thousand products, a migration off a platform that fights back, or a design that has to be invented from nothing because there is no existing brand to work from. Those are real projects and we quote them as real projects.

If you are somewhere in between, the useful question is not “how much does a website cost” but “how much of this is specifiable up front.” The more of it is, the more of it can sit inside a fixed price — and the less of your budget goes to uncertainty. The fixed-scope options are laid out on the WordPress development page, a similar approach for a SaaS business is in the Ixian theme post, and a short message is enough to find out where your project lands.

Frequently Asked Questions

  • How much does a custom WordPress theme cost? It depends mostly on how much of the work can be specified up front. This one was a fixed price, agreed before the work started, for six pages on a custom block theme, at the lower end of our fixed-scope build options. That price depends on starting from a maintained starter theme and on the client supplying copy and photos. A build that needs original copywriting, e-commerce, or a design invented from scratch costs considerably more, and we quote those separately rather than stretching a fixed price to cover them.
  • How can a custom theme be built in less than a day? It cannot be built from nothing in a day. It can be shaped in less than a day when it starts as a fork of a starter theme that already carries the design system, block templates and template parts, paired with a shared block library and a validated pattern kit. The hours go into the palette, the pages and the client’s content, not into rebuilding foundations that already work.
  • Is a fixed price better than hourly? For work that can be specified up front, yes — you know the number before you commit, and the risk of an estimate running over sits with us rather than with you. For open-ended work such as unlimited design iteration it is the wrong instrument, and pretending otherwise is how fixed-price projects turn sour. On this project the build was fixed and the extra design rounds were quoted separately as they came up.
  • Am I locked in to your agency afterwards? No. The theme is a standard WordPress block theme on the client’s own hosting, and the block library is optional — with the plugin inactive the site still runs on core blocks. Any WordPress developer can maintain it. Nothing in the setup depends on us continuing to be involved.
  • Can I edit the site myself afterwards? Yes. The pages are built from standard blocks in the WordPress editor, so text, images and sections can be changed without touching code. The structural layouts are stored as patterns in the theme, which is what keeps the site consistent — changing those is a developer task, but changing your words and pictures is not.

Need Help with a Block Theme or FSE Build?

We build and debug WordPress block themes — full-site editing templates, pattern libraries, Site Editor workflows, and the WP-CLI plumbing that keeps them deployable. Fixed-price quotes and ongoing support available.

  • FSE block theme builds and migrations from classic themes
  • Block pattern libraries and Site Editor template work
  • Pattern validation, debugging, and WP-CLI deployment workflows
  • WooCommerce on block themes — single product, shop, and archive templates

Leave a Reply

Your email address will not be published.