Service Themes

WordPress themes that match your brand pixel for pixel.

Block themes, hybrid themes, classic themes. Built to your design, fast by default, accessible by default, ready for WooCommerce and BuddyPress without override wars.

BuddyX, our community theme, runs on 30,000+ active sites

Why custom themes

Off-the-shelf themes get you 70% there. The last 30% costs more than custom.

Page builders bloat the page weight. Premium themes lock you into their patterns. Override CSS fights the original styles. By the time the brand is right and the performance is acceptable, the team has spent more on customization than a proper theme would have cost in the first place.

We build themes from your design tokens, your component library, and your real content. The theme matches the brand on day one, the page weight stays in budget, and editors can extend it through the Site Editor without code changes.

theme.json · live

Pick the tokens. Watch the theme respond.

Block themes are configuration first, code second. Toggle the swatches below. The hero preview updates instantly. The theme.json snippet under the controls reflects the actual JSON the editor consumes.

Brand color
Layout
Density
Hero preview

A theme built for your brand

Editor-friendly defaults, design-system-true tokens, accessibility checked. Your designers stay in Figma. Your editors stay in Gutenberg.

See the theme →
theme.json (excerpt) tokens that just changed
{
  "$schema": "https://schemas.wp.org/trunk/theme.json",
  "settings": {
    "color": {
      "palette": [
        { "slug": "brand", "color": "#1C55E9", "name": "Brand" }
      ]
    },
    "layout": { "contentSize": "var(--content-medium)" },
    "spacing": { "padding": { "default": "medium" } }
  }
}
  • Block theme first · classic where WooCommerce and BuddyPress need it
  • Pixel-parity with your Figma · we ship the visual the design team approved
  • Accessibility baked in · AA contrast and focus rings on every interactive element

What we build

Themes the design team and the dev team both want to ship.

Block-first, hybrid where it makes sense, classic when WooCommerce and BuddyPress need it. Pixel-parity with your design. Fast, accessible, plugin compatible.

01

Block themes done right

theme.json as the single source of truth. Templates and template parts in the right places. Patterns registered properly. Style variations for the brand variants you need.

Site Editor works the way Gutenberg intends.

02

Hybrid or classic when you need it

Not every site is ready for full block themes. We build hybrid themes (block templates + classic PHP for the parts that need it) and pure classic themes when WooCommerce, BuddyPress, or LearnDash require it.

Theme architecture matches the product reality.

03

Pixel parity with your design

Figma to WordPress with no degradation. Type scale, spacing scale, color tokens, every component. We design in tokens and build in tokens, so light and dark variants ship from the same source.

Brand stays consistent across every page.

04

Fast by default

No render-blocking JavaScript. Critical CSS inlined. Web fonts subsetted and preloaded. Lazy loaded images with proper dimensions. Core Web Vitals pass on launch day.

PageSpeed scores stay above 90.

05

WCAG AA accessibility

Color contrast ratios verified. Focus states visible on every interactive element. Keyboard navigation works for the entire site. Screen reader labels on every icon-only button.

Accessibility audit passes.

06

WooCommerce, BuddyPress, LearnDash compatible

Themes shipped tested against the major plugin ecosystems. Cart pages, account pages, member profiles, course pages all match the brand without overrides fighting the plugin styles.

Plugins look native, not bolted on.

30,000+

active sites running BuddyX, our community theme

Built by the same team. WordPress.org rated 4.7 stars.

theme.json

Design tokens at the source, not in the stylesheet.

Every block theme we ship uses theme.json as the design token source. Colors, fonts, spacing, fluid type scale. The Site Editor picks them up automatically. CSS overrides become the exception, not the rule.

theme.json json
    
      
          
          {
        
          
            "$schema": "https://schemas.wp.org/trunk/theme.json",
        
          
            "version": 3,
        
          
            "settings": {
        
          
              "appearanceTools": true,
        
          
              "color": {
        
          
                "palette": [
        
          
                  { "slug": "brand", "color": "#1C55E9", "name": "Brand" },
        
          
                  { "slug": "accent", "color": "#FFAD0D", "name": "Accent" }
        
          
                ]
        
          
              },
        
          
              "typography": {
        
          
                "fontFamilies": [
        
          
                  {
        
          
                    "slug": "inter",
        
          
                    "name": "Inter",
        
          
                    "fontFamily": "'Inter', system-ui, sans-serif"
        
          
                  }
        
          
                ],
        
          
                "fluid": true,
        
          
                "fontSizes": [
        
          
                  { "slug": "small", "size": "0.875rem", "fluid": false },
        
          
                  { "slug": "medium", "size": "1rem", "fluid": false },
        
          
                  { "slug": "large", "size": "clamp(1.25rem, 2vw, 1.5rem)" }
        
          
                ]
        
          
              },
        
          
              "spacing": {
        
          
                "spacingScale": { "steps": 8 }
        
          
              }
        
          
            },
        
          
            "styles": {
        
          
              "color": { "background": "#fff", "text": "#111827" },
        
          
              "typography": { "fontFamily": "var(--wp--preset--font-family--inter)" }
        
          
            }
        
          
          }
        
    
  

Process

How a theme engagement runs.

01

Design tokens

One week. Design audit, token extraction (color, type, spacing), component inventory, page templates needed. Output is theme.json plus a component build plan.

Build starts with the design system locked.

02

Build by component

Four to ten weeks depending on scope. Components built one at a time, reviewed in the browser at every breakpoint, signed off before the next one starts.

No surprises at the final review.

03

QA and launch

One to two weeks. Cross-browser testing, accessibility audit, performance audit, plugin compatibility check. Documented handover.

Launch with passing audits.

What it costs

Theme pricing follows the number of templates and how much the editor does.

Aligning an existing theme to your brand and building a block theme with editor controls your team can actually use are the same sentence and very different projects. Here is what moves the number.

What moves the number

  • How many templates Page types, not pages. A site with three hundred pages built from six templates is a smaller job than one with twenty templates and forty pages.
  • How much the editor controls A theme that only a developer can change is cheaper to build and more expensive to own. Editor controls are the part worth paying for.
  • Whether a design exists A finished design system is a straightforward build. Designing as we go is a different engagement and should be priced as one.
  • What it has to support WooCommerce, an LMS, a community or multilingual each add template surface that has to be designed as well as built.
  • Performance and accessibility targets Both are cheaper designed in than retrofitted, and we will hold to a target if you set one.

Small, well-defined work is usually better handled as an hourly block than scoped as a project, and we will say so rather than inflate it into one.

Rough idea to delivery

  1. You send the details What you want built, roughly, plus budget range and timing. The form asks for all of it
  2. Within 4 business hours We read it and reply. Nothing is scheduled before we know what it is about
  3. Then the call Free discovery, booked once there is enough on the table to make it worth your hour
  4. Within 48 hours of the call A written fixed-price quote you approve before anything starts
Get an estimate

Quick enquiry

Theme not doing what your brand needs?

Tell us how many page types you actually have and whether a design exists. Those two answers settle most of the estimate before we speak.

Prefer the full form? Start a project

No drip sequences, no marketing list. We reply and that is it.

Common questions

Frequently asked

  1. Block theme or classic theme?

    Block theme if the site is content-driven and editors will use the Site Editor. Classic theme if the site is heavily integrated with WooCommerce, BuddyPress, or LearnDash where Full Site Editing is still maturing. Hybrid when you want both. We pick the right architecture in discovery.

  2. Do you customize an existing theme or build from scratch?

    Both. We have customized BuddyX, Astra, Kadence, Blocksy, GeneratePress, and many others. We also build from scratch when the brand needs full control. The choice depends on budget, timeline, and how much of the existing theme you actually use.

  3. Will the theme work with the Site Editor?

    Yes for block themes and hybrid themes. theme.json drives global styles, templates and patterns are registered, style variations cover your brand variants. Editors can change colors, fonts, and layouts without touching code.

  4. Do you handle theme updates over time?

    Yes through our retainer. We push WordPress core compatibility, plugin compatibility, and design refinements. Themes ship with a child theme pattern from day one so your overrides survive updates.

  5. Can you match a Figma design exactly?

    Yes. We build to design tokens (colors, type scale, spacing scale) extracted from your Figma file. Components get built one at a time and reviewed against the design before the next one starts. No "close enough" approach.

  6. What does it cost?

    Theme work is estimated against scope rather than sold at a list price. Aligning an existing theme and building a block theme with real editor controls are very different projects, and so is designing one along the way. The section above sets out what moves the number.

Need a theme that fits the brand?

Tell us what you want to build.

Discovery call is free. Fixed-price quote within 48 hours. Projects are scope-dependent.