version 4

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.¬† ūüôā

 

 

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!