Jump to content

Would You Recommend Pw For A Social Networking Site With Ecommerce (And More)?


Recommended Posts

I know this has been asked a bunch of times in the forums and I've read many of the responses, but I'm asking again due to the complexity of my proposed project (and my own level of competence and general confusion!).  I'd like to take this opportunity to explain a bit about what I'm trying to accomplish and see if you'd recommend processwire, a framework like django/laravel/yii2, or even a combination of both?

I just spent the weekend exploring processwire after having put it off as a contender for my project probably a year ago.  I was very impressed with what I was able to do this weekend.  Long story short on the content/data relations part of my project I did more in a few hours from knowing nothing about pw than I was able to do in weeks of django (which is what I had planned to use initially).

So, I have a somewhat complicated site that doesn't fit well into a particularly category (really it's 3 inter-related sites in one).  Long story short, the site is yinyanghouse.com and it's a large Chinese Medicine community site with a store, some complicated data relationships and then community functions (forum, customized user roles/point system, etc.).

The data has multiple m2m relationships and is somewhat complex.  With a framework approach I would have to spend more time building join tables, etc. but might end up with better performance.  So far it seems processwire will be great for this.  I was a little concerned with scaling as the # of joins seems like it would be high with the table per field setup, but I've read the forum posts on that and feel good about it overall.  The data section is probably ~800 pages or so highly intertwined pages and then some articles and other posts using some of the main categories that would be in the ~4000 page range and growing.

The ecommerce part, I considered using foxycart and have that setup in my current demo.  I'm ok with that, although I've also thought about pushing that off to a 3rd party.  The problem is how related the content part of the site is with some aspects of the store.  So it'd have to be a ecommerce app with an API if we go offsite.  But for our purposes foxycart will probably be fine and that keeps the store product data integrated into the site as a whole.

-- The one question/issue I have is that I'd really like to split the store off into a subdomain - store and from what I've read into multisites - there isn't a great option besides the services framework that exposes the site API to an "external" site.  Many of my site connections could be written into the database (i.e. at save take the page connections referenced and write them as html into this field) - in other words they are not changed extremely often once setup.  So using the external api approach to communicate between the two would be fine.  Would this work for live relationships so to speak - in other words, in the template say show me site1->page->title where that page = this pages category - or would that be too slow or too cumbersome trying to hit multiple databases?  Does that make sense?

The biggest concern I have is for the community part.  And my concern is the level of custom coding that this part would require and if this is better served by laravel or something along those lines instead of digging deeper into processwire.  On my current site I've built many of these features inside of drupal which became hard to manage and made upgrades of core next to impossible - I'd like to avoid this situation in the future as much as possible.  

For this we need social logins (which it seems someone is close to doing this with hybridauth), a subscription membership (which we could do some sort of recurly/chargify integration - or straight stripe - but this is done in laravel and would have to built up in pw), we need custom user roles and permissions to submit certain types of products, need certain friend type connections mostly based around where the person trained, etc.  Then we need a practitioner directory - google maps, global searching, and a print layout so use of country/state/province/city data.

I'd also like to split the community functions off into a subdomain as well - so my question above about sharing data between with an "external" api and how to do that would come into play - also about sessions between the sites and pw sessions data (this is over my head) - basically sharing logins between sites.

Long story short, the site will be pretty custom overall and nothing from my point of view is a perfect fit.  What I'm concerned with is what I did to drupal - stretch a system beyond what it was intended and have a maintenance nightmare.  Processwire is definitely more of a framework than drupal is in some regards, but a framework framework would have no assumptions which has benefits and costs.

I don't see many social networking type sites that have been done in pw, nor heavier ecommerce sites, so I'm curious if I should try to go that route and what you think about splitting the site and sharing data with the services framework behind the scenes.  Or what you would think about using pw for the content data and trying to build something entirely around it and integrating the user model between pw and what I would build in a framework.

Hope this isn't too confusing (I know it is for me)...  I've been very impressed reading the forums, so I trust peoples opinions on what might work.   I'd appreciate any feedback you can offer about the project and if I go the pw route, I'm sure I'll have more questions. If you need any more details, please do not hesitate to ask.



  • Like 1
Link to comment
Share on other sites

Welcome to the forum!

I've never done anything similar so I'm probably not the best to give advice. But in my understanding, if you will have to write custom code anyway, pw would be a perfect fit, at least as much as any other framework because it will give you all the flexibility while providing some great time savers. If you need something that pw doesn't have but you find on another framework or library you can always integrate it. We usually advice people to look for out-of-the-box solutions when they want to do this kind of large projects without wanting to write most of the code themselves but that doesn't seem to be your case. For what you wrote I suspect you will have fun with pw.

  • Like 3
Link to comment
Share on other sites

Thanks for the feedback diogo, I'm continuing to explore pw.  I'd personally love to use as many out of the box solutions as I can, but there aren't too many that are a good fit due to the nature of the site.  

I was reading last night that pw3 has some more finite plans to include multi-site features with a multi-site api - which would completely meet our needs.  For now, I'll have to continue exploring the services module to see if splitting the site is worth the hassle.

Link to comment
Share on other sites

I think PW could do this - it would be a lot of work but the result would fit your needs exactly.

The trouble with the sort of site you describe is that it is difficult to find a one-size-fits-all solution that does not mean some heavy duty compromises somewhere.

If you do want a site that has huge multiple needs, you may want to look at Liferay.

It is a java solution that allows multiple communities, each with their own sites (public and/or private), commerce, multiple domains, full business logic, and a ton of other stuff. It is a true portal solution.

However, it is pretty scary! (And huge! The install is more than a gig). There is both a paid-for EE version and a community version - the latter is  more bleeding edge and is amazingly well supported through the forums. The chaps there are much like those on here - go out of their way for people.

It is very customizable, but I would strongly advise getting a Liferay geek on board if you are going to use it - it will save you a lot of messing around.

My prefered solution, if you have the time and manpower, would be to go very bespoke using PW as a starting point.

Link to comment
Share on other sites

Thanks for the input Joss!  I've looked at liferay previously and while at first it seemed like it would meet many of my needs it eventually seemed far too cumbersome to make unique to our site.  I was also worried about not being able to keep it upgraded the more your customized it - which is where I ended up with drupal and what I would love to avoid in as much as possible.  And then, discussions like the one that follow this article  - http://liferaycms.wordpress.com/2011/03/09/liferay-hate-love-learn/ - further confirm my hunches towards complexity and maintainability.

I agree with you that it would be some work to get pw to meet our needs, but less I imagine compared to starting from scratch.  I do wish the multi site features were already in there as that would meet my needs very well, but the services module should be close if I can understand the best way to integrate the sites - like evening cron jobs that would create data links or doing it at submission, etc.

I'll have some more time this weekend to explore it further and try to integrate some user features that I didn't have time to mess with last weekend and then I should be able to decide whether or not to move forward.  I hope that some of the functions that I'll need, recurring billing, etc. I could write in a way to give back to the community - but I have some learning to do to make that happen.

Thanks again for the suggestions.

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...