Open Social - social business community software

Open Social is a new Drupal 8 distribution. It's social software for communities and social intranets, similar to the Drupal 7 distribution Commons. Open Social empowers people to effectively collaborate and organize.

Open Social has many features, such as Profiles, Groups, Events, Streams, and Notifications, and is inspired by the Drupal 7-based online community Greenpeace Greenwire, built by GoalGorilla. The Greenwire platform has helped Greenpeace change the face of volunteering and empower thousands of people to become active volunteers and make a difference in the world.

Why Drupal was chosen: 

The social media revolution has already changed modern communications, but mainly in our private lives. The decentralized nature of social software is a huge opportunity for organizations to reinvent the way they communicate and collaborate.

However, organizations are presented with a problem: either they can choose existing social networks like Facebook, Google, etc., which operate outside the reach of your organization and may neglect user rights and data ownership. Or, organizations can choose one of a few closed-source alternatives like Jive, Sharepoint, and others. These proprietary products suffer from vendor lock-in and are not flexible to customize to unique organizational needs. In other words, one size must fit all. With Open Social, organizations get back the control over their software and data.

Drupal has always had a strong presence in social projects. Most Drupal developers have worked on one or more projects with user generated content. Drupal started in 2001 with the Dutch word ‘Dorp’ which means village, a place where people gather. Years later the presence of Drupal in social projects is still large. For example, recently Acquia and Drupal helped save Cisco $400 million (!) USD by moving from Jive to Drupal.

But building good social software is difficult. This is because a social platform exists mainly of user-generated content, and if that user experience isn't right, the platform will not succeed. Social software is also highly interactive and depends a lot on mobile access. And crucial to its success are complex features such as notifications and (aggregated) messaging.

Making great social software takes a lot of time and effort, and isn't something every organization can afford. A Drupal distribution offers the benefit of reusing what has been built before and expanding on that. Open Social provides a basis to build communities, intranets, or social networks without a large investment.

Describe the project (goals, requirements and outcome): 

GoalGorilla was interested in investing in developing a Drupal 8 social network distribution because we had build a custom Drupal 7 solution for Greenpeace. And we could see, how generalizing and modernizing to Drupal 8 could benefit many more organizations.

Goals

Open Social empowers people to effectively collaborate and organize. Replacing traditional intranets, it fuels efficiency and creativity. It supports organizations to innovate bottom-up instead of top-down. The Open Social distribution exists to lay a flexible groundwork to meet these goals. In order to do so the Open Social distribution must have:

  • World-class ease of use (on all devices)
  • Blazing fast (perceived) speed
  • Flexible customization and configuration (branding, integrations etc.)

We welcome and invite the (Drupal) open-source community to give feedback on the Open Social Manifesto.

Hours spent

From January to May 2016, GoalGorilla spent about 2,000 back-end development hours, 650 hours of interaction design, 500 hours graphical design, and 600 hours front-end development. We also invested a whole bunch of hours, sweat, and tears in the Scrum Master and Product Owner agile roles. Many people on our team are also working evenings and weekends on the platform.

Team process

We try to stay as agile as possible using the Scrum method. We use an internal Product Owner who acts like the client. Our marketing department acts as the Stakeholder. We have a Scrum Master who makes sure we follow all Scrum principles, meetings are attended, agendas are set, and impediments removed. This does not differ much from our normal client work, except in Open Social we have a bit more space to experiment. For example, we started with the design team (interaction, visual, and front-end) working on stories for the development team. But we noticed input from the back-end developers was important early on when making design decisions. So, in the current Sprints we include both designers and developers writing stories and tasks together.

Approach to the Design

Getting the interface right is a huge challenge. We want to make the distribution look really good out of the box and also have a theme that is customizable to an organization's brand.

Also, to make Open Social's interface intuitively understandable for a wide range of users we use Google’s Material Design principles, and as a base theme we use Twitter’s Bootstrap. Open Social is built on Drupal 8 too, so we want to stay close to existing Drupal Core and Drupal modules usability patterns. But the users of Open Social are probably used to certain conventions from existing social software they already use. A small example is the Group icon that Google uses for 'Groups', in Facebook this same icon means 'Friends'. So, when testing with real users (which we do each Sprint) the users were confused and we had to redesign a new Group icon.

Tooling

Project Management

Our most important project management tool is Atlassian Jira (with Tempo and X-Ray add-ons). For internal team communication, we use Slack, and Skype for video conferencing. For resource planning, the team uses Timewax. Google Docs is our favorite when it comes to writing down more extensive research.

Design

We use Axure for low fidelity prototyping. For visual designs, we use Illustrator. The front-end is done from a components strategy, which means building a living style guide based on the atomic design principle. We use Gulp for automated front-end development tasks, and Jade for rapid, high fidelity prototyping.

Development

Wow, tools and frameworks are really exploding these days :). Some of our favorites we used for this project are: Docker, Composer, GitHub, Behat, Drush, Drupal Console, PHP Code Sniffer, PhpStorm, and MailCatcher.

Modules/Themes/Distributions
Why these modules/theme/distribution were chosen: 

We want organizations to use Open Social to create their own unique projects, ones that are performant and maintainable. We made a lean and mean distribution; each extra module was carefully debated in the development team. The modules listed here are all of excellent quality, well maintained, and provide valuable functionality for open communities.

Drupal 8

In terms of development Drupal 8 brings lots of advantages over Drupal 7. Highlights for our team are: Configuration Management (instead of Features), Entities, Services, Event Listeners, Twig, and PHP Unit. Since we are early adopters we submit patches and improvements whenever we can.

Some highlighted modules we use:

Address - a great implementation with over 200 address formats and validation right out of the box.

Composer Manager - temporary solution for composer integration since we are early Drupal 8 adopters (not necessary anymore after Drupal 8.1.0, so it will be deprecated ;).

Group - a great new module to create arbitrary collections of content and users. It has a separation of concerns, using a full fledged Group entity getting all the richness from the Entity API in core!

Message - integrated as part of our activity stream, because it works well with tokens and translations.

Search API - a framework for easily creating searches on any entity known to Drupal, using any kind of search engine (as Apache Solr). In our case, it allows us to build flexible searches on content (Topics, Events) and users.

Profile - conceptually different than user account settings. With multiple profile support and private profile types, the Profile module gives great flexibility for configuring user profiles.

Organizations involved: 
Community contributions: 

We agree with Dries when he says that without Drupal distributions, Drupal won't be able to successfully compete with commercial (product) vendors. Drupal distributions have great potential, but they have to be done right and be sustainable.

GoalGorilla doesn't just want to provide the community with a base platform for their social projects. We hope the community will get involved, to expand the diversity of perspectives that will make decisions about the distribution, contributions to translations, and so the distribution will not solely depend on our efforts in the future. To do so we try to be as transparent and welcoming as possible. All development is done out in the open at:

We use a Docker Image, so contributors from the community are up and contributing in no-time.

Project team: 

Taco Potze - Product Owner
Evelien Schut - Scrum Master
Mieszko Czyzyk - Marketing
Xinyu Ma - Interaction Designer
Frank te Riet - Visual Designer
Bas van Os - Visual Designer
Moritz Arendt - User Testing

Our multidisciplinary team is obsessed over user-centered design. That means passionate discussions over the smallest things. This takes time, but we believe this investment is crucial to make great easy-to-use software.

But, we need your help making the platform even better! Please check out what you can do at: https://www.drupal.org/project/issues/social - or drop us an email at info@getopensocial.com to get involved or stay tuned through @OpenSocialHQ.

The Stream or Timeline function of Open Social:

The Stream or Timeline function of Open Social

The Notification feature of Open Social:

The Notification feature of Open Social

We hope you like our design choices!

The pretty Group page
Fully responsive for a variety of devices
Make your people bloom with Open Social at getopensocial.com

Comments

golchi’s picture

This is really awesome and great work; kudos !

Taco Potze’s picture

Thank you Sam, we hope you find it useful for your projects as well!

Shaun Holt’s picture

I have just got it installed and running on one of my computers to test out and play around with. So far I am liking it. Installation was a breeze. So simple to setup. Great Job!!! I am looking forward to using it.

Taco Potze’s picture

Hi Shaun, we are happy to hear your feedback! Composer is a bit different for most Drupalistas than they are used to, but it should indeed work like a breeze and we are working on making it even easier. Any further feedback or questions are welcome in the issue queue on the project page. Have fun!

Shaun Holt’s picture

I am still up working with it... i have had to do a few re installs and mess around with it. Only issue I have had is I can't install modules via the drupal interface but I am sure that is a problem on my end with my setup... but drush and composer take care of that with no issues.... now that i have the kinks on my end worked out, i am working on setting up the appearance and installing languages to play with.

I can already see I will probably upload it to my hosting server at some point soon.

The layout is definately different but I like it and love the stat bar that keeps track of all the details like data usage and memory usage. I find it very easy to move around in and get things done.

So far I say well done and look forward to see what else ya'll do with it.

Taco Potze’s picture

Please add any issues you might have to: https://www.drupal.org/node/2755643 so our team and others can learn from the experience :)!
We are already working on improvements as is in the D.o team to get more out of Composer we need.

I hope you will find some good uses for the platform, we certainly are working for some cool clients already to get them running on Open Social!

pampullo’s picture

Hi!
I would like to know If I can create my own social network with opensocial.
Is it only a demo?
Thabks.

GoalGorilla’s picture

The idea behind this open-source and free Drupal distribution is anyone can create their own social network! You probably want to learn a bit more about Drupal first and how to install it, or contact a local Drupal development agency, there are lots! You can see 41 active in Spain alone here as well: https://www.drupal.org/drupal-services/all/all/Spain - goodluck with your social network! ^Taco

pampullo’s picture

Thank you so much, for your time.

MartinMa’s picture

Can I integrate it in an existing D8 webstite or is it only a stand alone project?

jochemvn’s picture

Hi MarinMa,

It's an installation profile, so you would need to make a new install based on the installation profile.

kind regards,

Jochem

MartinMa’s picture

Thanks for quick answer.

Can I export it as feature? (as far I see, features doesnt cover graphics and so on, only information about the structure and so on)

jochemvn’s picture

Hmm I'm not entirely sure if I understand what you mean. The profile does contain some features (see: social_features). You might be able to use those separately.

pampullo’s picture

I want install "Open Social" but I have two error. I NEED YOUR HELP please:
1º_ Opache
2ª An AJAX HTTP error occurred.
HTTP Result Code: 200
Debugging information follows.
Path: /xxxxxx/core/install.php?rewrite=ok&profile=social&langcode=en&continue=1&id=2&op=do_nojs&op=do
StatusText: OK
ResponseText:
Fatal error: Call to undefined function node_access_rebuild() in C:\xampp\htdocs\xxxxxx\profiles\social\social.profile on line 118

GoalGorilla’s picture

For technical advice please read the documentation on Composer carefully. If you run into any issues you can find advice or post your question at: https://www.drupal.org/node/2755643

jochemvn’s picture

Hello pampullo,

You could also try to download the distribution from github. That one is a bit more up to date. We will deploy a new release on drupal.org as well shortly.

Jochem

oyekeye’s picture

Hi, I'm new to Drupal but I want to know if I can add an additional module to Opensocial such as SSO module? Would it work out of the box?

GoalGorilla’s picture

Hey oyekeye, thanks for your interest in Open Social. It is probably wise to learn a bit more about Drupal before diving into Open Social. SSO will not work out of the box (there is no real box when it comes to Drupal, although we do our best ;). SSO is on our roadmap for this or next months though! Also by next month you will be able to easily install the platform in the cloud and get a already setup developer environment. Stay tuned through our newsletter or Twitter (@OpenSocialHQ), sign-up: https://www.getopensocial.com

marqpdx’s picture

hi, this looks amazing. well done!!

two questions:
1) if one uses this install profile, and then in the future, needs to update parts of it outside the profile, is that possible? i realized it may no longer be an Open Social install, but as long as it won't break, that seems ok.

2) are you accepting pull requests from community members?

Thanks,
m

nielsvandermolen’s picture

Hi M.

Thanks for your kind words.

2) Yes we do accept pull requests from community members. We use drupal.org for issues from the community and you can fork and create a PR in github.

https://www.drupal.org/project/issues/social?categories=All
https://github.com/goalgorilla/drupal_social/wiki/Contributing-to-Open-S...

1) Update paths are a tricky issue but we are currently working on it. For updates of the installations of the distros this will probably require some custom actions from the site maintainer because we do not want to override any custom configuration. You can expect more information being shared in the coming month when the beta version is released.

Cheers,
Niels van der Molen