Should Drupal have a fully pre-packaged usable out of box product for social networking website to “compete” with BuddyPress?

Events happening in the community are now at Drupal community events on www.drupal.org.
JBI's picture

We are now witnessing on the one hand the creation of more complex sites using WordPress with integration with social web and BuddyPress (a fully functional community website installation profile), and on the other hand a much more user friendly version 7 of Drupal and lots of pre-packaged products as OpenAtrium and OpenPublish.

And by this post I’m asking the Drupal community what can be our response to BudyPress ?
Sould we build a networking website distribution ?

For this session or panel discution I would like to use the result of several "focus groups" :

The first one being http://lacantine.org/events/remix-la-cantine-wordpress-drupal
Next Tuesday, with two other web2.0 consultants of the WordPress' world, I am holding this meeting. We wish to facilitate the exchange between "two worlds": Drupal, seen as more complex and used by geeks; WordPress, seen as more flexible for publishers.

This is common belief but the boundaries are moving.

Speakers confirmed:
Media: Exchange between Rue89.com (Drupal) and Quebec89 (WP) very similar website at three years interval.
Online Community: Mars 22 and La Netscouade. Facebook-like community website one in BuddyPress the other in Drupal.

The subject is not new

There has been several threads already
http://groups.drupal.org/node/21837
http://groups.drupal.org/node/16669
http://groups.drupal.org/node/17775
http://groups.drupal.org/node/21837

A synthesis is to be done.

Looking for co-presenters

Comments

Sure

michelle's picture

... If you're volunteering. ;)

All flippancy aside, this isn't a new idea. We've been tossing this around for at least the 3 years I've been involved in Drupal social networking. There was even a GSOC project for it: http://drupal.org/project/dsnf_install . I started trying to do it with my ShellSN but trying to maintain that just got to be too much and it never turned into something people could just download and install.

The fact is that this is a huge project and unlikely to get done unless there's money involved. It's too much for one volunteer to do. We're talking about selecting and keeping up to date with around 100 modules plus all the customizations that need to be done. It needs a company willing to fund it.

Maybe Acquia will have success... http://drupalgardens.com

Michelle

There's already been success

wolfraem's picture

A few team members from OpenBand/M.C. Dean discussed a Drupal-based social network (distributed enterprise communication platform) last March in DC:

http://dc2009.drupalcon.org/session/powering-collaboration-distributed-e...

The biggest roadblock to keeping a profile maintained is not only the time to make sure updates to the 100-150 modules don't blow the system up (because many people that use the profile will probably leave "check for updates automatically" on and update when D.O tells them, incompatibilities or not), but also the expertise needed to manage all of the hardware and systems deeper in the stack.

A simple "social network" is achievable through OG, blogs and a more-powerful user profile and Panels to pull it all together. However, for things like file sharing, chat, mail messaging, search, openID provisions, etc., the system needs dedicated VMs or actual servers and the know-how to maintain a chat server, Solr server, file server, mail server... it requires a non-trivial amount of ability (and cash) for someone to stand up and maintain even a modestly powerful system. And Drupal doesn't help with some of its performance quirks that make large-scale non-cached content serving a difficult task.

Very intersting feedback

JBI's picture

It could be very usefull. It could be interesting to share your experiences.
I'm sorry was not able to attend to your session in DC.
I'm looking at your video and reading your blog.
What are the update in 2010 ?

I would love to work with you

JBI's picture

@michelle

I would be very interested to work with you on the brainstorming about "ready to use Drupal product or service to do community website". We both agree having an easy to set up social networking template would really help Drupal.

It would be interesting to start-up with the knowledge you already have.
http://shellmultimedia.com/tutorials/rebuilding-coulee-region-online-dru...

Would be also helpful to build link's directory to store and rate different resources like "functionality to your forum with contribs" http://drupal.org/node/227121

Also I would like to find co-speaker and panelist about my session proposal about community website ready to use at DrupalCon SF.
http://sf2010.drupal.org/conference/sessions/there-need-fully-functional...

What do you think?

Jean-Baptiste Ingold
Sype ingoldjb
http://twitter.com/jbingold

PS I was unable to send anything with your contact form

.

michelle's picture

I got your message via my contact form but I'll answer here since you posted it here, too.

Sorry, but I just don't have time for that right now. I spent a couple of years writing tutorials and modules and such and neglecting my own site and now I've swung the other way and am focusing my time on getting my site done. I expect to have the site done enough that I can focus more on giving back by late Spring / early Summer.

Michelle

Anyone wanting to work with me on that ?

JBI's picture

We had more than 100 people interested in comparing Drupal social networking and buddyPress.
http://jbingold.com/content/rencontre-des-deux-mondes-wordpress-et-drupal (a Drupal garden downloaded)

If else where we had also other meeting we could gather quite a loot of market information.

I will liaise with Acquia but from what I have seen so far from DrupalGarden is something competing with WordPress.com
- A service.
- A blogging plateform.

If it went further with the social networking facilities it could offer an open source alternative with Ning.com but it seems to me unlikely.

DrupalGardens is not a

dries's picture

DrupalGardens is not a blogging platform. It is meant to be much more than a blogging platform, and it already is.

Blogging is just a part of

Ivo.Radulovski's picture

Blogging is just a part of DrupalGardens. Since it can have different content types, fields and other features, it can be what you want it to be up to the limits in comparison to a self hosted Drupal website.

-----

Drupal Development by Trio Interactive

Replacing ning.com

mrchristian's picture

hi

ive used ning.com for some time and i dont think it would be hard to replace as its actually not very good. Im working with several hundred groups in London so if you want to carry out surveys or get feedback on social networking Drupal requiremenst we'd be happy to help out. http://artofdigitallondon.ning.com . Thanks Simon http://openmute.org/

Your feedback as ning.com

JBI's picture

Your feedback as ning.com users would be interesting

As consultant I have a presentation about ning as ready to use community website
I have used to "teach" blog and web2.0 things to migrant workers learning to read and write French http://fontaineoroi.ning.com

I remember also having an exchange about South Wales's Theater's Drupal Shop that keept the existing ning plateform to power their community website.

We could create a list of feature that ning.com have and perhaps map it to Drupal modules or feature
The type of requirement you need for ning and for Drupal.

Hey All

CraftyDevon's picture

I agree with Michelle,
While I am attempting to work towards providing a Social Networking site that provides step-by-step instructions on how to create a nice, solid social network; the one-man approach is growing ever harder.

While I have seen some great social networks built on Drupal, other systems (including Joomla!) are a few steps ahead on providing social network "starter kits". I would love to see a solid module set (grouped into one package), which delivered the building blocks- User Profiles with Comments, Bios, Image Galleries, Video Integration, etc. While some of that can be achieved easily, it can require quite a bit of tweaking.

kyle_mathews's picture

I'm creating an social networking install profile for education -- read more here: http://kyle.mathews2000.com/blog/2010/02/05/need-alpha-testers-eduglu-ne...

It will provide many of the social networking features Drupal provides out-of-the-box. It is focused on education -- so it won't be a generic package like Buddypress -- but many of the ideas/code might be useful to other efforts.

Kyle Mathews

Still, off topic

yoroy's picture

[removed reference to attacks that have been unpublished]

The question was and still is if you think Drupal should have a fully pre-packaged usable out of box product for social networking a la Buddypress.

Which to me sounds like an excellenten candidate for a Drupal 8 product on top of the Drupal 8 framework. I do wonder what people interested in this topic think of this blog post: http://webschuur.com/publications/blogs/2010-02-10-will_drupal_become_th...

@yoroy, no personal attacks

deltab's picture

@yoroy, no personal attacks from my side, as i already said, i wish him the best, and willing to assist should he learn from his mistakes. I tried to use his previous module, it did not work, and thought to point it out - no ill will intended or meant.

What I think is, buddypress is good, drupal can be better, and should I be doing something to get there, let me know.

@all Let's move on @yory I

JBI's picture

@all Let's move on

@yory I read the post inded http://webschuur.com/publications/blogs/2010-02-10-will_drupal_become_th...

"If you want to build a community in the sense of “putting people in the centre”, you will have trough a lot more development, and far more often you “will be on your own”; the work done and the manuals or posts explaining how to build your community features. And seeing the amount of editorial sites being developed compared to community, I think this will only become worse. "

Also read @acquia http://acquia.com/blog/features-used-80-social-sites with quite a bit of feedback. I send an email to Linea Rowe if could work together on that.

Who is able to works on what. Should we list other references ? Find a place to organize them.

You can't have it

crea's picture

You can't have "a fully pre-packaged usable out of box product for social networking website" because "social networking website" is unclear term. It's too broad. Any drupal site can be made "social networking" in one or another way just by downloading and enabling couple of modules. So because you can't define the term, you can't prepackage it.

Look past semantics

matt.lutze's picture

crea,

While you're correct that "social networking" is a broad term, JBI was not being unreasonable in asking the question as he framed it. Broad is not equal to undefinable.

Most people on this board have an archetype for "social networking". Further, the discussion was framed to look at ways "to 'compete' with BuddyPress" specifically, so one could infer "social networking" is being defined by that comparison.

Seems the purpose of this discussion was to

  1. Define what a Drupal "social networking" install profile could be
  2. Identify what would be included (to, arguably, compete with or exceed the BuddyPress features)
  3. Determine if such a configuration would be sustainable / maintainable.

The existence of such an inclusive definition is indeed the reason to have discussions like this, so cheers for highlighting the impetus for the post :-)

Then it should be called like "BuddyPress in Drupal" ? :)

crea's picture

If you define "social networking" as "has same features as BuddyPress" then you are going to create lot of confusion, cause the term by itself is far more broader then any pre-packaged solution could provide ;)

We're getting off topic here,

matt.lutze's picture

We're getting off topic here, but no, not "has the same features." Rather, the reader will narrow their schema for "social network" with the contextual reference "BuddyPress", in a similar way to how a reader defines words he/she doesn't know by framing them with the words preceding and succeeding the words in question.

The most important I thing is "out of the box"

JBI's picture

As a product you would install (AKA installation profil)
- BuddyPress
"Up and running in six minutes flat."

Simplified Installation

We’ve worked hard to make BuddyPress 1.2 as simple to install as possible. Previous versions required manual installation steps, and a sometimes tough WordPress MU installation. With this version of BuddyPress you can be up and running in three simple steps that even my Mom would have no trouble with!

The main feater according to their website : http://buddypress.org/

Activity Streams
Global, personal and group activity streams with threaded commenting, direct posting, favoriting and @mentions. All with full RSS feed and email notification support.

Friend Connections
Let your users make connections so they can track the activity of others, or filter on only those users they care about the most.

WordPress Blogging
Start a blog built on the best blogging software in the world. Even allow each of your users to start their own full powered WordPress blog. Track new posts and comments across your site.

Extended Profiles
Fully editable profile fields allow you to define the fields users can fill in to describe themselves. Tailor profile fields to suit your audience.

Private Messaging
Private messaging will allow your users to talk to each other directly, and in private. Not just limited to one on one discussions, your users can send messages to multiple recipients.
Need a feature not listed?

Extensible Groups
Powerful public, private or hidden groups allow your users to break the discussion down into specific topics. Extend groups with your own custom features using the group extension API.

Discussion Forums
Full powered discussion forums built directly into groups allow for more conventional in-depth conversations.
Know WordPress?

If you’re a WordPress plugin or theme developer then you already know the fundamentals of BuddyPress. You should be able to start building and designing for BuddyPress with very little extra work.

Theme designers might find the "Building a BuddyPress child theme" guide helpful, and plugin developers should take a look at the "Building a Custom BuddyPress Component".

BuddyPress is infinitely extensible, just like WordPress. In fact, it’s a WordPress plugin so you can build or use WordPress plugins to extend or run alongside BuddyPress.

There are many BuddyPress plugins available to use ranging from Group Documents, Media Links all the way to OpenID or LDAP login support. View all plugins

To compare with a SAS as ning

JBI's picture

description http://about.ning.com/product/index.php

Product

Branding & Visual Design Freedom

Choose from one of 50 distinct and unique themes or create your own design with custom CSS. Add tabs and sub-tabs to specific pages and external links via the Tab Manager feature.

Unique Member Profiles

Define your own profile questions for incoming members. Members can customize their profile pages with their own design, choice of widgets and profile applications. Customize advanced member search based on your Ning Network's unique profile questions, including location.

Moderation & Privacy

Choose to make your Ning Network public or private for members only. Moderate members before they join. Moderate photos, videos, groups, chat and events before they're posted.

Invite and Share

Every Ning Network comes with a rich invitation engine, with full Web address book and .csv file importing, for you and members to invite new members. Cross post Status updates on Twitter, and share content across the Internet with built in tools.

Latest Activity

A real-time, dynamic activity feed of everything happening across your Ning Network including status updates from members.

RSS Feeds In and RSS Out

Pull in one or more RSS feeds from your blog, Web site or news source for an ongoing stream of information into your Ning Network. All features for public Ning Networks are also available automatically via RSS.

Photos and Videos

Enable your members to upload and share photos and videos. Automatically present your members with the option to embed your Ning Network's branded photo slideshows or video players anywhere on the Web and link back to your Ning Network.

Chat

Enable your members to see who's online and chat in real-time with the persistent chat feature across the bottom of your Ning Network or pop it out into its own window.

Groups

Enable groups on your Ning Network with images, membership, comments and a discussion forum.

Discussion Forum

Add a rich single or multi-threaded discussion forum with categories, photos and attachments. Limit forum topic creation to you or open it up to all of your members.

Blogs for Every Member

Enable blogging for every member of your Ning Network. Display everyone's blog posts as a tab or just feature specific blog posts on your Ning Network's Main Page.

Events

Organize events and keep track of who's attending. Limit event creation to you or open it up to all of your members.

Ning Apps

Further customize the experience on your Ning Network with additional features.

So, as a profile...

matt.lutze's picture

You'd be looking to provide at least:

  • Connections:
    • Friend Connections
    • Extended Profiles / Unique Member Profiles
    • Extrasite content access and membership invitations (Invite and Share)
    • (Extensible) Groups
    • Event listings / management
  • Privacy and design customization (not so sure about the whole "customizable out the wazoo" approach, see MySpace vs. Facebook)
  • Activity monitoring:
    • Activity Streams
    • Latest Activity
    • RSS Feeds In and RSS Out
  • Communication:
    • Blogging
    • Real-time messaging (Chat)
    • async messaging (Private messages)?
    • Forums
    • Photo and Video stuff

A lot of that would use pretty standard core modules. Organic Groups,XMPP Framework, Activity, and the MediaField/ImageField or File Framework options would provide further support for multimedia stuff. I'm kinda partial to File Framework as it's all-in-one for that.

The bigger challenge may be having the resources to run a site with strong enough performance and building/controlling the UI so interaction with the site was enjoyable.

There are already modules out

bflora's picture

There are already modules out there that do all of this social networking stuff.

The problem is that few of them are that slick and polished.

In theory, I should be able to download OG, UR, Private MSG, Activity, and facebook-style Status, and be good to go.

In practice configuring and setting up these modules is too hard and complicated for anyone but a developer to do and the UIs they offer lag far behind what an actual consumer would expect.

Examples:
Compare the process of following someone on Twitter (one click) to following someone with UR (you click a link, then have to confirm it on a second page. FAIL).
Theming the output of the Activity module to mimic something like Facebook appears either a) impossible or b) so labor-intensive and opaque as to be practically impossible.

If you've got a developer and $10k, you can build a decent social network in Drupal 6, something that MIGHT be as good as what Ning offers.

Rather than some out of the box "social network" module. I'd rather see the existing modules improved to the point of being useable for consumer web applications.

And unfortunately,

matt.lutze's picture

And unfortunately, "...improved to the point of being useable..." generally = $$.

I hear ya. But I have to

bflora's picture

I hear ya. But I have to point out that this isn't true for some other open source projects Cough Wordpress cough where plug-in developers do produce stuff that is consumer ready out of the box.

I feel a bit like with the Drupal culture, folks release stuff 80% done in the hopes that someone will then pay then to finish it for their specific project.

That wouldn't fly with Wordpress because there's a lot more competition. If you make an 80% finished sitemaps module, or one that does work for sites of even moderate size (I'm looking at you xml_sitemaps 6.1.x!), someone else will simply come along with their own sitemaps module that's 100% done and works fine for large sites. With Drupal, people seem hesitant to double up on efforts, meanwhile, there's no way to rate modules here on site, so it's near impossible to tell which ones are useable out of box (Views) vs. requiring so much work to make useable as to be practically unusable (Activity).

So I hear you. I just wish it wasn't the case. I run a Drupal site that gets about 100,000 uniques/month and has about 30,000 nodes. People ask me all the time if they should use Drupal for their own projects. I ask them if they are web developers or have the money to hire one. If the answer to both is "no" I tell them to look elsewhere. Drupal is, for better or worse, for devs.

Excuse me?

michelle's picture

I feel a bit like with the Drupal culture, folks release stuff 80% done in the hopes that someone will then pay then to finish it for their specific project.

As a maintainer, I find this very offensive. Most modules are contributed either because they were developed for a client and they wanted to share it back or because someone needed a module for themselves, wrote it, and shared it back. It would be extremely rare to find someone who did a project part way and then thought, "I think I'll put this out for the public and see if someone will pay me to finish it". Give me a break.

Do people ask for donations? Sure. Nothing wrong with that. If you've built a module to fit your needs and now have people using it and asking for more features and support and you'd like a little financial help, there's nothing wrong with that. Not likely you'll get much; even extremely popular modules rarely get much for donations. But that's a completely different attitude from what you're implying.

I don't know how the WP model works as I'm not in their community. But Drupal works with people donating a whole lot of their time and that often means things aren't quite as polished and quality varies on the skill and free time of the maintainer. The way to change that is to pitch in and help, not accuse those who are giving back for free of being mercenary.

Michelle

I definitely understand why

morisy's picture

I definitely understand why you're offended, but the parent poster's writing about a perception that isn't uncommon to new Drupallers. Maybe it's a problem with the presentation on Drupal.org: Once an early node catches the "namespace," it's usually the first thing that people see. Lullabot (and I'm sure others) have talked about this problem in their podcast. So unless you know how to look, a bunch of half-baked or abandoned modules do appear, not because of what the parent poster says, but because the author either moved on, a better solution arose, or the work was simply put into a duplicative module that had a less Google-able name,etc.

Web guy, SpareChangeNews.net
Twitter: @morisy / @sparechangenews

.

michelle's picture

I agree that there are far too many broken modules out there. I disagree with the premise that it is because people are using the drupal repository as a way to con people into paying them to finish their projects. The problem is that not everyone who writes a module has the skills and time needed to take it all the way to a fully polished professional application.

Michelle

100% agreed. I've never run

morisy's picture

100% agreed. I've never run into an "extortion" attempt here, and your earlier point bears repeating: Any such attempt wouldn't be profitable enough to be worthwhile. Module development/maintenance just isn't easy!

Web guy, SpareChangeNews.net
Twitter: @morisy / @sparechangenews

I think the problem is deeper than that

matthewv789's picture

It's not really that new modules get too much attention, it's the lack of anything resembling useful documentation. Trying to figure out how to do even the simplest things is an utterly maddening experience in Drupal, because endless Google searches all lead to the same void in terms of useful answers.

I could make a list of many other usability problems with Drupal and its modules, and talk about how philosophically the Drupal community is more like Linux to WordPress' Mac (and Joomla's Windows 3.1) in being unconcerned with usability, but ultimately, from a site developer perspective, it really boils down to poor (or non-existent) documentation. The combination gives Drupal a very "alpha" quality feel (to Joomla's "beta" and WordPress' "stable, polished, production release"), despite the overall quality and maturity of the core code.

Telling may be a comment earlier in this very thread:
"The fact is that this is a huge project and unlikely to get done unless there's money involved. It's too much for one volunteer to do. We're talking about selecting and keeping up to date with around 100 modules plus all the customizations that need to be done. It needs a company willing to fund it."

Doesn't that strike anyone as possibly an indication that Drupal itself is just too complicated (or at least abstract or poorly-documented) for its own good? If some core contribs, the very experts in Drupal, find the thought of implementing an immediately usable, packaged "social networking" distribution based on Drupal to be too daunting, what hope is there for ordinary website developers to use Drupal to create such a site on their own?

.

michelle's picture

If some core contribs, the very experts in Drupal, find the thought of implementing an immediately usable, packaged "social networking" distribution based on Drupal to be too daunting, what hope is there for ordinary website developers to use Drupal to create such a site on their own?

Actually, that's easier. I have a SN site and I keep up with the modules that I use and do just fine. That's the key there. That I use. It's my site, my needs, and tailored to those needs.

A distro needs to be general enough to cover the needs of many different sites. What is SN to one isn't to another. There are many modules that should be in any such distro as a no brainer that I don't use. Like User Titles, User Points, User Badges... For me to make a distro, I would need to keep up with those among many others. And keeping up with modules that you are not actively using is a lot harder than keeping up with what makes your own site tick. Altruism only goes so far.

Michelle

That's totally fair. I am

bflora's picture

That's totally fair. I am writing as someone who consumes, uses, and files bug reports on modules, whereas you are a maintainer. Different perspectives.

It wouldn't be right to name names, but numerous times I've read the description of what a module does, downloaded it, enabled it, read the documentation, and played around with it only to learn that it does not actually do what it says it does. Then I send a note to the maintainer asking for confirmation of this fact and whether I should file a bug report or whatnot. On more than a few occasions, I've heard that the maintainer could finish or fix that feature if I was willing to pay for the work. 50% of the time, I pay for the work. 50% of the time, I look for another solution.

Now, I completely understand people are donating their time and that things aren't always going to be super polished for that reason. And I understand folks wanting to get paid for their time, but Drupal, and these modules bill itself as being usable by folks without a development background, and that's just not the case more often than not...unless you're willing to kick in some money "to finish the last mile."

I don't think people are being mercenary, they're just being practical.

I realize this is a bit off-topic. Apologies for the tangent.

Different perspectives

michelle's picture

Peoples' definition of "usable" vary. I try to be clear that my Advanced Profile Kit is not plug and play and is meant for advanced users and I still get people who've been using Drupal for 2 days complaining that it doesn't do exactly what they need out of the box. I would love for it to be a perfect module with all the polish and functionality of advanced social networking sites that they can just turn on and have Facebook or whatever. But the fact is that it works for me and my needs and anything I do above and beyond that is donating my time to the masses. While I'm willing to do that to some extent, there are limits to how much of my time I'm going to give away. So if I tell someone they can hire me to implement some feature they think should be in it, I'm not trying to con people into finishing the module for me; I'm trying to distribute the cost of building the module to the people that are using it rather than shouldering the total cost myself.

Having more polished modules in contrib is an excellent goal. There are many hobbyists out there who have neither the skills nor the money to help out and it would be great if what they get for free was totally ready for their needs. In the real world, though, someone needs to do the work and it can't always be the person who started the module. Even merlinofchaos, for all his amazing skill, had help making the Views UI what it is. People need to come together and offer help for the contrib they use and, yes, sometimes money if that's what it takes.

Michelle

The good and bad of this scenario

pkcho's picture

After having spent the last year diving into Drupal head first, the dynamic you mention is clear. Being open source is great for the wealth of options it provides, at a great price -- FREE! but, if you're a noob and a non-developer, you pay for it in TIME and RESEARCH. having played around with Joomla a little the polish was there b/c people were charging for 'polished' modules, that platform's flexibility and power falls way short of Drupals.

In light of this, my greatest wish would be that contributors would provide clearer documentation for their modules (yes, this takes time and money as well). At least covering these basics: install, set up, working example(s) how to and live demo, (bonuses) how to go about theming or customizing key aspects for your site (referencing css, tpl files and views).

Michelle, you have done a lot of good work with the Advance Profile Kit and have provided plenty of documentation and even a couple of profile imports, which have helped me tremendously. I wish more developers did this.

I don't know how many times (and how many hours) I've spent figuring something out because there was next to ZERO documentation. This would at least help users along as they attempt to piece together their OWN social networking site.

I'd rather see the existing

yoroy's picture

I'd rather see the existing modules improved to the point of being useable for consumer web applications.

Isn't that exactly what this excercise would give us? Create an install profile that gives you a sexy little social dashboard. Contribute improvements back to the modules used.

That would be a beneficial

matt.lutze's picture

That would be a beneficial result indeed. I think the above commenter's point was that the modules we'd use to build the install profile aren't sexy yet, but if we can just get them to lose the dorky glasses and let down their hair in a snappy high school montage, they just might win homecoming queen yet!

Sounds like a list of potential modules is needed for an AoA. Any takers? :-)

LOL!

michelle's picture

I think the problem is that most modules are maintained by one person. There are exceptions, of course, but generally there's one person who writes a module for himself or a client and then contributes it back. One person generally isn't an expert at PHP and JS and UI design. Of course there are exceptions to that as well but, in general, having someone who is a JS/UI expert come along and help out with polishing the module would make them a lot better.

Michelle

UI is best left to the theme

matt.lutze's picture

For an install profile to really kick it, I think we'd need to have a few "use these!" themes to go with it. UI designed into modules is cool and all, but almost everything a buddylist/fb/whatever clone Drupal package would need, could/should be designed in-theme. Too much of the user experience is tied to the appearance and navigation of the interface that any module designed in a vacuum is going to seem "unusable." Better to choose and use either modules that completely forego a built-in interface, or those with only the lightest of pre-packaged designs.

Sure , it could be designed

bflora's picture

Sure , it could be designed in theme. But why should it? Theming anything in Drupal is really, really, really hard. The skill level of the average module developer is way above the average module downloader. Why not help out a bit by finishing off a few elements instead of treating every module as an API that will need to be themed yet ANOTHER developer hired by the poor schmuck who heard Drupal would let him "build a social network" if he downloaded all these modules?

It should be designed in the

matt.lutze's picture

It should be designed in the theme because the best a module's UI can ever be is awesome in the theme in which the developer developed it. Depending on that theme, the module UI may look great in a bunch of contrib. themes, or may look like junk (even though in its native environment it was fine).

Every part of a site eventually needs be tweaked or skinned to create a unified, cogent, purposeful experience. Frankly, I'd rather see module UI's lighter and more open so its even easier, on the whole, to theme them, or at least so they rely better on the standard theme components. The module developer should focus on making the module work really well on the back-side, and designers should work on making the modules work really well on the front-side. It's pretty silly to suggest all coders should also be industrial designers.

Well yes, there's that and

yoroy's picture

Well yes, there's that and the 'assume nothing' approach applied to feature and ui design of most modules (Framework style).
If we want to build a targetted solution, we can make assumptions about usage and features (Application style).

I'm pretty confident a good part of those changes would still be applicable to the base modules.

-- edit: responding to Michelle here

I think there's a middle

bflora's picture

I think there's a middle ground in there.

For instance with User Relationships. I don't see how the current methods for following people are defensible from a UI standpoint. If those guys were to say "Gosh, Twitter's pretty popular. Here's how they let people follow people. We should just copy that." I doubt many people would complain. The code would all be there in case a developer wanted to do something different, but out of box, it'd be consumer-ready.

The danger of leaving this stuff up to the theme layer is that.....well have you spent much time theming a Drupal site? Theming a specific unstyled view? It's about as hard as it gets. So sure, the developers can leave that up to the guys making the sites: "Fix the UI yourselves when theming!" but that doesn't really help too much.

Yes, and I am interested in

yoroy's picture

Yes, and I am interested in that middle ground. The code can be as generic and frameworky as possible (I don't code :-). Then, I'd agree that giving that an 'opiniated' User Interface that chooses to expose only say, 20% of the feature set in a Twitter-style follow- widget would make things more approachable.

Provide sane defaults (overridable/extensible/yesyes) instead of blank canvases to build your own. And no, it's not just in the theme, at least not until core provides more betta widgets to theme.

What happens is that the UI in contrib is an unfinished work that exposes the implementation, but at least all of it… :)

And that's not the developers fault either. Interaction and interface design are other skills. We need more application designers to group, chunk, hide, reveal all that power under the hood of the contrib cloud.

A social tool would be an awesome testbed for this. Have a vision and make explicit, focussed assumptions on a feature set to inform/stress-test the framework. Can't imagine both sides not benefiting from such an excursion.

Drupal Dating Service

spyderboy's picture

It kinda feels like Drupal could benefit from some matchmaking social features. We ( http://wildpockets.com ) are using Drupal as a base for our community, and get a lot of inspiration from the Drupal community experience. We are working to build a community of 3d game developers, and we face very similar challenges. Few individual people possess all the skills it takes to create a high quality game in 3d (modeling, scripting, game design). One approach we are considering is thinking of tying in user profiles, project pages, and our asset gallery (scripts, models, games). Imagine as you start work on a project you are asked to semantically tag it. Based on these tags you are presented with similar minded people, projects and assets that you might find useful or inspirational in your efforts... This approach might not only help a PHP Dev find JS/UI or theming expert, but it might also help in reducing the amount of redundant effort in the community. A developer starting an image slideshow module should instantly discover, by golly, there are already 20 of them well underway.

Pain in life is necessary. Suffering is optional.

Dude...

matt.lutze's picture

You guys have done a fine job with that site, nice job. Ditto to the analogy; the "finding novel ways to get developers and themers together" topic has been bludgeoned for a number of years in countless groups with little more than hot air as a result, so cheers for actually taking that next step and trying it.

My concern with that is that

bflora's picture

My concern with that is that any install profile would make too many assumptions about what the developer/publisher wants to do with their application.

I believe the pieces all exist right now and that it's not too hard to download them and enable them on a site. The problem is just that few of the pieces are truly ready for prime time out of the box.

But surely to hark back to

Gerard McGarry's picture

But surely to hark back to your earlier post about things being usable out of the box - some assumptions would be necessary in order to create something that's usable by 90% of consumer Drupal users?

And as you said yourself - WordPress would have a more fully realised solution in place by now. In fact, it does. It's got BuddyPress.

I picked up upon Drupal because I heard it had all the tools I needed to set up a social site. Unfortunately, the modules are there, but the synergy between them isn't. But I'm a big fan of module devels coming together and creating the definitive versions - the definitive 'friend'/relationships module, the definitive 'actions' module, user profiles right out of the box. Surely a handful of these module developers can get together and spec out a great set of 'social' modules?

And some form of sample templates would be ideal. What the hell if they're based on a set of assumptions - they'd be a starting point for themers(!) and you might find that they meet the needs of 90% of the users anyway...

Sample templates?

matt.lutze's picture

Could you expand on what you mean by "sample templates"?

I'm talking about tpl.php

Gerard McGarry's picture

I'm talking about tpl.php files that would be bundled with the modules, plus some CSS that would give some basic level of styling to show what's possible with the module.

As someone with a fair grasp of Drupal, it's infinitely helpful whenever someone shows you what's possible, what variables are available to include or exclude from the theme. Whether that's an example view, a tpl.php file or whatever, it helps reducing the build time. And, one would assume, the module developers have a fair idea of what functionality they're exposing to the theme developer.

Bingo

yelvington's picture

any install profile would make too many assumptions about what the developer/publisher wants to do with their application.

This has been the problem with every install profile I've examined. I wind up with an undocumented configuration that I can't figure out how to disassemble and rearrange.

If I were buying a commercial product, that would be expected -- "this is how it works, take it or leave it." But the attraction of Drupal has been that we can make it work exactly as we want.

So we wind up walking away from all of the install profiles and building from scratch.

The one exception to this pattern is Pressflow, which isn't an install profile so much as it's a set of preapplied and tested performance patches. We use that as our base.

And it's so much work to actually write and test an install profile that we don't do it that way. All our sites are cloned from an installed and functional "base" site on a dev box.

Agreed.

bflora's picture

At Windy Citizen we're now doing something similar, working from our own "base" of Drupal code: Pressflow, a few dozen contrib modules (some heavily patched), plus a handful of custom modules my team has written. When I started the business with $0 in my pocket, I was very much at the mercy of the contrib maintainers for better or worse, but a year later I was able to hire an ad sales rep which 6 months later let me hire a development team, which is letting us get close to making Drupal do things normal consumers expect, like one-click following.

I do think the modules exist to do all the Ning-ish stuff people want them to do, they could just use a few Drupal-camp code sprints to finish them off.

Documentation & Patterns

SiteMaster.ServeLime.com's picture

Install Profiles
Surely the answer is PROPER documentation for Install Profiles?

Design Patterns
These patterns generally span across multiple modules, to implement specific solutions (e.g. Publishing Approval)
I find in general that one has to delve a lot to find these for setting up solutions in Drupal.
I see a real need for a Design Patterns section in the online Knowledge Base.
This would help all of us, newbie and experienced.
(Hmmm. Maybe this should be a topic on its own...)

Emile Botha
Entrepreneurship is a journey to a fulfilled life - make it so.

…any install profile would

yoroy's picture

…any install profile would make too many assumptions about what the developer/publisher wants to do with their application.

This has been the problem with every install profile I've examined. I wind up with an undocumented configuration that I can't figure out how to disassemble and rearrange.

Isn't the idea of install profiles to make explicit assumptions? The generic box of legos is core and contrib itself, no? but if install profiles are too much of a hassle, that's not good news. To have stuff work out of the box you have to make decisions à la "this is how it works, take it or leave it". I guess it's all about managing expectations; do you expect a targetted framework to build your version of Ning/Twitter/YouTube/etc. Or a functional application, ready to roll straight out of box.

(excellent discussion so far here, thanks all)

Flexibility vs Canned

SiteMaster.ServeLime.com's picture

I agree
The popularity of e.g. Joomla, Wordpress arises from the fact that there are a massive amount of canned-functionality add-ons.
These may not be framework-extensions, but give one what is needed - install & use.
My impression is that their success arises because of that - its quick & works.

Flexibility is great, but MUST be packaged into Canned Recipes - preferably Install Profiles, or at least Design Patterns

We're dealing with two distinct Drupal user-groups: Coders & Configurators
(Newbies generally start as unexperienced Configurators)
We need to make it easier for both:
- Coders need Script snippets, Code Recipes, TPL/CSS snippets & Design Patterns to guide them
- Configurators need Install Profiles, working TPL/CSS sample files, How-to Recipes & Design Patterns to follow

In the end, we need to focus on providing WORKING solutions that can be implemented RAPIDLY.
"I can do anything" means nothing without that.

Emile Botha
Entrepreneurship is a journey to a fulfilled life - make it so.

This is at the crux of

ithacaindy's picture

This is at the crux of Drupal's lagging behind in usage. Between the coder, who can develop a site, and an enterprise, which can afford to hire a coder, are the millions of users that simply want a site that works and can be extended relatively painlessly. This is the group that Joomla and WordPress are shooting like fish in a barrel. I know Drupal is technically superior to the others. I know Drupal would scale better than the others. But I want a site without being forced to learn how the engine runs or spending the money to put Drupal coders on my payroll.

The argument between

matt.lutze's picture

The argument between framework-focused and product-focused orientation has been rampant in the Drupal community for a while now. Truly, Wordpress has more blogs to its name. Many people want Wordpress's "everyone can use it" appeal, and many people want Drupal to be an even more abstracted framework layer than it already is. Install Profiles was a good attempt, but it seems there'll need to be a lot of good press for a bunch of good profiles before community opinion favors them again.

So for me this comes down to

yoroy's picture

So for me this comes down to which intended audience this social application targets:

  • developers/site builders who want to create a social site by configuring/tweaking a not too-assuming starter-kit of modules.
  • builders/user that want to install and directly use a social site with a specific, pre-configured feature set.

The last couple of comments to me sound like the first option is the more difficult use case?

JBI, which target audience did you originally have in mind here?

Is there any reason we

caschbre's picture

Is there any reason we couldn't work towards providing for both audience types? Some of the work that would be required should overlap both audience types. If we mapped out the steps (and deliverables) to get to an end-point for each, then we could figure out the plan of action to get us there.

What do we want to do next ?

JBI's picture

Who will be there in SanFrancisco ?

Who would like to work on my session ?
http://sf2010.drupal.org/conference/sessions/communitysocial-networking-...
Who voted for it ?
Who would like to share the session with me ?

What I can do right now is to make a spreadsheet of the differents fonctionnalities on comparing :
-Ning
-BuddyPress
-Drupal (using some of the Drupal mapping the last one being the prototype of social functionalities of the new www.Figaro.fr biggest national daily newspaper in France)

Who wants to do other things ?

Usability

Group organizers

Group categories

UX topics

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: