When you read articles by experts on how to launch your product, they all say you should be able to build and launch your minimum viable product (MVP) within weeks or months, so you can gather user feedback quickly and determine if you have any hope of achieving product-market fit (PMF).  I knew this, and yet our journey for GreatAlbum has still grossly violated this guideline. Some of the factors were by choice, and some very unexpected.  

Built MVP; Launched Private Beta

When I assembled a small team to develop the GreatAlbum MVP, I thought it would take us about six months to get the MVP up and running. I knew it would be longer than experts recommend, because my team would be learning Drupal on the job, with help from an expert consultant. And then of course COVID impacted the team's productivity. So, it took us 8-9 months to launch our MVP in November 2020.

Priorities from User Feedback

At that point, we ramped up our first 15-20 users and we did start to get some good feedback. From that, we knew there were three major features that were missing:

  1. Media Import: While users could manually link individual pictures from Google, we needed to create much more scalable ways to import and organize media from Google Photos 

  2. In-Line Comments: The content streams on the home page and on album pages needed to allow users to comment on content right in those streams, rather than having to click into the content item and comment there

  3. Notifications: Users needed to be able to specify when they wanted to receive notifications about new content, comments, likes, follows, etc. - either in the app or by email

Media Import

We already knew that we would have to build the Media Import functionality, so we developed a custom module that we launched in February. 

Rebuild on OpenSocial

With the other two, we looked at options to use contributed modules or to build our own. In the end, we decided the best course was to take advantage of the great social functionality that the OpenSocial distribution of Drupal has developed over the past five years. Unfortunately that meant taking all the functionality and theming we had developed on native Drupal and porting it over to an installation of OpenSocial distribution. So, in February, we paused our Private Beta and got to work on this.

Beta5 & Beta6 Sprints

Our Beta5 Sprint installed OpenSocial and extended the architecture/functionality with additional content types (Articles, Individuals, Places), relationships between two content types, and views to display them within and across albums. Oh, and we also renamed Groups to Albums (see why).  Then our Beta6 Sprint introduced Media Types (which don't exist in OpenSocial), media views and relationships with other content.

Restarting Private Beta

We're nearing the completion of porting GreatAlbum onto an OpenSocial distribution, and really excited to restart our Private Beta program with much more robust user engagement and feedback. This Private Beta has taken far longer than we expected to evolve, and we've probably made as many mistakes as we've avoided, but it's just part of our journey.

Drupal Tags

No Media in OpenSocial

It's been a challenging sprint. As I mentioned in this blog post, we had to pause our Private Beta in order to rebuild our app on the OpenSocial distribution of Drupal. I think in the end this will be a good decision in order to take advantage of all the great communications features that the OpenSocial team has built over the past five years, but it's proving rather challenging right now because OpenSocial doesn't use Media, which is so central to GreatAlbum.

Challenges with Media Entity Browser

As we've enabled several Media types and tried to implement their use cases, such as selecting the cover image for an Event, Story, Individual or Place from existing media in an album, or allowing you to upload a new media item during that selection process, we've encountered a number of errors with Media Entity Browser (MEB), which we think is the best module to use for this. And for reasons we haven't figured out yet, development of the MEB module has stagnated - only one update in the past two years, and it's stuck on version 8.x-2.0-alpha3. As a result, we're thinking we may have to become the new maintainers of the module in order to fix a number of its shortcomings.

Short-term work around

But, that may take a while to ramp up, so in the meantime we may have to resort to selecting a media item by title to display as the cover media for Albums, Events, Stories, Individuals and Places. That will prove challenging, as a lot of media doesn't actually have meaningful titles (just camera file name). Users will still be able to upload, organize and share media as usual - the core use cases. All of this has slowed down our progress with completing Beta6 sprint.

Tags

I've been a member of the Drupal community since 2005, when I built my first website on Drupal 4.x with CiviCRM 1.x. It was for my 20th high school class reunion. A few years ago, I was thrilled to discover the OpenSocial project, built by the team at GoalGorilla. They were a consulting firm that developed Drupal sites and got so focused on community based sites, they productized OpenSocial around 2016 and then actually renamed the company to OpenSocial in 2019. They enable exactly the kind of networking/social website that I built in 2005-6, and a few since then. 

So, when we first started prototyping GreatAlbum two years ago, I seriously considering building on top of OpenSocial. I even managed to have a call with OpenSocial CEO, Taco Potze, to discuss it. But at the time, I felt like the vision and requirements for GreatAlbum was sufficiently different from that of OpenSocial, that we needed to build our own site using a plain version of Drupal. 

Then, after we first launched our Private Beta and started to gather feedback, we realized a lot of the social features we were missing and needed to build in, were included as core features of OpenSocial, such as:

  • Activity Streams - Chronologically display activities of a group, member, or the whole community.
  • Email Notifications - Members can receive and choose the frequency of email notifications about community activity.
  • Likes - Members can express that they like, enjoy, or support certain content by using the ‘like’ button.
  • Mentions - Members can mention and tag other members in all content and comments.
  • Notifications - Members are notified of activity with notifications appearing in the header.
  • Private Messaging - Members can send private messages to a member or a group of members.
  • Push Notifications - Members can choose to receive push notifications about community activity.
  • Follow - Members can follow the content of their choice to stay informed.

And OpenSocial includes a range of extentions, some of which we also intend for GreatAlbum:

  • Gamification - Increase community engagement and find your super-users with gamification.
  • Badges & Certificates - Award members with a publically displayable badge to mark and celebrate their achievements.
  • Social Logins - Let members easily signup and login using their Facebook, Google, LinkedIn, or Twitter account.
  • Customized Content Access - Control the visibility and accessibility of specific content on your online community platform.
  • Member Analytics - Statistically analyze member behavior and activity.

As we contemplated building GreatAlbum MVP2 on OpenSocial, we knew we would need to bridge some major gaps with our own extensions, which we have since built to enable:

  • Groups renamed to Albums, as is the naming convention in GreatAlbum
  • New content types for:  Individual, Place and Article (i.e., Story, Letter, News Clipping)
  • Introduction of media types for: image, video, Google Photo, Remote Video, Document (with Apple iCloud Photo, Google Doc and Dropbox file to come)
  • And then, of course, highly specialized features to import Google Photos and to organize clusters of photos into events

Taking this course has grossly violated the golden rule to make an MVP super simple, so that we can quickly prove basic product-market fit, but I'm hopeful that it will be worth it in the long run!  

Tags

Drupal Tags