How Beam uses Code-based dashboards to Scale Analytics Products
At Beam, we administer 100s of customer dashboards with a team of 2 analysts. Our long-term vision for customer-facing dashboards is to be able to administer a high-quality dashboard with the click of a button. How will we accomplish this task with such a small team? Dashboards-as-code. The dashboards-as-code methodology allowed us to incrementally approach that goal by building boilerplate dashboards as a series of code-defined, standardized modules which can be arranged into a dashboard in a custom order by submitting a simple config file to a python script. This workflow enables analysts to design modules independently for a particular use case (e.g. end-user demographics may be one, while efficiency metrics might be another), then flexibly and selectively incorporate new modules into customer dashboards by adding them to their dashboard’s YAML files. Add/delete module operations can be done programmatically, saving the analysts countless hours in copy operations, while avoiding the need for more complex infrastructure. Because these resources are defined as code, inevitable iteration is fast, easy, and de facto documented. In this talk, we will demo what this looks like to highlight ease of use and flexibility of our implementation of dashboards-as-code with Hashboard. We intend to extend this idea soon to a database-oriented CRUD model, in which our non-technical staff can interact with a simple UI to create the configs that determine dashboard contents.