Builderius vs Oxygen builder

Vitalii Kiiko
7 min readOct 26, 2021

--

Disclaimer: I am a co-founder of Builderius, so I certainly biased. However, in this article I present facts and objective differences between the two builders. It is my attempt for honest comparison between Builderius and Oxygen. And there will not be any statement which one is better at the end. :)

Builderius site builder is a new one on the market of WordPress builders. Maybe you do not even heard of it yet. At the time of writing there is version 0.9.5 available in WP.org repo.

Oxygen site builder is a well established WP builder, currently available pro version 3.8, and there is no free version available. I bet you heard of this builder yet :)

Non comparable things

You can find articles which say something about how good UI is of one or another builder. But it is a matter of taste, I cannot really compare such thing as UI. You already may guess what I would prefer, so no reason for that. :)

Ease of use. Another thing that virtually impossible to compare. Both builders target developers as their main TA and give advanced control over elements on the page via CSS settings. For those who are not familiar with CSS it would be equally hard to use the builders. For seasoned developers, I believe, it is almost the same — they have precise CSS settings, these settings control what they suppose to, everything works like intended.

The price. Ok, Builderius does not have the pro version yet, so nothing to compare. Let’s get back to this topic in few months :)

Performance. Both builder’s output minimum pre-defined CSS/JS, their footprint is minimal! The rest on users, how they actually create pages, use HTML elements, CSS settings etc.

Comparable things

And here we landed on the territory where it is actually possible to compare something. I will be doing this mostly in format of stating the differences. My goal is to bring awareness about Builderius in general and as an alternative to Oxygen in particular. I am not going blame the latter for anything! I want to present facts, that’s it.

Dynamic data

The best illustration-comparison of approach of the mentioned builders would be this image:

How to get dynamic data in Oxygen vs Builderius

The similarity is that both builders allow to get a lot of different dynamic data inside the builder mode. The difference is a way of fetching the data. Oxygen uses visual query builder (UI screenshot on the left). It simulates creating a standard WP_Query argument. Builderius uses GraphQL query (UI screenshot on the right). The good thing: both builders allow to get the most possible dynamic data out of the box compared to any other builder on the market. But the difference between these two approaches not only visual, it is only technical. WP_Query is powerful, but still limited. On the other hand, GraphQL query gives more possibilities.

Let’s illustrate it on the example where you want to get ACF repeater data for current post, where each item of the repeater is another post object, and then you would like to get post title and certain post’s custom meta of those posts in repeater. This is the basic example of “Related posts” functionality. So, you cannot do all of these in Oxygen in one WP_Query. You would need to write a custom PHP code for that. However, it is perfectly possible in Builderius! It takes only one query in Builderius to get all those data!

Another part related to dynamic data is actually using the data inside the template. Oxygen uses special shortcodes, it looks like this:

Oxygen shortcode

There is automatically generated SHA signature that you’d better not to change and then ‘title’ keyword for data. After that the shortcode transforms in this actual title:

In Builderius you would insert dynamic data like this:

Builderius template tag

The path ‘post.data.title’ is completely adjustable. It is similar to how would you access data in JSON data. Well, in Builderius all dynamic data is JSON, really :) Double brackets are template tag syntax, it is not a shortcode at all! After that this template tag transforms to actual title:

Also, in both builders Oxygen and Builderius, it is possible to use dynamic data in HTML attributes of modules. One exception: only Oxygen allows using dynamic data as the name of HTML attribute. In Builderius, names of HTML attributes cannot be dynamic. It also has attributes’ names validation.

Modules

Both builders have raw <div> HTML element — the basic element of any layout. This element is generic HTML element, a universal one. It works in any cases! :) So, it is good that it exists in these builders.

The difference between Builderius and Oxygen is in the list of available modules and the nature of those modules.

For instance, in Oxygen there is a module called “Section” that renders <div><span></span></div> inside. You cannot change it. Or another example of Oxygen module called “Button” that is getting rendered as an anchor HTML tag (<a>). There is also another group of modules called Helpers with composite modules, like “Pricing box” etc. These are sets of modules combined and sealed, you cannot change their markup, only content. I bet many users find these helper-modules useful. They are just not flexible, as they cannot be modified (only content).

In Builderius each module represents one HTML tag. They are named accordingly, like Anchor renders as <a> and Button as <button> etc. There is also two modules which represent generic container and generic content elements. For instance, Generic block renders <div> by default, but it can be changed to <section> or <article> etc. But still it is one HTML tag only. The free version 0.9.5 does not have composite modules yet. But the first one will be introduced in version 0.9.6, it will be called Accordion. It will be a customized <dl> element, that renders JSON-LD microdata and internal markup automatically whenever content data is provided. It will not be possible to change its internal markup, so it will not be flexible in this. Only content can be changed.

As you see, in relation to modules both builders has more similarities than differences :)

PHP code

It is possible to write PHP code right inside Oxygen builder mode via module “Code block”. It is useful when you need to:

  • fetch some additional data; an example would be when WP_Query is not enough to get all data needed from DB;
  • perform some additional computations; an example would be to format/prepare data from DB for Repeater module or similar;
  • fire specific hook or custom PHP function;

In Builderius it is not possible to write and execute PHP code. The rationale behind it is that using PHP code in JSON based template configurations is not wise and is not secure as well. For similar cases as stated above in Builderius you would do this:

Two builders — two approaches. The same possibilities! Or almost the same. The last case with custom PHP function/hook will be addressed in Builderius in the pro version. Cannot comment how exactly yet.

Multilingual support

I cannot find the official info about support of Polylang. Unofficial approach would be this one. To sum up, there is two ways to achieve it:

  • translate the whole template;
  • use PHP code block and write something like “pll_e('Test String US')” inside it;

However, how to do the same in Heading or button? I do not know the answer, maybe it is not possible then.

As for official WPML support — it is not supported:

WPML is not officially supported by Oxygen

In Builderius, starting from version 0.9.6, there is native support for translating static strings. So, in this builder you also have two options:

  • translate the whole template;
  • use “translate function” inside dynamic data template tags; it looks like this:
Translate static text in Builderius

This approach is quite similar to using function like “pll_e('Test String US')”, but the advantage is that “translate()” function can be used in any module — Heading, Paragraph etc or even in HTML attributes!

Builderius has official integration with Polylang starting from version 0.9.6. In particular, it means that apply rules for templates can be set based on certain language or languages added by Polylang.

Conclusion

I did not review everything about two builders, but did for most notable features, let’s say. I hope this article is useful for you.

As promised, I will not be telling you that one builder is better than another one or similar. The aim of this comparison is to bring awareness of similarities and differences between two great WordPress builders! They slightly different in the details, in some approaches. Please, choose whatever feels better for you ;)

--

--

Vitalii Kiiko

Passionate Web Developer. Co-Owner of MooMoo Agency (https://moomoo.agency). Developer @ FareDigitalMedia (https://faredigitalmedia.com)