Last year we decided to change WalkHub from a feature rich, but difficult to maintain Drupal distribution to a microservice written in Go. This was a hard decision: at Pronovix we’ve been a Drupal shop for over 9 years now and we were also slashing quite a few features in the porting process, but we felt it was the right thing to do. In this blogpost I want to explain why we took this step and what the result is.

Ever since we launched WalkHub, one of the key feedbacks we received from our customers was that it was too difficult to start recording Walkthroughs. Installing your own WalkHub instance was a complex process. Many people also complained that they would never be able to justify maintaining a Drupal site for Walkthrough management alone.

On top of that we were running into a lot of technical debt with Drupal: while Drupal was a great choice for the initial prototype for WalkHub, we were seeing significant technical debt using Drupal 7 as the API provider. It is important to note that serving Walkthroughs is not a typical Drupal use case, and we were required to write a lot of custom code to make WalkHub work. As a result our development was being held back because of our technology stack.

Third, we were getting feedback from the market that Walkthroughs are just one type of embedded help. Customers came to us because they wanted to try WalkHub to solve a documentation issue often caused by a bad user experience, but Walkthroughs alone cannot solve that problem. Walkthroughs are great for task-oriented help topics, with a sequence of steps that need to be taken. Walkthroughs are not the right tool for conceptual and reference topics. People kept asking us how they could embed videos and text into Walkthroughs. The job people needed WalkHub to do was to offer help inside of an application, whatever format that help took.

For these 3 reasons we concluded we needed to refactor WalkHub. We decided that this time around we wanted WalkHub to be super lightweight, something that anybody would be able to add into an existing help/documentation system. That is why we chose Go and React.js with a PostgreSQL database. Go allowed us to make a single executable for the back-end that could easily be deployed. And we wanted to be able to run our own WalkHub on the same software as the open source package: this is why we prioritised support for a scalable PostgreSQL database over SQLite which might have been even easier to deploy.

WalkHub still has a Javascript front-end that records and plays Walkthroughs. It appears on your site as a 'Record' button and a 'Help center'. To test WalkHub on a web application, you can add the code snippet from the embed code generator below that will enable Walkthroughs from on your site (a free service we provide for testing purposes and for reasonably low usage).

In our first Go release, the help center was a WalkHub only thing, but we are about to change this to allow you to make any type of web resource available from an in-app help center. You can see a mock-up of the new help center on the bottom right on this page. In the near future we want to make it available as a free service that makes it really easy to add a help center to your site. Keep an eye open for a post with more information about the help center (you sign up here for the WalkHub mailing list). Spoiler: we are planning to build a Drupal 8 application to run it...

About the author

Kristof van Tomme

CEO, Co-founder

Kristof is a Drupal strategist and architect with a degree in bioengineering. He started his career as a technology manager. At Pronovix, the company he co-founded, he’s been focussing on Drupal since 4.7. Recently his interest in DITA and reusable, single source documentation have culminated in the project, an open source project that aims to become the GitHub of website documentation.

He initiated and later became the co-organizer of an introductory Drupal course at the University of Szeged (Hungary). As a permanent member of the Drupal Association, he was at some point the lead for the selection task force for European Drupalcons and of the inaugural Nomination Committee. Among others, he was the initiator and (co-)lead of Drupalcon Szeged (2008), DrupalCXO Brussels (2010), Drupal Developer Days Brussels (2011) and Drupal Government Days (2011). Currently he is involved in the organization of the Write the docs unconference in Berlin (2014 July).