Jump to content

PW ecosystem in the future


apeisa

Recommended Posts

Just wanted to start discussion how people feel how ProcessWire ecosystem should evolve in the future? What I am thinking about are mainly 3rd party modules, themes and site profiles - and how they are provided. All open source? Commercial modules? What is the direction that would be most beneficial for processwire and people & agencies using it?

There are huge differences how these ecosystems work between different systems: Joomla, Drupal, WP, Expression Engine, Concrete5 etc...

Also Ryan has mentioned few times about possibility to offer commercial support for PW. All these things are very interesting and I know this is little early on, but I think it would be great to start this discussion now.

Link to comment
Share on other sites

Just a quick one on whether modules and templates etc would be open source or commercial - I'd suggest having both.

The big issue you run into with commercial modules is that if someone's charging for something before the end-user can download the code and it doesn't work or it's just an empty file or something silly like that, and the modules are being offered through processwire.com then ryan's going to be the one who ends up with the complaints. Not that I always think of the worst case scenario... ;) Or you could have a team of helpers test each commercial module/template etc before approving them for people to buy.

Maybe offer open source modules and "official" commercial modules (if there will be any) on this site and let others who want to sell modules do so on their own sites?

It's a big discussion, so probably a good idea to start it early, but I guess a lot of what I'm talking about above would come down to ryan's preferences.

Link to comment
Share on other sites

Good question, and I'm not really sure about an answer. I do know that I want to find a way to dedicate as much time to PW as possible and that means being able to make a living from it. To a large extent, I'm already doing that as ProcessWire is the engine for most of my client projects... and it's driven quite a lot of business over the years, and continues to do so. So that's how I'll continue to proceed. Though that means that development is generally driven towards my own needs rather than those of the bigger ProcessWire community. I've always thought that one of the ways to support PW's growth is by offering enterprise support and consulting services for those that want it. Lots of companies don't want to be dependent upon software unless there's an official entity to support it. So I've thought at some point I would like to be able to provide enterprise level support, leading to higher profile projects and more exposure for the software and open source in general.

Link to comment
Share on other sites

I know I am new here, but here are my two cents  ;D

I am for open source and commercial modules, themes, and all that. You can always open new section in this forum for commercial stuff, and developers can post there stuff there and also support them right there  :o ( that is a new concept, right?  :P )

I think that for now all modules and themes should be free, until PW builds its own community.

Ryan, you can always make specialized modules/themes (commercial) for specialized fields. For example: There really isn't any good CMS or system out there for photographer portfolios. And the one what are there are way overpriced or to complicated that you need degree in engineering to upload your pictures to a gallery.  :o

You definitely should have enterprise support. Its always good to know that there is  a help when one needs it.  ;D

You can also have section in the forum "hire developer"  ( another brilliant idea  :D )

Wish you well  :)

Link to comment
Share on other sites

I think that for now all modules and themes should be free, until PW builds its own community.

That will probably be the case, since I don't think there are enough users yet to make commercial modules meaningful. Also not sure how GNU GPL v2 license works with commercial modules?

When I look at the current state of different cms ecosystems, I think that commercial add-ons are very much welcome. If you compare the quality of EE add-ons vs Drupal modules, it is amazing how much better EE add-ons are (considering also that Drupal is so much more popular than EE). But as a developer I would hate a situation that I would need to buy from 5 different developer few addons that I always need (seems to be case with EE, but they do have http://devot-ee.com/add-ons/store/). Also the cost that modules are (from 10$ - 100$) they are easily worth it, if project needs it.

These are just my initial thoughts, but I try to describe what I think as a ideal (or at least interesting) situation:

One centralized store for all addons (modules, themes etc). This would be supported by company behind ProcessWire (Ryan Cramer design). Store would keep little amount (10%-30%) of payment, but would offer free marketplace for developers and customers. Same marketplace would be used to share open sourced themes and modules (ability to donate). This could also be combined to premium support, so if you pay premium support, you get free access to (all or just some of the) commercial modules. Money would of course be shared between support and add-on developers based on usage. All this should be done as openly as possible, so everyone sees how the money flows.

Other scenario would be, that all addons would be free, and supported from premium support subscriptions and donations.

I think Concrete5 is only CMS product that has "official" marketplace. I just read how it works (http://www.concrete5.org/developers/marketplace-submission-rules/) and I think that is pretty close what I had in mind. And it seems to be going pretty well (lot's of add-ons and themes).

Link to comment
Share on other sites

I wasn't aware of Concrete5's marketplace–it seems like a good model. Thanks for posting this. ProcessWire is as much of a development tool as it is a CMS, so I think our audience is largely designer/developers–people that have their own clients to support and people that are strong believers in open source. I'd like to build the ecosystem in a manner that best accommodates this audience. In addition to providing high levels of support for those that want it, I think that marketplace for add-ons and services is also a good way to do that. Though I envision that most modules, templates, etc., in the marketplace would be free, but if somebody wants to make investments to build and support a commercial module or service, I would want to support their ability to do that.

Like most open source CMS projects, ProcessWire is GNU licensed. Concrete5 is a little bit unique in that it's MIT licensed (I think), which is even less restrictive than GNU. It says you can take the code and do whatever you want to with it... you can go build your own commercial application around Concrete5 and then sell it. Whereas, the GNU license requires that forks also carry the GNU license. That makes it hard to sell something derived from GNU licensed software, unless your selling services related to it while making it clear to the customer that the software is free. But ProcessWire's module/plugin system maintains a strong separation between what is ProcessWire and what is the module. Like a web site built in ProcessWire, 3rd party modules are not derived from ProcessWire, they just implement the interface that ProcessWire requires and use its API. So 3rd party developers are welcome to commercially license their own modules if they choose to. At least, that's how I understand it (I'm no expert on licenses). If the module interface (Module.php) or starter modules (like Process.php, ModuleJS.php or Textformatter.php), or admin templates need to be dual MIT/GNU licensed, then I'm okay with that, but the core would stay GNU.

I think our usage is probably far too small right now for there to be a market for commercial modules, but I also think we're going to reach that critical mass before long, so it's good to start talking about it now. Antti's ideas around the marketplace seem like a good direction for developers to make their PW-related products and services available.

Link to comment
Share on other sites

Antti's ideas around the marketplace seem like a good direction for developers to make their PW-related products and services available.

I was about to say we'd then need to start thinking about a platform to build the marketplace on but then I remembered PW can do all that.

Maybe we need t-shirts with slogans like "PW can do all that". But maybe someone else should come up with the slogans ;)

Link to comment
Share on other sites

Regarding modules and its licenses: There was a beef between one of the famous theme framework for WP and WP itself, let me google some links.

List of links:

I remember that I couldn't decide between them – while on Mullenweg's part was too much sentiment & pathos for my taste, the other guy was a douche at best, quite arrogant and also haven't got all his thoughts and notions synchronized ,so few times went against himself. Not to mention that against him were copypasted parts in the Thesis framework.

But as far as API go (if we ignore the copypasted parts), I believe that the licensing comes down to whether you think that using API is building upon code (then every module must be licensed as GPL), or is it rather independent entity, only using its own code and author-provided tools to connect to core (API) – then it can be licensed whatever the hell you please. Somewhere in all the article reacting to this particular feud, there was mentioned that all of this is theoretical – most of the OS licenses have never been tested in court, not to mention international courts.

The one point people seem to use the most was, whether the problematic part (in this case the Thesis framework) could work by itself. If not then it's not independent entity, thus it uses parts of WP and must be licensed. I don't agree with this, but that's for longer dispute.

So it depends on:


  •  
  • How authors of core and/or modules see using API & modules API – is it 'building with' or 'building on' the core?
     
  • Will Ryan (or PW Foundation :D ) allow split license for PW, thus licensing Core GNU/GPL and API & modules API some other license?

Although the above statments and with question mark, those are not questions, rather something to think about :)

* – I wrote this really fast, so I apologize for any mistakes and/or english butchering that might have occurred.

As for the marketplace itself, I say we take it as it comes – first, there is new release, new website, and it's going to be hell of a test of how are we capable of

1.) marketing the system (with new, a little more user-centered website)

2.) informing about news/new releases

3.) communicating with (hopefully) larger audience

Of course, we also need to think a little ahead. :)

Link to comment
Share on other sites

Whilst I understand why licenses are there and a lot of OS stuff is GNU-licensed, I think what it all boils down to at the end of the day is what the project author wants you to be able to do with their software.

I think that even if it were left as GNU, which as you mentioned Adam is untested in a court of law, if the author of a particular piece of software said "I'm happy for you to sell it on if you like, modified or not" (unlikely scenario) then that would overrule whatever's written in the license from a legal standpoint (in fact, isn't a common theme in most licenses the phrase "without the author's express permission"?).

What I mean is, the authors of OS software should license their software, yes, but also have a page on their website in plain English (other languages are welcome of course) explaining how they wish it to be interpreted. That way there's no room for speculation. As long as the license fits what they want as closely as possible and covers them if they do need to go to court, then I don't see the need for split licensing.

That's just my view and I'm not a lawyer, but I've seen so many threads on OS software forums asking what the GNU license means in terms of what people can do with software that I think spelling it out is very important.

Just checked the site and it currenlty reads: ProcessWire is licensed under the GNU GPL v2 - maybe this could be expanded in future with "...which means you have the author's permission to..." or something like that.

Link to comment
Share on other sites

I think that interpreting a license is kind of a tricky spot because lots of GNU software has components of other GNU software. And one author can't make the interpretation for another. So I think it may be best to take the license literally for what it says and the author has to accept it just like the users do. Though the copyright holder can always change the license, but then they have to make sure that's compatible with any other components in the software. For instance, if PW were to be MIT licensed, then I probably couldn't bundle in TinyMCE and Markdown with it anymore.

I don't think there is anything in the GNU license that would lead me to believe that someone's original/custom plugin modules would fall under PW's license any more than your website itself would. The reason for this is that ProcessWire is a tool, like PHP is a tool. When you use the API to create your a website or supporting module(s), you are using that tool in the manner it was designed for. PW's license doesn't say what license your own code carries unless you go in and modify PW's code in the process. When you create modules or templates, you aren't modifying PW's code. After all, ProcessWire doesn't have to be released under the same license as PHP. I didn't think this was an interpretation of the GNU license, but I'm also not a lawyer, so somebody correct me if I'm wrong. :)

Link to comment
Share on other sites

Adam: You are absolutely right: we have pretty big challenges coming with site upgrade, promoting pw and handling all the new traffic. All these things are top priority, and something like marketplace or even centralized module distribution are things that come after that. That is probably year or two, when critical mass is reached and we really need a solution for this.

I started this discussion early because I wanted to hear what is general consensus and how Ryan feels about these things. I'm not sure which way is best, but I would love to see a lot of polished and well supported modules (that usually means commercial, at least for support). But commercial modules introduce few problems:

  • Price tag (they cost money, not a problem if you have a budget)
  • They don't courage to contribute (why would you fix bugs from commercial code that makes money for someone else?)
  • Commercial module doing something that should be in core

I see the latter as a most problematic -  though probably easily avoidable. Let's say that there would be brilliant multilingual module which costs 295$. Perfectly made in PW style and everyone loves it. It should be in core. Like CCK was for Drupal. Well, as CCK was open source developers just integrated it into Drupal core (before that everyone just installed it). Another example from Expression Engine: There was commercial 3rd party module SafeCracker, which extended EE in a way that developers loved. As EE is commercial software then company behind EE just bought the addon and offered it as a free download.

But in case when module is commercial, but cms is open source. It could lead into a stupid situation: community could code everything again, and be sure not to copy the module code at all. Or leave the situation as it is: we have solid cms but multilingual/form-tool/some-other-should-be-in-core-module costs money. BTW this seems to be situation with Concrete5, where company behind the C5 are also big seller of commercial addons.

I think the ideal situation is probably somewhere between these two alternatives. First Processwire should always have clear roadmap, for at least for few big next steps (like we have now: multilingual, user forms, versioning etc), so people who want to develop modules could develop modules which will be in core (they should contribute developing those as core features, although os module would be great way to start it). Also open source modules should be encouraged because they allow contribution and it really gives a processwire a lot. But problem with open source modules are that they are often unpolished, forgotten and/or unsupported. Sometimes they are only beneficial for other "module developers" or people who are willing to fork and fix.

Then there are things that gets build many times, because they are stuff like "well, I need it for this site only" or "this is so messy, that I won't release it".  Or from the other side of the fence: "oh how I wish there would be bridge between pw and smf, and someone who could help me install it -  I would easily pay for it". So that developer takes the extra mail and polishes and supports the module so that he thinks it is worth money for some people.

Then it would be great to have commercial modules easily available - or better yet - some easy and effective way to support open source developer. What would be most effective way to support open source modules and processwire core? And by support I mean hard cash now :)

One alternative would be that official marketplace could get creative: maybe to support only "pay what you want" method, so if you want to get the software for free you can have it for free. But downloading process always reminds, that "developer of this module asks donations to keep develop and support this module. And by the way it wouldn't hurt to support the core development of processwire while you are into it". And of course developer may decide not to want any donations or wants to give all donations towards processwire core development. People and companies do like to donate, if they are encouraged to do so.

The reason why there aren't any commercial drupal modules are that they aren't allowed in drupal.org. And the reason that there are so many commercial modules in Concrete5 marketplace is that those are encouraged there. So the way we decide early on will be very important. People are like sheeps, we usually follow how others do things and keep doing it that way :)

So I think we should aim to whichever creates high quality modules and tries to keep those as open source.

Link to comment
Share on other sites

I think it would be useful, although potentially impossible if the number of contributions is too high, if there were moderators who checked out modules as they are submitted to ensure they work at least, and maybe have a sufficient level of documentation if it requires any.

This could even go a bit further and module code could be checked over, but it's time-consuming and I think it would annoy contributors (just bringing it up for discussuon - I'm not suggesting it as an option I'd like to see personally). Probably a better way to do this would be what we have now in the forums - people who have questions or are writing modules are coming to the forums and getting help and feedback with their modules - I know I am - which leads to better modules as a result instead of folks like me struggling along, not asking questions and making badly-coded modules ;)

So yeah, if the community here is very welcoming, as it is now, then I think module authors will come here to ask questions and test out ideas before releasing modules.

"oh how I wish there would be bridge between pw and smf, and someone who could help me install it -  I would easily pay for it"

Forum bridges are hard work. I've dabbled with creating some basic bridging before and the biggest issue is that you're trying to work with two moving targets - every version of a CMS (not necessarily PW) that comes out can have an affect on your bridge as can every new version of forum software, and forum software tends to have a lot more frequent restructuring to the codebase in my experience.

As an example, I'm currently working with PW and IPB and have some fancy things working already, however nothing that would constitute a bridge - I'm purposely not importing users into PW or anything like that and keeping them separate to avoid lots of re-coding further down the line, but rather pulling user info from the forums only and checking some permissions based solely from forum user groups - it's easy enough to do this in each PW template and basically decide which forum groups can then access which sections rather than try to synchronise the two.

Sorry, got a bit off-topic there...

Link to comment
Share on other sites

I think it would be useful, although potentially impossible if the number of contributions is too high, if there were moderators who checked out modules as they are submitted to ensure they work at least, and maybe have a sufficient level of documentation if it requires any.

This could even go a bit further and module code could be checked over, but it's time-consuming and I think it would annoy contributors (just bringing it up for discussuon - I'm not suggesting it as an option I'd like to see personally).

Probably best solution is to rely to the community here. Things like amount of downloads/installs, development activity and discussion right on the "module page" would give good indicator about the quality of the module.

Link to comment
Share on other sites

Good point - it would also be useful to be able to have versioning of modules, and comments with an option to have a comment be for a specific version. So if someone's commenting about something in a specific version that doesn't apply to later versions, then comments specific to an old version could be hidden (I'm thinking if someone commented about a bug then it wouldn't be relevant in a later version), and similarly it would be nice to have an overall rating for a module as well as ratings for the current version (I'm thinking Apple's app store here - things get low ratings but the things people have rated it low on are often fixed in later versions).

And all these are things that are relatively simple to do in PW too I reckon ;)

Link to comment
Share on other sites

My 2 cents, although I'm new here.

I think that strong point of PW is that it's very flexible platform comparing to others. It means that creating a website with PW beneficial in the first place (in terms of productivity and quality of a product) for people who can write code and create non-trivial designs (opposite to joomla or some other cms's where you can just install some modules and get yet another "joomla-looking" website). Also from designer's side PW requires at least basic knowledge of php and some agreements between designer and server-side developer, so designers can't just create front-end themes for PW that would suit most websites as with Wordpress. IMHO, PW is good at creating very custom, "handcrafted" websites and can't be used by total newbies (which is a good thing :)) And this leads me to conclusion that community of developers using PW should be more service-oriented rather then product-oriented concerning making their living from. So I think that most of the modules should be free, but customers should pay for fine-tuning and integration. As for paid modules I think that such ones as online shop and all modules conserning sales and integration with payment systems can and should be paid. It's IMHO, maybe I'm missing the point, this is just how I see things at the moment at the current level of my understanding :)

Link to comment
Share on other sites

slkwrm:  I think that what you are saying makes a lot of sense. Somehow similar situation that Drupal has compared to WP and Joomla. There is good post from Dries about that: http://buytaert.net/joomla-vs-drupal-business-models-and-commercial-ecosystem and some very good comments, like this one here: http://buytaert.net/joomla-vs-drupal-business-models-and-commercial-ecosystem#comment-32841

Link to comment
Share on other sites

My opinion is that the marketplace should support those that want to provide free modules and those that want to sell commercial modules. I don't want to give preference to one over the other. I am thrilled anytime someone wants to build something in–or for–ProcessWire. Our audience has some crossover with ExpressionEngine, and that community has attracted some very skilled add-on authors that are producing software far better than EE itself. I'd like to have these folks develop their add-ons for ProcessWire too, but I think they need to have a financial reason to do so since it is their full-time job.

I'm not interested in bringing any commercialism to ProcessWire itself, just want to see the ecosystem represent the level of quality add-ons that our audience deserves. So I think this is probably somewhat similar to Concrete5's approach, though I've not researched their approach in any depth.

If someone wants to sell an add-on, we will have expectations from them that we won't have from those providing free add-ons. They will be have to agree to provide a certain level of service and support for a given period of time (like that C5 agreement). If someone wants to provide a free add-on, then their level of support will only be limited to that of the license they've chosen (which basically means they don't have to do anything). Like anywhere else, people will be able to rate and comment on these things, which will help to separate the quality from the crap. Though I think the nature of PW is such that there will be a lot of quality and very little crap. :)

I'm not so worried about people building 3rd party modules for stuff that should be in the core. PW will always be a fully featured, free product on it's own and not require 3rd party modules any more than it does now. This is unlike something like Drupal which is quite limited without 3rd party modules (CCK, Views, etc.)

I'm not sure I've stated anything new here, but just thoughts on what's been written so far.

Random off topic stuff, but this discussion made me think of it… When I first started coding stuff, like around 1989 or 1990, most software was based on a model called shareware. This was mostly pre-internet, so you'd download it from BBSs. Most software was compiled (EXE files), so open source wasn't an every day term. But with this model, you could download and use the software, but you agreed that you would buy it after a 30 day trial if you wanted to continue using it. Or in some cases you could use it for free forever, but had to buy it if you wanted to use a version with extra features. Some software stopped working after 30 days, while other software was just based on the honor system. I partially paid my way through college with a shareware software I wrote called DataView (an archive viewing utility for BBSs). Also made another free software called "one-liner" which was basically Twitter, but for the BBS age. That term "shareware" doesn't seem to be around anymore, at least I've not heard it in quite a long time. I'm not suggesting this model has relevancy to our discussion, just reminiscing.

Link to comment
Share on other sites

@Apeisa Thanks for interesting links. Definetely Drupal community could be a role-model as long as visions are the same. I heard a lot of good things about it. And during the time I was tinkering with Drupal I also had only good impressions from it. Hey, and longevity of their community is also a sign of good health :)

@Ryan Yep, that's weird. For some reason the term "shareware" is avoided currently, but we still have "trial" :)

I've just remembered about an article I read some time ago on Ryan Thrash's (one of MODx creators) blog. It's called Open Source vs. Open Core and may be of some interest in the context of this discussion. They are trying to apply Open Core ideology to their new Revolution branch of MODx and it seems quite promising, because currently MODx's getting a lot of momentum. Though as far as I understood some people consider Open Core nothing more than hype and just another trendy marketing word. There are two links at the bottom of the article which provide additional information on the topic. http://thrash.me/tech-and-modx/open-source-vs-open-core.html

Link to comment
Share on other sites

One thing I've seen on another CMS' website (MODx's forums actually) is a jobs board.

What you might get is someone who likes the look of a CMS but can't develop the site or a specific feature themselves, or you might get a customer whose developer has vanished and needs someone to take over maintenance of a site, or maybe just some lucky web design company has too much work on and is looking to outsource.

Some form of job listing would be a fantastic addition, perhaps with an option to list budget (though the majority of people will probably be asking for private quotes).

Just a thought, and it's one of those things that doesn't sound like it would get used much but you'd be surprised - the on on the MODx forums has a steady stream of requests coming in.

Link to comment
Share on other sites

@slkwrm: That's interesting to see what you mentioned with the "open core" vs "open source", even if it's just different terminology for the same thing. Though my opinion for ProcessWire is that I don't want to blur the line about it being fully open source, and a term like open core seems to add some ambiguity to that line. But what 3rd parties do is separate and I want to encourage anyone that wants to develop modules to run in PW.

@pete good idea on the jobs board. I'm sure this will be one of the things we'll want to have once reaching that critical mass.

Link to comment
Share on other sites

  • 3 months later...

This may be the wrong thread as such,

But I'd recommend taking a look at Microsoft's Web Matrix, and seeing what you might need to do to get ProcessWire in the download list of WebMatrix's sister "Web Platform Installer 4.0". Free Advertising :-) as it would be listed with the likes of Drupal, Joomla, Concrete5 et al in the Applications/CMS section.

That's originally where I came across/first heard of Concrete5. I thought it interesting that PW and C5 seemed to have a similiar feel in the whole "Block" n "Page" object type.

C5's marketplace is definitely something to consider for the future as well --- a way to monetize PW, promote developers and provide content/modules to dev's and users alike... all in one nifty package.

Link to comment
Share on other sites

I'd recommend taking a look at Microsoft's Web Matrix, and seeing what you might need to do to get ProcessWire in the download list of WebMatrix's sister "Web Platform Installer 4.0". Free Advertising :-) as it would be listed with the likes of Drupal, Joomla, Concrete5 et al in the Applications/CMS section.

I was thinking the same thing only yesterday :D

I don't think you actually have to do much other than create some XML files from what I was briefly reading through, which doesn't sound too painful - depends what the contents have to be I guess.

Link to comment
Share on other sites

I actually have no idea what Microsoft's Web Matrix is... I'll Google it.

That's originally where I came across/first heard of Concrete5. I thought it interesting that PW and C5 seemed to have a similiar feel in the whole "Block" n "Page" object type.

I didn't realize there were any similarities between C5 and PW. :) I used C5 a year or so ago and thought it was a fun system to test, just not a system I'd want to develop in. A very different approach they've got going there with C5. But I agree about their marketplace is a great model and one that we need to look into more.

Link to comment
Share on other sites

I don't know if there is many similiarities. I just recall backend "menu-tree", similiar to PW's backend menu+pages. And the little research I did mentioned that all C5's modules should work-together as they are basically "custom blocks" - which made me think of PW's customized 'pages'.

Editing/Adding content is from a view of the front-end with a layout-positional-overlay similiar to Opera et al's developer tools. Other things seemed awkward, some editor templating - very odd syntax there.

If you compare PW to something like Joomla or Drupal, or even Wordpress they are so far removed as to be not even from the same galaxy... C5 and PW are at least on the same planet ;)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...