Volaris Group

Volaris Group is the site of a buy-and-hold software acquirer, an operating group of Constellation Software, built for founders weighing a sale and the advisers who bring them.

volarisgroup.com/portfolio
Volaris Group: The portfolio filter and logo wall

What they came with

Every deal adds a row. A company joins and brings a logo, a vertical market, a founding year, a headquarters, a list of operating countries, a short description and the press release that announced the deal, and all of it has to exist in six languages. Two readers arrive at the same catalogue: a founder deciding whether to sell, and an adviser trying to place a client in a market. Both put the same three questions to it — what does the business do, where is it, when did it join — so those three have to be the filters rather than the prose.

What the build had to do

One record per acquired company

The portfolio entry is the canonical object: logo, vertical market, year founded, year acquired, headquarters, operating countries, description, the company's own site, its social accounts and the press release that announced the deal. Operating countries is a list rather than a single value, so one company legitimately sits in several places at once and every geography view has to hold that.

Three facets over one set

Vertical market, country and acquisition year filter the whole portfolio from a single control row, and the selection is written back into the URL, so a filtered view is a link someone can send. The site's own framing is over 40 vertical markets, more than 60 countries and 240+ companies, and the set grows in one direction only.

The logo wall and its dossier

Cards rest as a grey logo grid; hover restores the logo's colour and raises the vertical market chip and the trigger. A click opens the full record over the page without a navigation, because the point of the grid is to keep the reader in it.

Six languages, two vocabularies

Pages, slugs and vertical market terms are all translated — construction becomes bauwesen, with its own term row — while country codes stay canonical across every language. German additionally carries an Impressum and a Weltkarte that no other language has, so the model has to let one market hold pages the others do not.

A map onto the same countries

The About page renders the operating footprint as a shaded world map the reader can zoom and click into country by country. Each country links straight into the portfolio filtered on that country, so the map is a second doorway onto data the catalogue already holds rather than a separate dataset to keep in step.

Two audiences, one navigation

A founder gets the acquisition criteria, the process and the case studies; an adviser gets a coverage directory of M&A contacts indexed by vertical and by region, a coarser vocabulary than the portfolio's own. Both live under the same header, so the fork has to happen in the content model rather than in a second site.

Technical detail

Country is a list, not a taxonomy

Vertical market is a WordPress taxonomy, which is why its terms translate per language and carry their own slugs. Country is not: the facet reads a repeated field of ISO codes held on the record, which is how the same codes end up on the map and in the dropdown and make the two agree by construction. It also means a company returns under several countries at once, so anything counting companies has to deduplicate before it counts.

Cached shell, uncached grid

The page ships server-rendered behind a full-page cache at the host and a shared max-age at the edge, then the grid hands itself to a nonced POST at admin-ajax carrying the three facets, a page number and a loaded count. That response is marked no-store and private on purpose: facet combinations are combinatorial and would fragment a page cache to no benefit. Changes are debounced and any request still in flight is aborted before the next goes out, so running a hand down a dropdown costs one query rather than one per option.

The dossier travels with the result

Each returned card carries the company's whole record inline as a hidden panel rather than fetching it when opened, so opening a company costs nothing and never fails. The price is that a page of results ships every dossier in it, which is the right trade at the page sizes this grid returns and the number to watch if the page size is ever raised.

The script surface is declared, not assumed

Third-party embeds sit behind a consent gate that blocks them until the reader agrees, and the surface itself is declared in a Content Security Policy that reports violations to a REST route on the site rather than to an outside collector. With two marketing automation platforms, a tag manager and several intent tools loading across the same pages, that policy is the only place the script surface is actually enumerated, which is why it runs in report-only while the list settles.

The stack

Platform and delivery

WordPressGeneratePress child themeGenerateBlocksWP RocketKinstaCloudflare

Content model and portfolio

Advanced Custom FieldsCustom post typesCustom Gutenberg blocksadmin-ajax filter endpointFancyboxMapplic

Internationalisation

WPMLhreflang and x-defaultTranslated page slugsPer-language term slugs

Forms, tracking and policy

HubSpot FormsMarketo Forms and MunchkinGoogle Tag ManagerTermly consentCSP with report-uri
Sector
Vertical market software acquirer
Audience
Founders and M&A advisers
Shape
Faceted portfolio, six languages
Platform
WordPress, GeneratePress child, WPML
Volaris Group on a phone
volarisgroup.com/about
Volaris Group: Global footprint map
volarisgroup.com
Volaris Group: Forever Invested hero
Volaris Group: the brand set from the studio portfolio