Roadmap for ProcessWire in 2016

Happy New Year!

Hope that you are having a great 2016 so far and thanks for being here! In this post, we're going to take a look at what's planned for ProcessWire in 2016. This is our proposed roadmap for 2016. Nothing here is fixed or final and–as always–we're likely to pursue more than just what's here, but we think it's a good start. We encourage you to reply and tell us what you think too.

The ProcessWire core in 2016

As many of you reading this already know, ProcessWire 3.0 is already pretty far along, and some of us are even using it in production now (like this site). Lets start out by revisiting what the biggest additions to ProcessWire 3.0 are so far (already in place).

What’s in ProcessWire 3.0

  • Move to namespaces. ProcessWire 3.0 now runs in its own namespace(s), and also supports modules with custom namespaces. Benefits will be seen especially by those that want to use ProcessWire's API from within non-namespaced PHP applications, or want to include non-namespaced PHP applications from within ProcessWire.

  • Front-end editing support. Rich text (CKEditor) and other text based fields will be editable directly in your front-end output. Non-text fields are also editable via a modal, making it possible to edit nearly any field on the front-end. Read more

  • Compiled template files. This enables your template files to optionally go through an intermediate compilation step any time you make any edits to them. This enables most template files to be PW3 namespace compatible without themselves declaring a namespace (making template files for ProcessWire 2.x compatible with 3.x). It also includes support for new and simpler API syntax options, like File Compiler modules, such as the File Compiler Tags module (provided as an example).

  • Compiled modules. This enables modules written for ProcessWire 2.x to be compatible with 3.x. If a module doesn't exist in its own namespace, ProcessWire keeps a separate version of it that is compiled to reflect ProcessWire's new namespace. For module authors that don't want to maintain separate 2.x and 3.x versions of their module, they can simply maintain a 2.x version and have it work perfectly well in ProcessWire 3.x.

  • Core code style and quality updates. With 3.x being a major version, we've taken this opportunity to do some code cleanup and optimization by removing deprecated methods, improving our hooks system, increasing code documentation, and updating our code for the ProcessWire coding style guide.

  • New API variables. ProcessWire 3.x introduces a few new API variables that standardize many tools previously available under procedural wire functions (like wireDate, wireMail, wireCopy, etc.). Don't worry, all the handy wire functions are staying, but much of the implementation has been consolidated into more flexible classes represented by API variables like $files, $datetime and $mail. We'll cover these API variables in more detail soon.

What’s still coming for the first release of ProcessWire 3.0

We've also got more on the way for ProcessWire 3.0. The following are not yet on the devns branch (or are only partially there), but are currently in progress and will be there soon.

  • Redesigned images field with much improved UI. Read more and see screenshots in Renobird's blog post here. LostKobrakai is already working on implementation.

  • Multi-instance support. This enables ProcessWire installations [that you control] to have API access to each other, opening up several new possibilities. This capability is actually already present in ProcessWire 3.0 (devns branch), but we've not yet fully finished it.

  • Documentation updates. With all the new additions and changes in ProcessWire 3.0, we will be updating and expanding our on-site documentation consistent with the new version.

  • Composer support. While we already have partial composer support in the current devns branch, we still have more work to do in this area before we start documenting and highlighting it.

  • Trimming the core. One of the goals with 3.x is to make the core smaller rather than larger. Consistent with this, we'll be evaluating all the currently bundled core modules and determining which ones no longer belong in the core. Modules that are removed from the core will continue to be available and maintained, just separately from the core. Our criteria has always been that a core module or feature should be applicable to at least 30% of installations in order to justify its presence. We have several currently bundled modules that don't fit that criteria. Though modules and/or features that require tight core integration in order to be available are exempt from this requirement. For instance, language support modules will always be fundamental to the core, regardless of how many installations are actually using them.

What else is coming for ProcessWire 3.x in 2016

Everything mentioned above is what's going to be in the first master version of ProcessWire 3.0, but we've also got a lot more planned for ProcessWire 3.x in 2016, here's a few things that are planned for this year. One or more of these may also find their way into the first master release of 3.0.

  • Enhancements to image editing and cropping tools. 2015 saw a lot of improvements to these tools in ProcessWire, and 2016 will continue that trend. We'll be making significant improvements to image editing and cropping tools with support for predefined crops and more.

  • Client-side image resizing. This will enable images to be resized before upload. This will be particularly handy for cases where clients are uploading giant photos that are time consuming and/or impossible to resize server-side.

  • More focus on the Reno admin theme. The Reno admin theme will be much more front-and-center, pre-selected as default from the installer. The existing default admin theme will continue to be available in the core as well.

  • ProcessWire's front-end framework (for the admin). We will likely revisit the front-end framework side of ProcessWire (used by the admin), potentially adopting an existing framework like Uikit, or simplify, improve and expand our existing one. We will continue to use jQuery UI as well, but perhaps with a more on-demand approach where the framework isn't loaded unless required by a module (not unlike FormBuilder).

  • More MySQL options. ProcessWire 3.x will provide more direct install-time options for selection of database engine and character set. We will likely be defaulting to use InnoDB (rather than MyISAM) when the conditions and environment support it. We'll also be supporting the utf8mb4 character set to further our language and emolji support. :)

  • Continued performance and security optimization. This probably goes without saying, but we are always driven to make ProcessWire the fastest and most secure CMS out there. We will continue to optimize performance and security in every way possible and are always looking for opportunities to do so.

  • Auto-save in page editor. Some of us write our content directly in the page editor, and we'd like to provide more safety for those that do. We'd like to introduce a capability to routinely auto-save work in progress from the page editor. It wouldn't actually save to the page, but would save to a temporary location that could be retrieved when/if needed. This would prevent the possibility of lost work due to a browser crash, computer freeze, accidental close, session loss, or other related condition.

  • Expanded permissions. In 2015 we expanded our access control and permissions system quite a lot, and we'll continue on that track in 2016, especially with support for more optional permissions. As examples, permissions that provide more granular control over what a user can trash, publish and/or unpublish, fine-tuning the behavior of existing page-edit, page-delete and page-publish permissions. For example: page-delete-created, page-publish-created, page-unpublish, page-unpublish-created. Basically, we'd like to further reduce the scenarios where you would need to use an access control hook, by supporting more optional permissions.

  • Front-end JS $pages API. Something that's been on my wish-list for awhile is to have the ProcessWire $pages API available at least in a read-only state to front-end Javascript (and perhaps more API variables). I think 2016 is the right time for this, but we'll see. Just for starters, imagine being able to do this from the JS side:

for(var page in wire.pages.find('template=product')) { ... }

What’s coming for ProcessWire 2.x in 2016

While 2016 will be the year of ProcessWire 3, we still plan to continue maintaining the 2.x branch of ProcessWire in 2016. The focus will largely be on stability, performance and security optimizations, as well as fixes for issues as they are reported. Since the focus is stability, there won't likely be many new features added beyond what's already there.

While there aren't currently plans to have a 2.8 version of ProcessWire, there are plans to release several more 2.7 versions. There is no planned EOL for PW 2.7 at present, so support and updates will likely continue through all of 2016.

Our 2.7 branch is intended to be so solid and stable that you can upload a website running on it, and then not have to touch it again (if you don't want to) for the life of the site. Though the same could be said for most versions of ProcessWire. I'm a little embarrassed to admit I even have some sites still running on ProcessWire 1.x!

What’s coming for the Pro modules in 2016

Thank you for supporting ProcessWire with the Pro modules, it is greatly appreciated, and it is what enables ProcessWire to be a sustainable project. 2016 is going to be an exciting year for the Pro modules and we have a lot planned. Here is a taste of a few things currently on our todo list for 2016.

Lots of planned upgrades for the Pro modules

  • ProDrafts will be released in early 2016 (though you probably already knew that from past posts).

  • ListerPro will continue to expand as one of the most useful and indispensable 3rd party listing and editing tools for ProcessWire. 2016 versions will expand on batch editing capabilities and further build upon the included batch actions. New hooks and configuration options are on the way too.

  • FormBuilder will gain new custom markup capabilities, providing more and more control over output for those that want it. We are likely to include another built-in front-end CSS framework option. We are also exploring options for multi-page forms in 2016. The next version of FormBuilder (currently in testing) also expands on administrator email options.

  • ProCache gained CDN support and HTML/CSS/JS minification support in 2015, and in 2016 will continue to lead our website performance and optimization tools with a new version and several incremental optimization updates planned. We think ProCache is indispensable, and it is perhaps the most used Pro module.

  • ProFields Table saw major upgrades in 2015, and in 2016 will gain several new features including new input types (hopefully including files), pagination (for large amounts of rows), more configurable settings to existing input types, and more.

  • ProFields Multiplier will gain an unlimited/undefined quantity of rows capability so that inputs no longer have to be pre-rendered in markup.

  • ProFields will likely gain a new Fieldtype and Inputfield providing some exciting new data storage and input capabilities. More on that soon!

All of the other Pro modules will likely receive upgrades as well. All the Pro modules will also be available in PW 3.x-specific versions once ProcessWire 3.0 is the new master. Though all of the current Pro modules already work with ProcessWire 3.0 thanks to PW's built in module compiler. While we don't have specific features to mention here for all of of the Pro modules just yet, we encourage registered users to always keep an eye out in the relevant support boards for upgrades.

Stepping outside the code: PW project goals for 2016

While we've got a lot of plans for ProcessWire the product, we've also got a lot of bigger picture goals for ProcessWire as a project. After all, ProcessWire is much more than just a product… at its heart, it's a community of web developers and designers dedicated to helping each other and striving for excellence in everything. Consistent with this, here are a few bigger picture goals for ProcessWire beyond just the product.

Increase the visibility of ProcessWire in the web development world

We need more exposure via external articles, links, social network activity and more. We also need high profile projects (many of which I've become aware of recently) to stop keeping their use of ProcessWire a secret. We'll get into more details about this next week, and get into more specifics about how you can help.

Delegate the core (and more) to a broader team

ProcessWire may have started as a single developer project, but it will continue to grow more and more as a team project. With ProcessWire 3.0 and in 2016, we're going to have more dedicated maintainers for individual parts in the core and ProcessWire network of sites.

You already know that Tom Reno (Renobird) leads the design and development of the Reno admin theme. And you might know that Horst has been developing and maintaining our API-side image manipulation functions for quite some time. Those are just examples of a few people already involved in ProcessWire's core. Going forward, there will be more people involved in leading and maintaining the development of other modules in the core. LostKobrakai has already started leading development with our images field, and Renobird is leading design. We hope to have this in the core soon!

You'll see more and more examples like this. In 2016, the team will also gain more visibility on our site where you can learn more about each of them and what they do. The core team is not just those dealing with code or design, but those maintaining the project in other ways too, like with the forums, website, management of modules, cheatsheet, sites directory, developer directory, and more.

Redesign of ProcessWire.com and forum upgrades

Our current site and design have served us well over the last few years, but we're reaching the point where a redesign is in order. We're not yet sure of the full scope of this or who will be involved, but it's definitely on our mind as a goal for 2016. Tell us what you'd like to see in the redesign, we always value your feedback in all areas.

In 2016 we are also hoping to upgrade our forums to a new version of IP.Board (4) which will provide a major leap in UI and function, as well as improvements to the store.

Continued and greater focus on documentation and tutorials

Documentation is one of the most important parts of supporting our community and developers using ProcessWire. It's also key in attracting new users. We will continue to focus on improving our documentation, tutorials and anything related that assists developers using ProcessWire. We've still got some holes to fill in terms of documentation, and we've also got improvements and upgrades to make in some existing documentation sections.

Time spent on writing and improving documentation and tutorials is always time well spent. We aim to make ours the best and most complete available for any CMS/CMF.

Continued weekly blog posts and more guest posts

For more than a year now, we've had weekly blog posts, many accompanied by new incremental PW versions. They have become an important part of our communication with ProcessWire users. We aim to continue that in 2016. Some of our most popular posts have been from guest authors like Antti Peisa and Tom Reno. So we'll make sure to get you even more of those this year too!

Thank you for being here and reading what we write! Thanks also to Teppo Koivula for writing about ProcessWire every week in the ProcessWire Weekly. His dedication and commitment to the PW Weekly are what originally inspired–and continue to inspire–these weekly blog posts. Happy 2016 to all of you and here's to a great year ahead!

Comments

  • sanyaissues

    sanyaissues

    Thanks to you for the time, dedication and commitment to make Processwire such an amazing CMS. ¡Happy New Year Ryan!

  • Kuba

    Kuba

    • 9 years ago
    • 22

    Can't wait to see it released!

  • Basil

    Basil

    • 9 years ago
    • 10

    I love processwire!! Happy New Year Ryan!!!

  • Pete

    Pete

    • 9 years ago
    • 30

    That's a pretty busy and ambitious year ahead and I'm excited to be contributing in some of those areas above.

    I'm sure this has been asked with FormBuilder, but it would be lovely if the forms themselves created individual tables in the database so entries can be queried via an API without having to load them all into memory. Perhaps something like that would even help towards multi-step forms?

  • Tom

    Tom

    • 9 years ago
    • 10

    "ProcessWire is much more than just a product… at its heart, it's a community of web developers and designers dedicated to helping each other and striving for excellence in everything."

    Excellently put :-)

    "Redesign of ProcessWire.com and forum upgrades"

    This is something I would love to get involved with. I know the community is full of developers/designers. Maybe Slack would be a great way to pull this community in to get involved.

  • adrian

    adrian

    • 9 years ago
    • 20

    Multi-language in PW2, it is not easy to change default language.
    How about in PW3?

  • Anthony

    Anthony

    • 9 years ago
    • 30

    I keep thinking PW can't get a whole lot better and along comes this post and I get excited about all the growth to come.

    Happy new year to you Ryan, to the other contributors to PW and to the entire community. You all make this feel like home to me.

  • Nicolas

    Nicolas

    • 9 years ago
    • 00

    Woooo 2016 will be a very busy year for ProcessWire (the product and the warm and vibrant community behind it. Special thanks to Ryan and the core forum team for your time and effort).

    Happy to seem the website and forum redesign on the roadmap. Such a great CMS deserves a refresh although the current design does the job quite well.

    Regarding the frontend framework toolkit like UIkit, Vue.js coud really make the admin sparkle.

    Here's to a great year 2016 for ProcessWire.

 

Latest news

  • ProcessWire Weekly #547
    In the 547th issue of ProcessWire Weekly we're going to check out the latest core updates, introduce a couple of new modules, and more. Read on!
    Weekly.pw / 2 November 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • Subscribe to weekly ProcessWire news

“Yesterday I sent the client a short documentation for their ProcessWire-powered website. Today all features already used with no questions. #cmsdoneright—Marc Hinse, Web designer/developer