hugoblox.com/blocks/comparison-table
FeaturesFree · MITPreact · interactive

Comparison Table block

Win the comparison: a side-by-side feature matrix against competitors with your column highlighted and a CTA.

Add it to any Hugo page's sections list — no build step.

v1.0.0Version
18Options
MITLicense

Quick start

Add the Comparison Table block

Drop this into your page's front matter, under the sections list. Edit the values, and HugoBlox renders the block — no build step.

Add to your page's sections
- block: comparison-table
  content:
    subtitle: How we compare
    title: Why teams switch to Hugo Blox
    text: We picked the categories that matter to teams shipping today.
    competitors:
      - name: Hugo Blox
        tagline: Open-source page builder
        highlight: true
        badge: Recommended
      - name: WordPress
        tagline: Self-hosted CMS
      - name: Squarespace
        tagline: Hosted website builder
      - name: Webflow
        tagline: Visual web builder
    rows:
      - feature: Performance
        category: true
      - feature: Build time
        note: 100 pages, cold cache
        values:
          - <3s
          - 60s+
          - —
          - 20s+
      - feature: Lighthouse score
        values:
          - "100"
          - "70"
          - "90"
          - "95"
      - feature: Cost & ownership
        category: true
      - feature: Free tier
        values:
          - true
          - true
          - false
          - false
      - feature: Self-hosted
        values:
          - true
          - true
          - false
          - false
      - feature: Source code access
        values:
          - true
          - true
          - false
          - false
        highlight: true
      - feature: Monthly cost
        values:
          - Free
          - $5+ hosting
          - $23/mo
          - $29/mo
      - feature: Developer experience
        category: true
      - feature: Git-based content
        values:
          - true
          - false
          - false
          - false
      - feature: AI site builder
        values:
          - true
          - false
          - false
          - partial
      - feature: Custom code
        values:
          - true
          - true
          - limited
          - limited
    cta:
      text: Start free
      url: https://hugoblox.com/templates/
      icon: hero/arrow-right

Reference

Configuration

Every option the Comparison Table block accepts, generated from its schema.

Content options

Properties set under the block's content key.

PropertyTypeDefaultDescription
subtitlestringOptional eyebrow label rendered in small caps above the title. E.g. 'How we compare', 'Why us'.
titlestringSection heading. Frames the comparison. E.g. 'How we compare', 'Why teams switch to {product}'.
textstringOptional subtitle beneath the title — sets up the comparison.
competitorsrequiredobject[]The columns of the table — one per product being compared. Mark exactly one as `highlight: true` to show it as your product. 3–4 competitors works best; more compresses readability on desktop.
competitors[].namerequiredstringProduct or company name. Shown as the column header.
competitors[].taglinestringOptional one-line description shown under the competitor name. E.g. 'Self-hosted CMS', 'Visual web builder'.
competitors[].highlightbooleanfalseSet to true on your product. Highlights the column, applies brand colour, and surfaces the CTA. Exactly one competitor should have this set.
competitors[].badgestringOptional pill badge above the competitor name. E.g. 'Recommended', 'Best value', 'Most popular'.
rowsrequiredobject[]Feature rows. Each row has a feature label and a `values` array — one entry per competitor in the same order as the `competitors` array. Use 6–14 rows for best results. Group with category rows (`category: true`) for tables of 10+ features.
rows[].featurerequiredstringFeature name shown in the leftmost column.
rows[].notestringOptional clarifying note shown under the feature label in smaller text.
rows[].valuesobject[]Cell values, one per competitor in order. Accepts: boolean (true→green check, false→gray cross), string ('yes'/'no'/'partial'/'—' map to icons; any other string renders as text e.g. '$29/mo', '<3s', 'Unlimited'), or object {value, note, emphasis} for finer control.
rows[].categorybooleanfalseSet to true to render this row as a section header (uppercase, no values). Use to group features into sections like 'Performance', 'Pricing', 'Support'.
rows[].highlightbooleanfalseTints this row's background — use to emphasise key differentiators (1–2 rows max).
ctaobjectCall-to-action button rendered in the highlighted column footer.
cta.textrequiredstringCTA label
cta.urlrequiredstringDestination URL (relative or absolute)
cta.iconstringOptional icon shown after the label. E.g. 'arrow-right', 'hero/arrow-right'.

Design options

Properties set under the block's design key — shared background, spacing, and color settings apply on top.

PropertyTypeDefaultDescription
row_stripingbooleanfalseApply subtle zebra-striping to data rows for readability. Recommended for tables with 10+ rows; unnecessary for shorter tables. Category headers and explicitly highlighted rows are excluded from striping.

Compose

Works well with

Blocks that pair naturally with Comparison Table on the same page.

Frequently asked

Comparison Table block FAQ

  • Add a "block: comparison-table" entry to the sections list in your page's front matter, then fill in the content fields. HugoBlox renders it automatically — copy the example config above as a starting point.

Ready to build with the Comparison Table block?