OpenROV and Discourse

Jeff Atwood June 15, 2015

We measure Discourse’s success as an open source project by one simple metric: are Discourse communities working? Is your community working? We recently interviewed Brian Adams of OpenROV to discuss how they use Discourse and get some specifics about what is – and isn’t – working for their community.

What is OpenROV?

OpenROV is both a product and a community. The product is a low cost yet highly capable Remotely Operated underwater Vehicle that we sell as a kit. It is all open source hardware and software that takes a weekend or so to build, but then allows you to pilot the ROV from your laptop as it streams HD video from up to 75M (246ft for us yanks) below the surface. The community is international, in 50 countries. It includes makers, explorers, treasure hunters, educators, college researchers, government agencies, and programmers.

By the way, for the programmers out there: it’s an underwater robot with lasers that runs Node.js, Linux and Arduino! Get involved :-)

When did it start?

OpenROV started back in 2010 with Eric Stackpole and David Lang. Their goal was to make a super small ROV that could find treasure buried deep in a water filled cave. They decided to open up the idea to anyone who wanted to participate and created an online forum where all kinds of people came and pitched in with ideas to help create the ROV. In 2012 they had a very successful kickstarter campaign to make the kit available to everyone. That kickstarter put us on the map.

When did your community form?

The community came at the very beginning, so that makes about 5 years of ongoing discussion on underwater robots! Here’s our first post.

How did your community connect?

I can’t even imagine trying to engage everyone without some type of Forum or BBS system.

By January 2015, you decided to migrate to Discourse. What prompted the move?

We started out with Ning when we began. Back then Ning was still hot with lots of funding behind it. As an out of the box community building solution it was great. After five years, Ning changed direction and were no longer investing in the forum and other community tools. The lack of innovation and focus on community building was a real problem.

With our Kickstarter behind us we were heads down on getting the ROV in the hands of as many people as possible. A healthy and vibrant community that offered both support and encouragement was key to our vision of how to grow. In our hearts, we knew the longer we delayed in cutting the community over to a new forum solution, the harder it was going to be. So in January we took the plunge.

You moved a 5000-member community to Discourse. What was the (technical) migration process like?

In our case we had a couple key technical hurdles to over come in order to move to Discourse.

  1. The scariest for us was to migrate all our old data from Ning. We had some true gems worth of data and discussions that reflected the identity of our community and there was no way we could afford to loose that. Neil from the Discourse team was our primary liaison for the migration. My only job at that point was to get the data out of Ning. Fortunately there was an export tool that kinda worked by dumping a huge JSON feed as well as most of the assets (video and photos) from our old forum. Neil took that export and created a sandbox site for us to login and review. The sandbox site was great, it allowed us to customize all aspects of the forum before go live with our actual content. We used the sandbox to find the edge cases that failed in the migration, and Neil would make updates and reload the data set for us to review. The only thing that we lost in our migration was the activity, number of reads and likes. Turns out that data just physically did not exist in the export files.
  2. The second major hurdle for us was Single Sign On. Ning was a service that integrated a blog, forum, photo gallery, and a ton of other mini apps all in to one monolithic ecosystem. Much like WordPress with all of their modules. Its easy to take for granted that the system in sharing a single authentication between all of these applications. When we chose to go with Discourse, we were choosing to integrate a lot of best of class services, forum, blog, etc… instead of getting a single integrated solution with a bunch of not best of class services. Integration for us meant a single identity that would transparently sign you in to all of the services. We ended up choosing Auth0 as our authentication solution. When I had initially gone through the meta forums on discourse, I had seen there was an Auth0 plugin available. But as we got in to the migration to the Discourse hosted solution, I ran smack in to the fact that the standard and business hosting plans don’t support customer managed plugins. No Auth0 plugin for us. Well Auth0 was made to support all of the standard authentication protocols such as OAuth and SAML… but Discourse used its own proprietary SSO solution around javascript tokens. In the end, I had to spend a weekend bringing up a bridge service that would translate between Discourse tokens and Auth0 tokens so that my users could authenticate to Discourse now and then other services in the future.

The rest of the technical parts of the migration were very straightforward. We ended up with a cut over night, took the forums down for a few hours, ran in the latest data dump from Ning, swapped DNS and we were back.

Migrations present human challenges as well as technical challenges. How did that go?

We knew at the very beginning that we might lose people in the cut over. We accepted that and did our best to mitigate that as a risk. There were several discussions on the Meta forums where others had shared ideas. I read all of those discussions. We ended up with a blog post to our community explaining what we were changing and when we were going to cut over. We shared links to both the sandbox test site at Discourse as well as to several other large communities that were using Discourse.

At the point of the cut over we also posted multiple pinned reminders in the forum explaining how people would need to re-register their accounts to re-link to their old data. That last issue was probably the one we could have improved the most. After the cutover, for the next few weeks, I was monitoring the logs in Auth0 and Discourse to make sure people were able to log back in to their old accounts. Turned out it was just too confusing. I could literally see people try over and over to reset passwords and login without verified emails addresses over and over. All of the help text around the login pages was just not enough. In the end I finally figured out how to export the user list from Discourse (that had been migrated from Ning with username and email, but no passwords) and then upload that data to Auth0’s APIs. Now people could simply use password recovery to log back in to their accounts vs. having to re-register and revalidate their email address.

Usage right after the cut over was a bit flat. Now that we could see the metrics, it was clear that a lot of our community had slowly been becoming less active well before we moved. One of the things that Discourse offered that I really liked, was a sophisticated email notification system to keep up engagement. It turns out that these were not working for users that had not logged in to the new forum system. It took a few weeks to figure this out, but once we did and Neil corrected the status data for our users, we saw 1700 summary digests fly out of the system which really helped get people to come and see what was going on. You might note that 1700 is very different that 5000. As it turns out, that was the number of users in our system that had been active in the prior system in the last year. Did I mention how nice it is to have the dashboard metrics in Discourse? In our old system, to cut down on spam, the co-founders were manually approving every new user request. We found that a lot of account activation requests were lost to the spam god ether. We ended up removing an embarrassingly huge number of accounts that had never been approved. I’m so happy that the anti-spam solutions in Discourse mean we no longer have to approve every new user by hand.

As far as uptake with the Discourse forum software goes, it’s still evolving. Our community is still fairly reactive to how much energy we put in to it. On days that we engage in the conversations we see a lot of traffic with people jumping back in to the conversations. I think the email digests have become just something that people expect, which is good – I should probably ask for a report to figure out how many people if any have changed the digest settings. For most of our users, I think the data entry has been intuitive, no complaints.

What’s your favorite type of interaction on your forum?

By far my favorite topics are those community members share about their own expeditions and ROV projects. When I see someone post in our “build report” or “projects” categories about robotic hands, an all metal OpenROV variant, or spotting whales, that really validates what we are trying to do.

You also have a dedicated support desk. How do you balance these two methods of communication?

As I mentioned, we are a community, but OpenROV is also a company with products that we sell. We spent a lot of time trying to figure out the best way to support both. We truly believe that for most questions people have about our product, they can find it by searching the forums. If that doesn’t work, they can get their questions answered the fastest by posting in the forum… and help the most people out because the question in public.

At the same time we had to acknowledge that not everyone was comfortable publicly discussing issues they might be having. So we ended up with a compromise. We list the forums first in our support section, but we do have a contact support option which will open a support ticket in Zendesk. Our customers are going to use whatever they want. Those of us that moderate the forum help direct users to the Zendesk support if we don’t think the forums will help (such as for shipping/ordering questions or warranty support) and the support team will often recommend a user back to existing answers in the forums.

We tried to setup an integration between Zendesk and Discourse, so that moderators could tag topics so that they create tickets automatically in Zendesk, and so that our support team’s responses to the Zendesk ticket would automatically be attached back as forum posts. Unfortunately we could not find a way to make that happen. Were hoping that future Zapier (of IFTTT if it ever happens) support might help us glue to two products together.

You’ve had nearly six months with Discourse, what’s working well for you?

Metrics, notifications, email replies to topics, oneboxing of links, search.

Discourse is open source and evolving rapidly; what are your most wanted improvements as a hosted customer?

A few things:

  1. Editor improvements to expose the additional features such as detail sections, polls, strike through, etc.
  2. Ability to let users select their preferred styling (specifically layouts). I find some users have a hard time with all of the metrics, while others, especially those that post a lot, want to see how much engagement they get off of a topic.
  3. Click through indicators on embedded videos.
  4. The Solved plugin that is in the works.
  5. A photo gallery plugin. There are topics where you ask people to post their best picture of X. The main topic should have a carousel to move through the photos.
  6. Markdown table support. I read the posts debating that. Fact is we post all kinds of side by side comparisons… oh wait, we can’t. :P

You’re using a custom style for the topic lists. Can you elaborate on why you customized here?

My problem with the default styling is that once you spend enough time with it to finally appreciate it, you forget the initial gut reaction you had to seeing it for the first time. In my experience that was “busy”. The call for action was buried. Eric is our co-founder who started the community. After the roll-out, Eric re-lived those same gut reactions, but was so busy with other things that he has not spent enough time to really get the forum software. Eric is the heart of our community and removing every barrier to his keeping active is a huge priority. Simplifying the screen so that he gets engaged enough that he would appreciate the “expert” mode layout is one of those tactics. Thus my issue #2 in the wanted feature section.

What’s your fondest memory of forums, way back when, or recently?

When I was a kid, I was rather involved in the BBS scene. I had a friend that ran a site (on a Commodore if I recall). Anyhow, when I signed in I used a lot of fake stuff in the registration form… at which point he broke in to the session with “Hey Ye bullshit artist…”, and a handle was born. Back then we spent a ridiculous amount of time making ASCII art photos for signatures. I still remember the one I used. Brings a smile.


Thanks Brian for these detailed responses. For more information, visit OpenROV and check out the OpenROV community!

Notable Replies

  1. I should also mention that @erlend_sh put all these questions together and really made this happen.

    I had talked with @badevguru a while ago about possibly blogging their story, because open source freakin' underwater robots are awesome, but Erlend was the catalyst that pushed things forward.

    We hope to make this perhaps a bi-monthly series to highlight the cool stuff Discourse communities are doing!

  2. Very awesome indeed! smile

    Now, that Auth0 Single Sign On issue there sounds quite big. Did discourse evolve from there since then?

  3. Nice read, enjoyed it.

    I can see my feature request got a mention... But still has no likes sad puppy

  4. As far as I know, SSO has not changed since I did the Auth0 bridge. If anyone is interested I can post the bridge code... I have it running on amazon beanstalk nodes.

  5. Excellent post @badevguru. Your story sounds eerily close to what we went through transitioning our site and forums... we have yet to implement the SSO but it's high on the list.

    Your theme is close enough to ours that I'm gonna toss ya a line of CSS. This fixes long username overflow on the topic list.

    .poster-info {
    max-width: 80px;

Continue the discussion