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

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!

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

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.