Erik's personal albums
The albums I made in my 20s & 30s

Obsession

For over thirty years, I have been obsessed with collecting “artifacts'' about my life experiences and those of my family members, especially my ancestors. Since at least high school, I’ve always felt someday I would create the platform to share all these photos, videos and documents with others, hopefully in the format of rich, multi-media stories. In my 20s, I made 20-30 albums from pictures, ribbons certificates and other things I had collected so far. About the time I turned 30, this interest intensified as it became connected to a new interest in genealogy. I discovered one of my dad’s cousins had built a family tree in Family Tree Maker software, and one of his brothers had done a bunch of research, collected lots of family artifacts and taken lots of detailed notes about them. I actually took a week of vacation in 1997 to fly from Boston to visit my “Aunt Mary Lynn” in Minnesota, to go over her family tree, and to visit my “Uncle Mike” in Sandusky, Ohio, and “borrow” a box full of these family heirlooms.  Since that time, I’ve continued to collect photos and documents, not just of my nuclear family, but of many other family members as well.

Rediscovering Family Artifacts

I remember when my Grandma Webb died. Her kids, my aunts and uncles, were sitting around the table, telling stories about her and their life growing up together. One of them turned to me and said, “Erik, don’t you have a lot of pictures and other stuff scanned in your digital archive?” I said in fact I did, and in no time we were going through hundreds of these items in my Dropbox folder structure. I told them someday I would have a platform that made it easy to share these precious moments and to capture the stories that really brought these to life!” 

Tony Robbins DWD 2019Explosion in the Digital Era; Overwhelmed by Media

My obsession has taken on new dimensions with the explosion of digital media, thanks to smart/camera phones. I now have over 150,000 photos, videos and scanned documents. I have the photos/videos in Google Photos, and I've created 1500 albums, but that still only scratches the surface. I'm sure many people can relate to my feeling of being overwhelmed by it all. It's hard to go back and find media for specific events, even with the date/location/facial tagging that Google does to the media. Ironically, just when people have more home videos/photos from which to create and watch home videos, I think people actually "relive" these past memories less than before, because life has become so busy and it's so hard to assemble the media into manageable home videos. This is a key problem I aim to solve.

Multiple Starts

Since 2001, I’ve tried three different times to get a prototype off the ground to address these challenges, but always tried to do it myself and never had enough talent to make it fly. Finally, while attending Tony Robbins’ Date with Destiny event in December 2019, I realized this dream was too important to postpone any longer. I decided then and there I was going to build a team and turn this dream into a reality.

What's In A Name?

I decided to call the app GreatAlbum, because the idea is that all content will be organized into Albums, which can contain events, stories, media, places, individuals and discussions. Albums enable users to maintain privacy based on memberships, and events become like sub-albums with media, stories, places and individuals attached to them. And Great means this is a really great idea/application, but also because through it you will learn more about your Great Grandparents, your Great Great Grandparents, and many other loved ones in your life and family history. 

Three-Part Mission

As I've dived into this project, I've discovered this dream has actually turned into a 3-part mission: (1) build the GreatAlbum App, as I've long dreamed, (2) harness the power of the Drupal community for its development and give back to that community as we create breakthroughs, and (3) create a new community support model that could be powerful for GreatAlbum and other companies/products/services. Read more about this at 3-Part Mission for GreatAlbum.

Pervasive Theme

Now, it feels like every other day I encounter people who really wish they had something like this to celebrate the lives of loved ones. They almost never say it that way, because they don’t know that something like this exists, but I can tell how much they want to celebrate and appreciate someone, and when I tell them about GreatAlbum, they say, “That sounds amazing. How can I join?” Very soon, they will be able to. And you will be able to as well! 

Tags

When I started to entertain my dream of creating the GreatAlbum application, I always knew there were two missions that were important: 

1. Community Content Development
2. Community Application Development

In the process of building GreatAlbum, we had to think about how we would support the users of the app. We looked at a lot of traditional customer service applications, like Jira Service Desk, Zendesk, Zoho, etc. The problem was that with all of them, the model was to have a small number of customer service people providing all the support to end users. That didn’t feel right. As a result, we created a third mission for GreatAlbum:

3. Community Customer Support

 

Below are deeper explanations of each mission...

Community customer service1. Community Content Development 

Great would be a different kind of platform from any other I have ever seen, incorporating what I felt were the most important parts of family tree content management and multimedia management, with a focus on creating rich stories about loved ones. It would leverage the power of community to collaboratively create content and celebrate to celebrate the lives of people that content highlights. This means:

  • Albums have members, like traditional photo albums
  • But Albums would contain more than just media( photos/videos). They could also contain Events, Stories, Individuals, Places and Discussions.
  • Those content types would be interlinked, so an Event could have lots of media linked to it as well as stories written by different people, a Place where it happened, Individuals tagged who were there, and related Discussion threads.
  • Each Event would essentially act like a sub-album, only much better, and you would have to share it for others to see it, because it's already part of the larger Album.
  • Similarly Stories can be linked to Events, Individuals, Places, Media, Discussions
  • And Media can be linked to Events, Stories, Individuals, Places, Media, Discussions

In this way, you get a much better feel for the true nature of the relationships that exist between these content types, allowing you to tell more robust stories and explore the content more thoroughly. To learn more about this, see What is GreatAlbum? How is it Different?

 

Community App Dev2. Community Application Development 

GreatAlbum would also leverage the power of community in how the app is built. This means:

  • Building it on an open source platform, so that 80% of the functionality comes from others who have already done that heavy lifting. The GreatAlbum team would create the 20% the no one else has ever done before, which makes GreatAlbum unique and special. 

  • Making GreatAlbum app available as an open source download, so that technical people using it can also tinker with it and offer technical suggestions on how to improve it (even technical patches to the code).

  • Where the GreatAlbum team makes improvements to existing modules, offer those as patches back to those module maintainers, so they can consider accepting the improvements.

  • Where the GreatAlbum team is able to create new modules that serve our purposes and can also be generalize to be useful to others on their websites, then we will offer those as new modules to the development community and become the maintainers of them.

To accomplish #2, we chose the Drupal content management system. For more on this, see Why we built GreatAlbum on Drupal?

 

Community customer service3. Community Customer Support

GreatAlbum would provide a community support model, just like you get with open source communities like Drupal. The GreatAlbum team would provide the foundation of support, and more importantly, our users to be able to help each other. That approach would be much more scalable and it would reinforce the sense of community, not only in sharing content with members of your Albums, but also in helping other users with how they do the same with their own albums, even when you aren’t a member of their albums and can’t see their content. As a result, GreatSupport was born, which is a community support site for GreatAlbum and could become a model for other companies. 

To learn more about this, see How GreatSupport provides community support for GreatAlbum.

When I joined the Reunion Organizing Committee for my high school class, for our 20th reunion in 2006, I thought it would be cool to organize it on a website. WordPress v Joomla v DrupalKeep in mind, this was only two years after Facebook had launched, and a few months before it was available to the general public (not requiring a .edu email address), so that wasn't an option. I spent a week researching open source content management systems, narrowed it down to the top three - WordPress, Drupal and Joomla!, and ultimately decided upon Drupal - I think version 4.6 at the time. While I recognized that it wasn't quite as widespread as WordPress, and more complicated to learn, I liked that it seemed to have the most robust capabilities of the three. Thus began my journey with Drupal that has now spanned nearly 15 years and almost as many websites - typically as charitable hobbies for nonprofit organizations. 

ColdFusionSeparately, the journey to build GreatAlbum started in 2001, when I tried my first attempt at building a prototype. I had gone to a Macromedia ColdFusion workshop and won a give-away copy of ColdFusion. I was so excited and took it as an omen I should give it a try. I built that first prototype with my brother, using ColdFusion Markup Language and the Fusebox Application Framework. We learned some good insights, but ultimately didn't get too far. 

PhpGedView exampleAbout ten years later, I wanted to take my Webb family tree information that I had gathered with the help of a few relatives and create a collaborative genealogy environment, with all the types of content I envisioned, though in more of a genealogy format. Around 2010 I implemented my own version of PhpGedView with family trees for Webb, Britt, McCain & Iredale families. This was really cool and did get some traction, but was still too centered on Genealogy. 

So, I continued to think about other options. Then in 2019, I spent a few months exploring how I might integrate WebTrees (successor to PhGedView) and Drupal together, to have the genealogy aspects together with robust content management. The more I explored, the more complicated it seemed.

So I ditched that idea and decided to go just with Drupal. As I turned to that focus, I came across the post for a Functional Drupal 7 Family History Website, which led me to https://ancestry.sandes.uk, developed by Mike Sandes. Some great coaching by Mike led to a new prototype of GreatAlbum, based on Drupal 7, using Organic Groups to represent Albums. We spent several months building out a pretty comprehensive website with the full complement of genealogy entities - Individuals, Names, Families, Events, Stories, Places, Notes, Citations, Sources,  & Repositories. That was fun, and we learned a lot, but it was way too complicated. It was also not viable to build on Drupal 7, which was scheduled to go end of life in November 2021, nor to use Organic Groups, which doesn't have a stable release for Drupal 8. 

After this long, circuitous journey, we finally landed on building GreatAlbum using Drupal 8 based on PHP. There are a lot of other open source technologies and frameworks we could have chosen. A lot of people told me I was better off going with NodeJS, based on JavaScript (#1 most popular language) or Django based on Python (2nd most popular language as of 2019). While both of these are great options, I am convinced that the strength and maturity of the development community is just as important as the framework itself. Ever since I first chose to use Drupal in 2006, I've watched the Drupal Community grow to over 1 million developers, with over 44,000 modules, powering over 1 million websites, including many famous ones (see 67 Amazing Drupal Statistics & Facts)!

While it may be more challenging to build the GreatAlbum site on Drupal, I am convinced that the community will become invaluable when we open source the code and invite users/developers to contribute patches & improvements that will enable us to harness the power of many developers beyond our core team. Furthermore, as we develop unique and powerful features on GreatAlbum, we look forward to contributing those back to the Drupal community, so other developers can use them on their websites & applications.

React JSIn the future, we plan to explore "decoupling Drupal," which means we would continue to use Drupal on the backend and possibly use ReactJS on the front end - for both the browser-based app and native mobile app. More on that to come. 

Genealogy treeTwo of the most popular, revenue-generating hobbies for individuals and families - on and off the internet - are genealogy and family photography/social media. 

Genealogy is primarily focused on finding new family members, and documenting/proving key life events, like birth, death, marriage, & divorce, with citations to prove those "facts". Lately, the big push has been on DNA testing to help you find even more family members and learn more about "where you come from." The problem with this is it's focused on "data," with limited support for social media or stories about the individuals/families in your family tree.

Social media mobile iconsPhotography for decades was shared by creating photo albums with physical prints, and when mixed with non-photo media like invitations and certificates, was the art called scrapbooking. With the advent of camera phones,  Facebook and other social media services, the focus has shifted to sharing digital photos in personal streams, or perhaps in groups. The problem with this is people amass a ton of photos and posts when sharing them with friends, but practically no means of organizing them, other than albums or user tagging. How do you go back and find pictures of your child's birthday ten years ago in an ocean of thousands of digital photos?

Photo Services like Flickr, Apple iCloud Photos and Google Photos do provide improved organization with albums, facial, geo & other meta tagging, but each album generally corresponds to an event, which means lots of albums and lots of repeated sharing with the same people that you have to specify over and over again. Albums contain only photos/videos - not other kinds of media. And the facial tagging is tied to each person's private set of contacts. This still results in many isolated albums with limited organization.

Huge gaps still remain with all of these solutions. None of them provide the ability (or encouragement) to tell thoughtful stories about the major events in our lives, nor the intuitive connections between Events, Stories, Media, Places and Individuals. 

This is where GreatAlbum comes in. This is the realization of a dream that I've had since at least 2000. The vision is that GreatAlbum will become the preeminent site/app for people to tell rich stories about the events in their lives and the lives of their loves ones. Millions of members will use it not only to commemorate the lives of their ancestors, but to  archive their social media content and organize it intuitively for future reference.

For the sake of security, and sanity, all content is organized into Albums. Here are four good examples of the kinds of albums that will exist:

  • Celebration Album – Tell the story of a lifetime 
    When someone is reaching a major milestone, like a wedding or big birthday or death, bring family & friends together to tells stories about how that person has touched their lives.
     
  • Core Family Album – Capture the moments in real-time
    Import and create "smart organization" around digital pictures you're taking with your Smartphones and backing up to Google or iCloud; share seamlessly with close family & friends.
     
  • Family Tree Album – It’s like LinkedIn for families
    Import/build your family tree with all the usual genealogy information, but go beyond that to capture & share the events in the lives of family members and the stories about why those events were so meaningful, with social media linked in. 
     
  • Alumni Album – Remember good times & catch up 
    For high school, college, work & other groups that want to reminisce about the gold old times, and also want to keep up with each other’s lives over the years.

 

GreatAlbum Content Structure

With GreatAlbum, organizing and sharing features are separated. Events are the main way to organize. An Event can have Media, Stories, Individuals and Places tagged to it. And the event can belong to one or more Albums, which is how content is shared.

An Album has Members, just like a Google Photo Album or a Facebook Group. Each time a new event and related content is added to the album, the members are notified and can enjoy it immediately. The "owner" of the event content doesn't have to decide who to share it with, since that's already determined at the Album level. And members of the album can share their own content/media as well for each event, fostering collaborative storytelling around shared life experiences.

Overlapping albums

 

Eventually, you will be able to share content/media in multiple albums, so you could have one album to collect stories from friends to celebrate a major birthday, and then share that same content in one or more a Family Album, to enrich those albums, which contain different collections of content for different memberships. 

 

One final note - GreatAlbum actually doesn't compete with Flickr, Apple iCloud Photos or Google Photos. We realize that you will still want to keep your photos safe and secure in those locations, since you likely trust their long-term survival more than GreatAlbum. Instead, most of the time you will simply "import" them from those photo services, which means creating media instances in GreatAlbum for each photo/video, with meta data linking them to Albums, Events, Stories, Individuals & Places, while the actual media files still remain in those services. TadaThen when you see the media displayed in GreatAlbum, it will be coming from your favorite photo service, where it is safe and sound! 

All of this is technically possible today. The trick is to figure out how to do it while minimizing the complexity of the user experience. This is part of the dream that GreatAlbum aims to make a reality!

Community customer serviceAs mentioned in The 3-Part Mission of GreatAlbum, while we were in the process of building GreatAlbum, we had to think about how we would support the users of the app. We looked at a lot of traditional customer service applications, like Jira Service Desk, Zendesk, Zoho, etc. The problem was that with all of them, the model was to have a small number of people providing customer service to end users. That didn’t feel right.

As a result, we created GreatSupport (https://help.greatalbum.net), a stand-alone app (website for now) that enables a community support model, just like you get with open source communities like Drupal, WordPress and GitHub. The GreatAlbum team will provide the foundation of support, and more importantly, our users will help each other. That approach will be much more scalable, and it will reinforce the sense of community, not only in sharing content with members of your Albums, but also in helping other users with how they do the same with their own albums, even when you aren’t a member of their albums and can’t see their content. We think this could become a model for other companies. 

The way it works is that there are Guide Books on the site that assist with five major things overall: 

  1. How to use the GreatAlbum App
  2. How to use the GreatAlbum Help (ironically, help for how to use help)
  3. Personal stories about user/life experiences as a result of using GreatAlbum
  4. How to write stories and biographies
  5. How to research family history

Each Guide Book is comprised of four kinds of content:

  1. Topics - Kind of like chapters, describe major parts of functionality in the apps, or major topics in researching and writing
  2. Articles - Explain how to perform functions related to each topic
  3. Issues - Describe problems, bugs, suggestions, requested features related to the Topics and Articles
  4. Discussions - Conduct discussions related to Topics, Articles and Issues
  5. Releases - Coming soon...this describes new releases for GreatAlbum, GreatSupport and GreatHome.

There are three kinds of users who interact on the GreatSupport site:

  1. Anonymous - can view everything; can't create/comment on anything
  2. Authenticated Users - can create Articles, Issues and Discussions; can edit Articles/Issues; can comment on Discussions
  3. Support Managers - can create/edit/delete anything on the site

The reason that Authenticated Users can edit any Article or Issue, is because they are empowered to support other users, which means they can create or edit any Articles to make them better, and they can edit any Issue to help resolve it. 

red question markYou might have noticed that all this wonderful functionality described in What is GreatAlbum doesn't appear on this site. So where is it? 

The Answer: The GreatAlbum prototype quietly under development in a hidden site. Upcoming plans include:

Private Beta - We will be launching a Private Beta program in November with a select number of users to try out both the GreatAlbum site and the Help site and give us qualitative feedback. We anticipate spending a 2-3 months in Private Beta, slowly growing the number of users to a few hundred as we work out all the kinks.

Public Beta - Then hopefully in January or February 2021 we'll go into a Public Beta, where anyone can create an account and start using the Apps. 

If you want to join the list of people interested in being a Beta user, then see our Beta page.

open source swiss knifeBy the title, you would think I was talking about struggling with the decision to build GreatAlbum on open source software. Actually, that was a no brainer, as discussed in Why we built GreatAlbum on Drupal. Instead, I'm talking about the decision to be as open as possible about how we are building GreatAlbum, our journey, our mistakes, our lessons learned and our achievements.  This decision was inspired by a number of different reasons.

First, it's very much my style to be as transparent as I can. I tend to find that if people are truly interested in achieving success together, information enables them to understand what's working, what's not and how they can help each other to be more successful. 

GumroadThis was reinforced by an article I read recently, Reflecting on My Failure to Build a Billion-Dollar Company by Sahil Lavignia, Founder & CEO of Gumroad. This article is his story about how his side project became a VC-based start-up, grew for a year, then tanked and laid everyone off, and eventually became a lifestyle company. I love how in the end he discovered that it isn't all about "grow or die", and that part of his mission is to create more value than he captures in his revenue stream. One of those ways he's done that is to open up his financials. As a result, Founders starting their own companies have learned from his mistakes and utilized their data to make better decisions. This shift has also attracted new investors and strengthened Gumroad's engagement with its customers. 

This philosophy of transparency and authenticity creating much stronger connections to investor, lenders, partners and customers was also strongly reinforced when I recently read How I Built This book by Guy Raz. In numerous examples, Raz relates stories by founders that he's interviewed over the years about how they've solved tough problems and avoided losing their companies by being open, honest and authentic with their customers. He cites many compelling examples of this.

So, as my team here at GreatAlbum embarks on our journey of realizing my Dream, I want it to create value not only for our customers, but also for members of the Drupal community who can hopefully benefit from some of our innovations, much the way we have benefited from innovations like the Open-Core of OpenSocial. I also hope we can share insights that will benefit other founders who have to endure similar journeys on the way to launching their dreams. 

 

photo sharing logosI was recently talking with another founder in the Pioneer community. He was questioning the viability of GreatAlbum and pointed me to the 2015 article Why every photo storage startup dies or gets acquired. Even though this article is six years old (a lifetime in high tech startup land), the situation is remarkably unchanged since then:

Apple’s Photo Stream is all but incomprehensible to me. Google’s photo product, while very good, is buried inside Google+. Amazon’s photo storage service, tied to Prime, is just getting started. Facebook’s service is designed more for sharing photos than for organizing them. Dropbox’s Carousel seems to exist for the sole purpose of helping people consume their Dropbox storage.

No wonder people keep building superior services: it’s impossible to store your photos with Apple, or Google, or Amazon, and not imagine you could do it better. And the need grows larger every day. Last year, trend forecaster Mary Meeker of Kleiner Perkins estimated that we upload 1.8 billion photos to the internet a day, up from 500 million the year before.

With this in mind, GreatAlbum aims not to compete with photo storage services (Apple, Google, Amazon, Flickr) or social media services (Facebook, Instagram, Twitter). Instead, our goal is to provide a value-added service on top of them. GreatAlbum assumes that you want to keep your photos in one of the major photo sharing services, where you have more trust in their future preservation. It imports the "metadata" from those photos (date, location, descriptions, etc.) and helps you organize them in ways that make it much easier to browse, share and enjoy your photos and videos. Two of the most common ways we envision this to happen are:

1. In an existing Album, for an event you are documenting, members can link their remote photos from Apple/Amazon/Google/etc. to a common structure of Event, with tagged Individuals and Place, and even write their own stories about how they experienced the event. 

2. You can authorize GreatAlbum to import hundreds or thousands of photos into a private album. GreatAlbum will then go through them all, look for patterns based on date, location and faces. It will then auto-create events, based on those patterns (such as 10 or more photos on a given date and location), and tag date, location and individuals who were present. You can then review/refine those events and share them, with their related media/content, in other albums where they belong, with specific memberships for their common interests.

Boring Old Approach

Since photos started going digital around 2000 (I got my first digital camera in 1999), the approach to creating and sharing digital photo albums has remained largely unchanged:

  1. Organize your photos/videos into an album - these days, Apple iCloud Photos and Google Photos seem to be the dominant places for this, as they're tightly integrated with the two dominant smartphone operating systems - Apple iOS and Google Android. 
  2. Share your album with family/friends by specifying their email addresses, or by sending them a sharable link via text or email

If the collaborate option is turned on then anyone invited to the album could add photos to it. In Apple and Google, you can tag faces in photos based on contacts in YOUR address book, but can't share those contacts between users. In Facebook, you can tag people who are Facebook users, but you can't tag non-users (including long-deceased ancestors). 

The mechanics of sharing a photo album is such a hassle, many people don't even bother. They share a few pictures here and there, via email, text/WhatsApp or post (Facebook/Instagram/Twitter/etc.), and the majority of their photos never see the "light of day", buried in their photo storage.

A Fresh New Approach

There has to be a better way, and there is! If you think about it, most albums actually represent events that took place, where photos/videos were taken to capture the moment and to share with others. Further, most events occur within the same few circles of people - close family/friends, extended family, school communities, sports teams/clubs, work and community organizations. Wouldn't it be amazing if you could define these groups once and then share easily with them every time you have something new to share? 

GreatAlbum Content StructureWell, that's exactly how albums work in GreatAlbum. Unlike boring old albums that have only members and media, each album in GreatAlbum contains:

  • Album info - Name, cover/profile media, description, URL
  • Members - registered users of GreatAlbum
  • Content
    • Events 
    • Individuals
    • Places
    • Stories
    • Discussions
  • Media
    • Local Images
    • Local Videos
    • Local Audio
    • Local Document
    • Remote Photos (Apple, Google, Facebook, Instagram)
    • Remote Videos (Youtube, Vimeo)
    • Remote Documents (Google Docs, Dropbox)

The details of these content and media types is describe below, but in a nutshell, the most unique and special aspects of this approach are:

  • An Event acts like a supercharged version of a boring old album, and each time a new event is shared with related content and media, it's simply shared into one (or more) albums, and all members of that album(s) are notified and have immediate access; there is no need to specify members each and every time
  • They event is described not just by media, but also related individuals, stories, places and discussions
  • Media is not constrained to one platform, it can come from nearly any media service, a user has authorized GreatAlbum to access it
  • Content and Media can be shared in multiple albums, so for instance, everything from a wedding event can be shared in "John & Jane's Wedding" album for those who attended, and also in a family tree album as part of documenting family extended families and individuals

The Content items provide the "bones" of an album. They structure and organize all the media and related information.

Events tend to serve as the main organizing construct. Much like boring old albums, they can have media associated with them. But they can also identify the place(s) where the event occurred, the individuals who were there and stories that people have shared about that event. 

Individuals represent people who are linked to that event. For a recent event, those individuals might also be users of GreatAlbum, but for an event from your family history, such as the wedding of your great grandparents, the individuals might have been deceased for decades.

Places identify specific/important places in the context of this album. When you view one, you can see all events that occurred there and all media linked to that place.

Stories are more than just comments. They can be long, essay-style stories about important things that happened from someone's point of view, which they want to be captured along with media.

While users may post comments content and media, like you often see on boring old albums, GreatAlbum also enables full-blown Discussions as a part of its albums, and those discussions can be linked to any content or media items in the album. They are great way to have a threaded discussions aspects of multiple content/media items at once.

And of course, all of this is just a warm up for the meat of each album, which is the Media

Local Audio, Documents, Photos & Videos are those that have been uploaded directly to GreatAlbum and thus reside locally. 

Remote Audio, Documents, Photos & Videos still reside on other cloud services, and a GreatAlbum user has authorized the import of their metadata so that they can be organized and shared within albums in GreatAlbum. 

I've very excited to announce the launch of the Private Beta for GreatAlbum. We're calling it GreatAlbum v0.8.0. Why that version? Well, as mentioned in Where is GreatAlbum?, we're starting with Private Beta (v0.8), followed by Public Beta (v0.9) and then finally General Availability (v1.0).

I want to offer my huge thanks to the development team that has been at this most of the year - Angel, Ashley, Kevin, Negi, Sahana, Shilpa & Thomas. 

If you want to join the list of people interested in being a Beta user, then see our Beta page.

 

Pioneer App LogoAs I was reading through some blog posts by Daniel Gross, I stumbled up an app/community he helped build, called Pioneer. Pioneer is both an app and a community. It helps founders track progress, get advice, and get funded. In a nutshell, the way it works is members compete in the weekly Pioneer Tournament:

Step 1 - Join with your project

  • Register, fill out a profile about you as a person/founder
  • Fill in a detailed profile about your startup project or business

Step 2 - Compete in the Pioneer Tournament

Each week, there's a process that takes place

  • Sunday, submit a progress update on your project
  • Monday
    • Our update gets reviewed by 5-10 other Pioneer members who give feedback
    • At the same time, we review updates submitted by others and give our feedback; this is an interesting process, as we review updates in pairs and indicate whether "Player A" or "Player B" gave the best update that week 
  • Tuesday
    • Leaderboards are updated with latest rankings, based on feedback from players and "experts" (presumably Pioneer employees or advisors)
    • We each review feedback we received and rate the top three comments
    • At the same time, our feedback to other players is reviewed by them; If someone "stars" our feedback for them, we earn 25 points
    • We can earn up to 100 points each week, and retain up to 400 points over the last four weeks that contributes to our score that week
  • Thursday
    • A select group of Pioneer Players are invited to a zoom call, where we break out in small groups to discuss challenges we're working through

Step 3 - Reach the Global Top 50

  • The goal is to become on of the top 50 players in the Pioneer Tournament
  • Of course, most don't achieve that, so they complete to be one of the top players on the regional leaderboards: US East, US West, Americas (Non-US), Europe, Africa, Asia & Oceania

Step 4 - Get selected by an expert to become a Pioneer

  • For Pioneers who are recognized as one of the top players, they occasionally receive the Pioneer Offer. For a 1% of your company, you receive access to a network of elite founders. a 2-month remote startup accelerator program, and a whole bunch of other perks

I've documented all my submissions so far, along with top feedback comments at GreatAlbum Involvement in Pioneer Community

Today I attended a webinar on How to find a technical founder/CTO. It was hosted by Nelly Yusupova, a CTO with over 18 years experience, leading companies to technical excellence. She is a startup tech advisor, outsourced CTO, and the creator of TechSpeak for Entrepreneurs. The stated goal of the webinar was to learn:

  • Where to find a tech cofounder or CTO
  • How to build your tech network so you have a better chance of finding a tech cofounder or CTO
  • How to evaluate if someone would make a great CTO or tech co-founder
  • The strategy for building your MVP without a technical co-founder or CTO so you can attract them to your company

Overall, the webinar was worthwhile. She did share useful perspectives on the stated topics. She also pitched her online master class. As she explained, the class covers ten modules: 

  • Module 1: Validate & Refine the Idea
  • Module 2: Build an Interactive Prototype
  • Module 3: Create Technical Specifications
  • Module 4: Pick The Right Tools & Technologies
  • Module 5: Determine the Price and Budget & Define Your MVP
  • Module 6: Hire a Tech Team
  • Module 7: Design Your MVP
  • Module 8: Project Manage The Coding of the MVP
  • Module 9: Hosting, Security, and Scaling Techniques
  • Module 10: Refine product based on data

It was great to walk through this and understand her suggested approach to building a team and a minimum viable product (MVP), even if you're not technical, and in the process "earn" a technical cofounder/CTO. As she completed the overview of her masterclass, I was happy to conclude that the journey of GreatAlbum so far has already reached Module 8 with our Private Beta Launch and is currently working on both Module 8 and 9 items as we stabilize and enhance the product, accept more users into the Private Beta and prepare for a Public Beta.

I'm there is still lots I could learn from masterclass, but for now I'm happy just to receive validation that we're on a good course. I'll continue to focus on optimizing the team, cultivating user engagement and pitching our vision to advisors and potential investors!

Tags

As part of cultivating a support network on my journey to build GreatAlbum, I've gotten involved with the New England Regional Developers (NERD) group over the past year. I attended NERD Summit 2020, where I got some great insights on a few topics relevant to GreatAlbum.

Pioneer App LogoThis year at NERD Summit 2021, while I expect to continue to learn from others, I also wanted to contribute something back to the community, which of course if it stimulates any interaction will also end up generating further insights for my team as well. I'm actually planning to present one session myself, and then have one of my team members co-present a second session, which will then continue into a Birds of a Feather Session on Day 2. Below are the session proposals, in case you're interested. I'll update this post with presentations once they're available. 

Proposed Session #1 - Non-Technical Founder's Approach to Agile Project Mgmt

Are you a non-technical Founder or Project Manager wondering how best to define the requirements and manage the development of a website or app? Attend this session to learn how one such non-technical Founder went about it - mistakes made, lessons learned, approach now being followed. A few highlights of the session:

  • Started on Backlog.com - tried to manage requirements & tasks in a simple issue tracker, discovered that didn’t work

  • Adopted Atlassian Confluence and Jira for knowledge and project mgmt

  • Adopted agile project mgmt, generally as described by Atlassian

  • Use Google Sheets to analyze distribution of tasks between team members, components, sprints, etc.

  • Key Take-Aways

 

Proposed Session #2 - Advanced Group & Media Functionality on a Drupal8 site

In this session, we’ll demonstrate how we have utilized advanced capabilities of Groups and Media in Drupal8 to build the GreatAlbum site.

Some key features we’ll review include:

  • Sending invites to non-site users via email and having them accept/register

  • Making media entities part of group content

  • Group view includes a stream of content/media

  • Group tabs, so show streams for each content type

  • Group Activities document creation and updates of content/media in the group

  • Google Photos integration - create media entities in the group based on Google Photo Albums

  • Enabling content/media to belong to more than one Group

  • View all your content/media across Groups

Features yet to implement

  • Open and Public Groups, to go along with the Private Groups initially implemented

  • Non Members can request to join a Group and be approved/denied

  • Share an Event and all its related content (Stories, Individuals, Place, Media) to another Group in one bulk operation

Drupal Tags

As described in a fresh new approach to digital albums, events tend to serve as the main organizing construct for media, better than boring old albums. It's straight forward for users to create an event in an album and upload or import media to be part of that event. Many users are doing this already during our Private Beta.

Beyond that, GreatAlbum offers a unique and exciting feature, where it can auto-create events based on media that you import from remote sources (like iCloud and Google Photos) or upload directly to GreatAlbum.  Here are the basics of how this works...

  1. User imports media from remote source into an album in GreatAlbum (right now, only Google Photos is available)
  2. User then requests GreatAlbum to auto-create events based on media clusters
  3. GreatAlbum triggers its Media Cluster Recognition (MCR) engine as a background process, so that the User can continue using GreatAlbum while the media recognition process runs in the background
  4. The MCR engine counts the number of media items per date/hour
  5. If more than 5 media items were created in a date/hour period, then the MCR engine creates a new event in the given album and links the media from that hour with the new event (using Drupal Entity API); the engine also updates the media_analyzed flag on the media items, so they are not analyzed again in the future
  6. If there are any more media in the next hour, then those are also linked with the event from the previous hour and the media_analyzed flag is set on them too
  7. If there is an hour break where no media is found, and then more media is found in the next hour, then the MCR engine creates another event and links the media from that hour with the new event
  8. At the completion of each event, with all respective media associated, the MCR engine creates an activity in GreatAlbum, mentioning that X number of media have been associated with that event. The activity is associated with both the event and all the media, so it will show up in their respective activity streams
  9. Once this process is completed for all events, media & activities, the MCR engine sends an email notification to the user informing them that a total of Y media was analyzed and linked to Z new events that were automatically created

Pioneer App LogoIf you look closely at the example in the chart, you'll notice:

  • The first event is identified on 2021-03-27 in hours 01-06
  • Hours 08-09 are ignored, because of the gap in hour 07 and the media count in hours 08-09 is below the 5 threshold
  • The second event is identified on the 27th, from hours 10-12
  • The third event is identified on the 28th, in hours 01-04
  • The fourth event is identified on the 28th, in hours 06-07, because of the gaps in hours 05 and 08
  • And so on for the fifth and sixth events

This is a very basic approach for now. Eventually we want to include geo-tagging (location) as part of the medial cluster recognition, but Google does not allow any third party app to access location information for its photos, so we have to solve that limitation first. 

As we continue with our Private and then Public Betas, we will continue test the thresholds of how many photos in an hour should trigger a new event (cluster length), and how long of an hour gap can exist between photos and still be part of the same event. Right now, we use 0 hours as the gap. If we increase the hour gap to 1, then the media cluster engine would have auto-created only two events in the chart above - one for all media on the 27th and another for all media on the 28th - because the gap between photo groupings on each day was never more than an hour.

Google PhotosOne of the unique differentiators of GreatAlbum is that we don't compete with dominant photo storage/sharing sites - Apple iCloud Photos, Google Photos, Flickr, Instagram, Facebook. Instead, we work with them by expecting you want to keep your photos/videos there and then catalog all of them in GreatAlbum, where you can organize by event/theme and share in different Albums with distinct member groups. This gives you the best of both worlds. 

A previous blog post explains how to organize your media into auto-created events using media cluster recognition (MCR). This post will explain how to import all those photos into GreatAlbum, so that the MCR engine can do its magic. While we use the word import, it's important to note that GreatAlbum stores only low-resolution copies of media items for quick viewing, with links back to the original media that still resides in Google Photos for safekeeping.

When importing Google Photos, there are two sets of options to consider:

  • How to link imported media in GreatAlbum - to Event, Story, Individual, Place, or just Album
  • How to select Google Photos to import - by album, by date filter, by date range 

How to link media in GreatAlbum while importing

While importing media, you have several options for how to link it to GreatAlbum content. They are driven by where you are when you initiate the import:

  • While displaying an Album stream, when you import media, it will associate the media with the album overall and not with any specific content in the album
  • While displaying an Event, Individual, Story or Place, when you import media, it will link the media to that content item and to the album(s) that content is associated with

How to select Google Photos to import

When you initiate the process to import Google Photos, you're given two different ways you can search for Google photos:

  • Search by Album
  • Search by Date

Search by (Google Photo) Album

If you select Search by (Google Photo) Album, you're then presented with a list of albums, which you can page through (10 per page) and select one or more albums to import. 

As you go through pages of albums and select the ones you want to import, there are two additional options to consider

  • Process in the background - this will run the import in the background (behind the scenes), so you can continue to do other things in GreatAlbum. If you select this, you'll receive an email notification when the import is complete. If you do not select this, then you'll be forced to watch the import progress bar until it's done, which could take a couple minutes
  • Create new GreatAlbum Event for each Google Photo Album - if you select this option, then for each Google Photos album selected, the import process will create a new event in GreatAlbum and link the related pictures to it once they're imported. If the import process was initiated during the display of an event, the media will NOT be linked to that event, since they'll be linked to new event(s) that the process creates.

Google Photos Search by Album

Search by Date Filter

If you select Search by Date, you're then presented with Year / Month / Day filters that enable you search for photos by several different combinations:

  • Search by Year: specify the year, set month/day to
  • Search by Year/Month: specify year & month, set day to 0
  • Search by Year/Month/Day: specify all three values
  • Search by Month/Day:  Specify month & day values, set year to 0 (e.g., all media on an annually recurring anniversary date)

Google Photos Search by Date

Search by Date Range

If you select Search by Date, you can also search by a date range by selecting that option and then specifying the from & to dates

Google Photos Search by Date

 

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

Pioneer TrackerWell, it's been just over six months since GreatAlbum Joined the Pioneer Incubator Community. In that time...

  • Weekly Updates - we've submitted updates 27 out of 28 weeks (we forgot to submit an update the weekend after New Year's Day, when we were still on holiday).
  • Our Pioneer score - has gone from 30,900 to 41,094
  • Our global rank - has gone from so high it was unreported to breaking the top 100 on 30-March to 54th this week (we were actually 50th after Monday's scoring, then dropped to 54th after feedback star scoring)
  • Our US East rank - has gone from too high to be recognized to top 50 as of 26-January and top 20 as of 30-March.

We've reviewed a number Pioneer player's sites/apps multiple times and enjoyed following their progress over time. And see our first feedback from the Pioneer team and my response.

In that same period, i've attended 25-26 weekly Pioneer Players Thursday zoom calls. Where possible, the Pioneer facilitator for each call tries to group the same players together week after week. While I've met with 15-20 players across these calls, I've found a really nice rhythm with three other players in particular:

Early on, our calls would go in a round robin, with each of us getting ten minutes to highlight a problem we're facing and get feedback from others. More recently, our calls have evolved into deep-dives into one or two specific issues each time, which has enabled us to have more much meaningful conversations about how to address those issues. We've also developed a wonderful sense of collaboration between ourselves and partnered up on other activities together.

As we look forward to completing our Beta6 sprint and relaunching our Private Beta (which we paused at the start of Beta5 to rebuild on the OpenSocial distribution of Drupal), we're excited to dramatically ramp up our user base, determine just how strong our product-market fit (PMF) is, and see how we fare in Pioneer incubator competition. It should be a wild ride!

--------------

Pioneer TrackerTo further explain how Pioneer scoring works, here are explanations for several of the factors:

  • Ratings from players and experts:  Your score will change as other participants and experts vote on you during the Pioneer Tournament. Scores change based on the quality of other players. For example, if you’re upvoted over a top player, you’ll get more points than if you’re upvoted over a low-ranked player. You still get points if you’re upvoted over a low-ranked player—just not as many. The best way to reach and maintain a high score is to demonstrate impressive progress every week.
  • Progress update streak: You get 50 points for each consecutive progress update you submit. You can't get more than 200 points, but you'll drop back down to 0 when you break your streak!
  • Votes you've submitted: These are points you've received from voting on other players' progress updates over the last 4 weeks (200 points max).
  • Feedback to other players: These are points you've received from players liking your feedback for them over the last 4 weeks. You get 25 points for each piece of feedback other players like, up to 100 points per week.

After cracking the global top 50 in the Pioneer Incubator yesterday (see previous update), we received our first feedback from a "Pioneer Expert." Here is what they said. 

Interesting idea—how do you think about the improvements that Great Album makes over existing solutions (like iOS's "memories" or "albums" feature that uses location/image metadata to group like images). I think there's a few dimensions to this problem: need, effort, and scale. On need, I'm guessing that this problem is something that most people would bucket into a "nice-to-have" and a small number of people view this as a pressing problem. How are you finding the group of people that are already doing this manually who would benefit most from Great Album? This is closely related to effort as I'm sure many people enjoy going through the Photos app on their iPhone and seeing some of the nice compilations Apple has made (trip to Japan, times spent with your cat, etc.). but wouldn't go out of their way to create these albums. Lastly, it depends entirely on your desire to turn Great Album into a venture-scale business vs. a lifestyle business, but in either case it'd be interesting to get a sense for what market size looks like.

We'll review you again after you submit another 2 progress updates.

Note that while about half of our Pioneers were selected after 1-2 months in the Tournament, others have persisted for far longer before winning -- even as long as a year!


Keep at it. We remain ever eager to see what you do next!

- The Pioneer Team

 


 

The Pioneer team raises some good points. Here are my replies:

  • Need - I believe there is a much greater latent pain that people experience by not being able to easily browse, share and relive their experiences through their media, even if they aren't really expressing it now. No one missed having an iPhone before it was created, but now they couldn't live without it. I've conducted close to 70-80 customer interviews over the past 18 months, and 90%+ of the time, the response has been along the lines of, "OMG, that would be amazing if I could do that with GreatAlbum." Once people experience the joy having their media more accessible and shared, I think they won't want to live without it.
     
  • Effort - People don't go out of their way to create these albums because it's time consuming - not just to create the album itself, but even more so to then identify all the people you really want to share it with. This is where GreatAlbum will dramatically simplify the experience, by creating albums once for each specific collection of members, then auto-creating events based on clusters of photos (which the user can refine as desired), and then making it easy to share those events into the appropriate new or existing albums, based on who they want to enjoy the event.
     
  • Scale - good point on my preference for this to be venture-backed or a lifestyle business. I think it's deserving of become venture backed, but I've been conservative so far about really trying to take that plunge. At the moment, I want to get the Private Beta running again and prove product-market fit. 
     

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.

In previous blog posts, I've described the fresh new approach to digital albums that GreatAlbum enables, how to import Google Photos into GreatAlbum , and how the Media Cluster Recognition (MCR) engine can automatically recognize clusters of photos by date/time and organize them into new events. Now, let's bring them all together with a more complete guide on how to use GreatAlbum to organize your Google Photos in GreatAlbum and share them with the greatest of ease. 

1. Import Photos - Three Step Process

First, you have to import your photos into GreatAlbum. Let's assume you're like me, and you have about 20% of your organized in Albums and the rest have no album association.  This presents a challenge, because you want the albums you've curated to be represented as events in GreatAlbum, and then analyze all the other photos and auto-create events based on media clusters. So, right now, until this can become an ongoing process, there's a three-step approach to accomplish this. 

1a. Create a Private Working Album

Since your photos are likely to be shared in a range of different GreatAlbum Albums, and there will be some photos that you don't even want to share (or want to delete completely), I recommend you create a private working album, such as "My Private Album" or in my case "Erik's Private Album." You need to do this only once.

1b. Import Photos by Date Range

Import all your photos into your private album by specifying a date range that includes all your photos (e.g., 1-Jan-1990 to 4-July-2021). This could take a long time, so it will run in the back ground and notify you when it's completed.

1c. Import Photos by Album

Now, import all your Google Photo Albums into your private album. Before you click Import, be sure to select two options:

  1. Create a new event for each Google Album

  2. Mark photos as already analyzed by the media cluster recognition (MCR) engine (more on this later)

2. Organize photos based on Google Photo Albums

While this will import the photos in Google Photos albums twice, the second time the process will know NOT to import them again, but instead to update the existing media items in GreatAlbum (based on Google Media Item ID). When it does, it will associate the photos with newly created events in GreatAlbum, and it will mark the media items as already analyzed by the MCR engine, so that the MCR engine will not create new events for them based on media clusters, which would most likely duplicate the events based on the Google Photos Albums.

3. Organize remaining photos into events based on media clusters

Now in your Private Album, click the link to Create Events Based on Media Clusters. The MCR engine will now analyze all the photos that were not part of any of your Google Photos Albums. Where it finds media clusters, it will create new events and link the media in each cluster to their respective event. In the process, it will mark all the media items as analyzed, so that it doesn't accidentally analyze them again in the future (see how).

4. Review/refine events and related content/media

Now you will have a bunch of events in your private album.  Go through each event and make refinements, such as:

  1. Revise date, title and event type of a wanted event

  2. Merge events, if they actually go together

  3. Delete unwanted events

  4. Add Individuals and Places

  5. Add other media that should be associated with the event

  6. Remove media that isn't part of the event (move to another event, remove and leave in album without an event, or delete media as unwanted)

5. Move events to albums where they belong

Up to this point, all your work as been in a private album, so you didn't have to worry about sharing media or events that you wanted to keep private. Now, it's time to share your curated list of events with the groups of people that care most about them. As an example, let's say that there are five groups of people with whom you want to share the bulk of your events/media:

  1. Your Son's soccer team

  2. Your daughter's soccer team

  3. Families at your kids' school

  4. Your core family

  5. Broadly with all your family and friends

So, you would create or be part of an album for each one of those communities. As you are going through the events you've curated in your private album, you would use the option move each event (and related media, individuals, places) to the appropriate album.

Benefits of this approach

The benefits of this approach are:

  1. The people who get to access/enjoy the media and stories associated with these events has to be defined only once, not each time you want to share another event

  2. Album members get notified every time a new event is shared with them

  3. They also have easy ways to view/filter/search all events if they're looking for specific ones; this is especially useful after building up a collection of events over years

  4. If they, in turn, want to share an event with another circle of people, it's easy to share that event with another album (not move it)