I’ve converted 11 of my Oxygen sites to Pinegrow over the last 18 months and couldn’t be happier (shocker, I know). I prefer a local workflow to an online/plugin workflow, but I’ve built sites both ways now and can speak to it relatively confidently.
In short, once you have overcome the learning curve with Pinegrow it’s hard to go back to anything else. And this includes Oxygen, Bricks, GeneratePress, Kadence, and others*.
Pinegrow’s strength (and weakness) is that it doesn’t come with a bunch of pre-made components like menus, dropdown buttons, icon lists, accordions, table of contents, etc. If you want them, you’ll need to build them yourself with HTML/CSS/JS or copy/paste them from any of the gazillions of component libraries on the web.
This takes a bit of extra work at first while you build the library of components that you use on each project, but it pays off in the end since you now have full control over how they work, and you aren’t limited to the controls that Oxygen or the Plugin author’s built. I can’t tell you how many times I’ve wanted to change something relatively simple with an Oxygen component (native or Oxy Extras) and had to jump through hoops because there was no control for it.
There is no question that a theme or block made in Pinegrow will have better performance than any page builder can offer. Even the most streamlined page builders introduce a performance hit, if for no other reason than they rely on the WP database so heavily.
I actually did a test not too long ago showing a simple page with text, images, and a splash of JS built with static HTML, Pinegrow, and Bricks. The Static HTML page loaded in 235ms, Pinegrow theme loaded in 602ms, and Bricks loaded in 781ms. A real-world test of a high-load, dynamic-data-driven site showed nearly a 35% performance increase from Oxygen to Pinegrow, with 70% less server utilization. It was bananas!
Again, here is another place where Pinegrow shines. It doesn’t add anything you don’t tell it to add. No automatic IDs or classes, no extra DIVs, no default CSS, nothing. Again though, this is both a strength and a weakness, since a lot of those things are there to make life “easier” for people who just want to crank out sites. Personally, I appreciate that a Pinegrow section is just a
<section> element with no inner div, and that there are no insane CSS defaults like adding
display:flex; to every
Building HTML/CSS/JS Websites
While it is possible to build the code for an HTML/CSS/JS website with the plugin and copy it wherever you want, that seems like a silly way to work. If that’s what you have in mind, then you probably want to get Pinegrow desktop. As an added bonus, Pinegrow desktop has some built-in CMS-like tools that will really speed up your workflow. For example, you can define and use components in Pinegrow desktop, create templates to apply to each page, etc. Those features are simply helpers to generate the HTML pages and keep you from having to change every page each time you want to update your header, footer, or component.
** The Pinegrow CMS tools also come in handy with some WordPress projects. I’m working on a video to demonstrate that in the next few weeks.
I don’t use Pinegrow for everything (although I probably should)
For smaller sites, especially brochure sites or ones where the client wants a lot of design control, I still use Kadence Theme and Kadence Blocks for no other reason than speed. Every time I do this, though, I get frustrated when I run into limitations and bugs. For example, stupid things like being unable to use 2 decimal places in REM values. Why, Kadence, why??? Also, the lack of a class-based workflow in most Gutenberg products always infuriates me at some point in a project.
I think the sweet spot is using Pinegrow for 80% of the project, and supplementing it with other high-quality WordPress blocks like Kadence, where needed and appropriate.
I’ve stopped using Generate Press & Generate Blocks since I’ve been using Pinegrow. While I truly appreciate those products and love the power they provide, they simply have too many compromises vs. Pinegrow with very little in the way of efficiency benefits. Plus, again, I feel limited when I can’t do simple things like using REMs for text (Generate Blocks only allows px, em, and %), and I can’t use CSS Grid.
I hope this helps!