Redux 4.0 – A Beta Test

So…it’s been, what?  A few years since we’ve posted something on our blog?  Yeah, we’re sorry about that.  Reports of our demise have been greatly exaggerated.  We’re still very much here, alive, and working on some things that we’ve been keeping under wraps for a better part of the year.

 

Understand, in the beginning, after Simple Options,  Options Framework,  NHP,  SMOF and Redux 2.0 all came together to make Redux 3.0, it rocked the developer community.  All these fine frameworks and their authors coming together for one super project that eventually became the #1 options framework for WordPress theme and plugin developers.  As time marched on, many of our core developers moved onto other projects, or away from WordPress completely.  Many other option frameworks still available have either been abandoned or – not to put too fine a point on it – don’t do nearly half of what Redux in is current incarnation does.  Today, The Redux Framework project is just Dovy, and myself (Kev).  We’ve not given up or walked away from this amazing project.  The issue is, WordPress tools designed specifically for developers, versus WordPress users/consumers are not exactly the income providers that tools such as WooCommerce, bbPress, JetPack are.  Dovy and I were unable to work on Redux full time for the last few years, which meant divided time between the Redux project we love so much – the one in which we still give our blood, sweat, and tears – and those pesky real jobs.  Oh, and sometimes our families enjoy seeing us as well, from time to time.  🙂

 

This is the big reason why we’ve not made our presence abundantly front and center for a few years now.  We’re still fixing issues that come up in the Redux core.  We’re still answering the issue tracker in what we believe is still a timely fashion.  We’re still doing everything we need to do to keep Redux alive and healthy.  Dovy and I had a conversation last year about what the future of Redux should be, and where we should go with it.  Much of the code base that is the Redux 3.x core is still a mish-mash of all those previously aforementioned combined frameworks.  Over the years, I’ve rewritten sections of it here and there, either through bug reports, or by discovering outdated code to keep up with WordPress updates, or in some cases code that simply was not optimized.  Plus, when security issues come up from our community, we address those immediately.  It’s the commitment we still make to be the the most trusted and secure options framework available.  The discussion we had revolved around breaking up that main framework.php – which was close to 4000 lines – into separate components and rewriting our main JavaScript file to support the opt_name argument, which would improve upon many features and provide for new ones we could not implement without those improvements.  The problem was…time.  Specifically, lack thereof.  Neither one of us had it to give.

 

That changed for me earlier this year (2017, for when this post becomes dated).  I found myself without various commitments that occupied most of my time.  All of a sudden, I had more time than I knew what to do with.  So I sat down and began to implement all the ideas Dovy and I discussed.  That huge framework.php now contains a mere 314 lines, with everything else broken up and put into classes, which an autoloader now handles.  Additionally, the classes (core and fields) now use Object Inheritance which seems to have sped thing up a bit.  Somewhere in there I rewrote the main JavaScript file as well to support the opt_name argument.  This will provide a number of benefits.  The biggest will be the forthcoming Advanced Customizer feature of Redux Pro.

 

Oops, Redux…what?  Pro…what?  Did I just spoil something?  Hmmm…maybe I did.  Keep reading…

 

Anyways, a few other benefits of the opt_name implementation of our core JavaScript will also be seen by Metabox users, specifically where there are multiple metaboxes on the same page with different Redux instances (which means, two different projects using Redux appearing on the same page).  The Redux ‘required’ feature would only work for one, and not the other.  There are also some benefits for validation.  For example, when using validation on certain fields where information needed to be changed or corrected, those changes would not be seen until after the page was refreshed and not directly after an AJAX based save.  Little things such as this, that folks have been wanting for years will now be possible.

 

Oh, and just you wait and see what Dovy did for the typography field.  Automatic Google Font updates WITHOUT the need for a Google API key.  Yeah, you heard that right.  Redux now handles it all for you, minus all the annoying permissions issues that used to plague the weekly update feature, to the point where we had to shut it down.  It’s crazy amazing how it works.  It’s something you just gotta see for yourself.  Dovy did a kick ass job on it.  Personally, I think it should be the sole reason to upgrade.

 

So, after all this work, it was clear that bumping Redux 3 a minor version number would not cut it.  This project was now Redux 4.0, and work for it has gone on all summer long.  See?  We’ve been busy!  Looks (or lack thereof) can be deceiving!  I also made the command decision to update the look of the option panel interface to better match WordPress itself, so the option panel inherits the selected WordPress theme color (using a system close to the one WordPress uses).  Plus, we’ve been laying the groundwork for Redux Pro compatibility, which version 3 will not have.

 

Oh, rats…did I tease that Pro thing again?  Ah, well.  Once again, keep reading.  I want to get the importanct stuff out first, which brings me to backward compatibility.  That is, when version 4 rolls out, it can (and will) replace 3 with no breakage.

 

Dovy and I come from a school of developers who believe backward compatibility should always be maintained, or that every possible and conceivable effort should be given to the subject (pay attention WooCommerce).  So far, I think we’ve been pretty good about, being as obsessive about it as we are.  Great lengths have gone into Redux 4.0 to maintain this compatibility, even with all the code changes made.  More than a few shims were used to keep our promise to do everything possible to maintain backward compatibility.  This bring me to point of this entire post.  We don’t want to simply roll out Redux 4.0 without giving it a good shakedown.  We need some other – and preferably hardcore – Redux users to load up version 4.0 and verify exactly how seamless the upgrade is.  If there are things we missed, we want to catch them now (you know, instead of potentially breaking over a million sites).  We would prefer to begin with a private beta, a small group of Redux users who are familiar with the project.  We have a private Github repo set up for this.  After a short interval, the Redux 4.0 core will be added via a development/beta branch to the public Github repo for anyone to download and test.  It won’t replace the 3.x version until we are reasonably sure everything is where it should be.  And then, when we’re ready, we’ll push Redux 4.0 for public consumption.  The skies will light up!  Angels will sing!  World peace will fall into place!  Okay, well, maybe not all those things, especially that last one.  It’ll be a good thing, is my point in chief!  it allows us to move forward with the Redux Framework Project in ways we’ve only dreamed of doing for years now, which always mean more benefits for our users, and in turn, their users.  Win/win/win.

 

If you are interested in participating in our limited, private beta, fill out the form below.  You will need a Github account to receive an invitation to our private repo.  We’d also appreciate it if you’d let us know the project in which Redux is used.  If accepted, additional details will be provided in the email we’ll be sending out.  Alternatively, If you’d rather wait for the public beta, we can respect that too.  We’ll be making another blog post when that happens, detailing all the new features, and things we’d like checked, areas of focus, etc.

 









 

Oh wait…I did say I’d say something about Redux Pro.  Well, maybe I’ll just tease you a little it, like a high school junior prom date at the midnight hour.  It’s a premium project that will further enhance the Redux Core, similar to what our extensions library does.  After several at-length discussions we’ve had about the project, we’ve decided the Advanced Customizer will be part of it, as well as a reworking version of Custom Fonts.  Pro will also include Ad Remover.  it also won’t be targeted specifically to developers, but also users as well as the project progresses.  There will be some new fields, some major enhancements to existing fields.  We’ve basically decided all new features and efforts for Redux Framework will be dedicated to the Pro version.  We did promise a long time ago the Redux core would be free, and remain that way and we don’t want to break that promise while me continue to make efforts to further fund the Redux Framework Project into the future.

 

That’s all I’m giving away right now.  🙂

 

In the meantime, here are a few teaser screen caps.  Enjoy!