Redux 4.0 – We Need Your Help!

Greetings from the cone of silence, Reduxians (Reduxers?  Not sure on the nomenclature here 😉 )!

 

Yeah, I know, it’s been a while.  A little over a year, in fact.  There was the whole announcement about a beta for Redux 4 last October and then…poof!  Well, not really, it just looked that way.  Lots of work continued, albeit more slowly than we would have liked.  The time we used to have to devote to the current upkeep of v3 and work on v4 became…limited.  Life happens.  Jobs, family, the occasional day off.  Those types of things.  Then there is the funding issue and that’s why we are here today.  We need your help.

 

To put it bluntly, the entire project is barely self sustaining.  We tried many ways to keep going through the years.  We’ve asked for donations, we’ve offered premium products.  It’s been enough to keep the basic bills paid.  Things like this website, the cost of domain registration, and related administration costs.  Otherwise, the time committed to this has been mostly volunteer.  It’s one of the reasons Redux v4 has been in limbo as long as it has been.  It’s frustrating for us and for those waiting as well.  We understand that frustration and we’re sorry it’s taken so long to get to this point.  A GoFundMe campaign has been set up to raise the funds needed to drive this thing home.  We’d like your help to hit our goal.

 

Here is the link if you’d prefer to skip my pitch and chip in directly!  😉  https://www.gofundme.com/development-of-redux-framework-v4

 

Still with me?  Awesome!  Allow me explain in more detail what’s going on, what to expect, and more importantly what Redux v4 has to offer.

 

As I am sure most of you know, Redux Framework for WordPress – since its beginning in late 2013 – has become the most popular and most used WordPress option framework for developers of WordPress themes and plugins. With over 700,000 active installations and usage on over 4 million sites, we’re number one for a reason. Our software has saved thousands upon thousands of developers like yourself dozens of development hours by creating a beautiful option panel for you. Currently, Redux is also free, with free basic support. This type of work takes an a huge amount of time and effort.  In order to keep Redux v4 free, a GoFundMe campaign has been setup. The funds raised will go toward the completion of the beta and ultimately the final product.  Backers who contribute $20.00 or more to this campaign are guaranteed full and free access regardless the results.  All backers will be recognized on our website with a link to their website or product (you are free to opt out and remain anonymous if you so choose).   If we reach our goal, we’ll take the beta public.  Your help will not only help us achieve our goal, but will also help keep the project alive for everyone.  This is why we feel it’s important for everyone to chip in and give a little back.  We’re a community.  We need to look out for one another

 

Now, let’s talk about what to expect in Redux v4.  This is the beginning of a new phase for the company, Redux.io.  We are moving away from a traditional options panel into a full fledged interface builder.  The ability to easily create powerful option panels for your projects will always be at the core of Redux.  But we are planning to go much further as Redux v4 develops.  There are plans for a full interface builder which, in essence, would allow one to build an entire option panel without writing a single line of code.  A little teaser there.  There are plans to move Redux fields into the REST API.  There may even be plans to adapt Redux fields to the most popular page builders available.  And Gutenberg?  Yes, we’ll be adapting to that as well.  For now, this is what you can expect straight away with Redux v4:

 

  • Major core rewrite.
    If you’ve ever taken an actual look at the Redux v3 code base, you’d see it’s a bit of a mess.  Most everything is crammed into one file.  Much of it is spaghetti code.  It’s what happened in the beginning when several frameworks came together to make one ( I wrote about this in depth here, if you’re interested).  As the years went by, we because to separate bits out of the whole into classes.  Doing this for production code in it’s current state became too messy and introduced some problems along the way.  A full rewrite was needed, and that’s what happened.  Now the core is split into smaller, readable bits.  We now autoload our classes and use inheritance.  It’s sped up things quit e a bit.  Along the way I delved into the concepts of security, especially as it applies to WordPress, themes, and plugins.  Which leads me to…

 

  • Top of the line security.
    Redux v4 will meet or exceed code standard laid out by WordPress Coding Standards. an additional set of standards used by WordPress VIP (we remain unaffiliated), and ThemeForest (using their proprietary theme check plugin, which I gotta say is very strict).  These resources focus highly on security.  These including proper escaping and sanitizing techniques, nonces for AJAX and form submissions, and other OWASP concerns.  I used the same CodeSniffer rulesets to audit the entire framework.  These are also the same standards Automattic applies to their product line, including WooCommerce and Jetpack.  The work to keep Redux v4 as secure as possible will always be a top concern and priority.  Speaking as a developer, these standards are something I would highly recommend you run your products through.  One can never be too careful or too secure.  I learned quite a bit during these code sweeps and you too!  Our extensions library will also soon be undergoing the same audits.

 

  • Manual & automatic Google Font updates
    This is one of the crown jewels of Redux v4.  The updating of Google font resources was always a major issue for v3 users, and rightly so.  Redux users basically had to wait for us to update them.  We attempted to incorporate a self updating feature, but it required a Google API key.  Any successful project could blow the limit on such a key very quickly.  Plus, I believe ThemeForest stopped allow developers to include such a key in their projects.  Web server permission issues also cropped up frequently.  The auto update feature failed for many of our users and their clients.  This new method Dovy introduced in v4 solved all of that.  We handle the updating of the Google fonts on our end, via Travis CI. (You can see it here if this interests you). Since we run the check only once a day, our API key never reaches it’s limit.  Pretty ingenious, eh?  Redux then pings our server every week to check for an updated JSON file.  If it finds one, you are notified and given the option to update.  Two options actually.  Your users will have the ability to update as updates are available or use automatic updates behind the scenes (see the screen shot above).  Now there will be no need to wait on us to update the Google fonts array in our core package.

 

  • Basic Metaboxes with standard fields
    Redux v4 will now contain is lite version of Metaboxes to support basic fields.  It’s part of our expanse into the interface builder realm.  Advanced fields will still require an active subscription to the what will be renamed as the Advanced Metaboxes extension.

 

  • Updated panel interface
    The Redux v3 option panel interface was based on the WordPress admin interface as WordPress appeared many years ago before the advent of admin themes.  It’s time we caught up as well.  Redux v4 now matches the current admin style, and is ‘theme aware’ (see the screen shot above).  If you should change the color of your admin theme, Redux will follow suit!

 

  • Full backward compatibility with v3
    This standard has been so important to Dovy and I since we began working together.  Personally – as a developer in the industry for some twenty-something years now – nothing frustrates me more that backward compatibility issues with software.  We don’t want to do that to you, and we’ve gone to greats lengths to keep it that way.  Redux v4 will be no different.  Updated code and classes are ‘shimmed’ so that older public function calls and hooks/filters remain in place.  This is why we are conducting our beta tests.  We would like to eliminate as many of those scenarios as possible before going ‘gold’ (that’s an old industry term for production release  😉 ) .

 

  • Improved field validation
    Field validation is important in our quest for better security.  It allows one to filter out input at the panel level, specifically in real-world instances that cannot be compensated for inside our core.  Redux v3 only allowed for one validation argument per field.  We’ve had many requests for the ability to add more than one validation to any given field or to create new validations to combine existing validations.  It became so we could not accommodate everyone by constantly adding new validation classes to the core.  Now with Redux v4, the validation argument supports arrays.  Specify as many validations as you like!  Also, validation error and warning notices appear in real time after an AJAX save of the panel.  With v3, notices and warnings – in some cases – would not appear until after a page refresh.  We are also planning to add a ‘sanitize’ argument with callback capability to fields as well.  Just one of the many requested improvements over the years!

 

  • Significant code improvements
    This may get a bit technical, so if you are a designer by trade and don’t understand the complex nature of JavaScript level code, then don’t worry.  You can skip this item.  Just know it’s a major improvement that’s good.  The opt_name argument of Redux is what makes each panel unique to each project, so if multiple authors were using Redux in different projects, they would not ‘run into each other.’  While this worked out well for the most part, we discovered instances were run ins still occurred.  Specifically, with our ‘required’ feature as it pertains to Metaboxes, the Repeater field and the Customizer fields.  We’ve adapted out core JavaScript to be opt_name based, which will fix those lingering issues.  Those extensions will also require updates which are also nearly completed and forthcoming.  We’ve also fixed many small bugs and issues along the way!

 

  • Vendor updates
    Users of our Metaboxes extension reported a conflict with WooCommerce where select field rendering was an issue in either WooCommerce or Redux.  This occurred because of the Select2 vendor library.  Woocommerce updated theirs to a new major version.  Incompatibilities with the older version we used cropped up. (Remember that backward compatibility frustration?  Well…).  Unfortunately, it was not as simple as updating our Select2 library as well since there were significant changes from Select2 v3 to v4.  It meant significant rewrites to fields that used Select2.  Redux v4 will no longer contain these conflict issues.  We’ve also updated the ACE Editor library and a few other internal ones as well.

 

  • Redux Pro
    Still slated as something we are working on is the premium Redux Pro effort as part of our expanse into the full interface builder world..  Redux v4 is designed specifically to interface with that project.  Redux Pro will not be compatible with v3.  As much as I would love to further spoil this product, it’s still a ways off and I cannot make any promises of release dates or betas at this time.  Announcements will be made via our email list and social media as that time draws closer.

 

As you can see, we’ve accomplish quite a bit over the last year, plus we have many fabulous new things in the works.  We are asking for the much needed financial support to push Redux v4 to the finish line. We would like to achieve this goal by the beginning of the new year. If you feel Redux and our effort behind it has saved you days or even weeks of development time, we are asking you donate to this project. Something from everyone who uses Redux will go a long way toward moving Redux into the future. We’ve come to a point where we truly do need the support of our users to keep Redux v4 free.  Please, consider our request and help us as we’ve helped you.

 

When the beta is ready for testing and review, an announcement will be made via our blog, mailing list, and social media.  We’ll also have a Github repository set up for it to take feedback and issues that arise.

 

Oh, one last thing; look for a redesign of our website in the coming months.  We think you’ll dig the updated design as much as we do.

 

Thank you, and Happy Holidays to everyone.  🙂