light_mode
dark_mode

About

The basic concept of Boomack is a web server with a push-style API for content publishing. This idea was born by the brothers Daniel Kiertscher and Tobias Kiertscher in the context of data exploration in text based IDEs (integrated development environments).

Rational

Most IDEs do not come with tools for visualizing media content or data visualizations. And if they do, they usually focus on a relatively narrow field of applications. And some IDEs like Emacs or Vim, e. g. have trouble showing any media content at all, because they use a purely text based user interface.

But because early feedback is essential for developers and data scientists, some kind of display with a rich support for different kinds of visual media is desirable. It should be independent from existing tools and platforms, to allow the developer or data scientist to use his or her preferred IDE and programming language. It must be platform independent and highly extendable and customizable. But it must come with good defaults to minimize the required efford for simple or typical scenarios. And once such tool exists, it could be used outside of the interactive development scenario and be controlled by cron jobs, scripts, reporting applications, and others.

If one like to think of a generic tool for displaying visual content, a web browser with all its features and media support comes to mind. But the browser is a pull-based interface. The user interacting with the browser decides what he wants to see. And it needs a web server to serve the content in form of hyper media text and media ressources — images, video, audio, …

With the rise of web sockets as a standard, it became possible to push content to a browser in a robust and performant way. Now the server can decide what the browser should display. (Of course, it was possible without web sockets earlier, but usually either with a considerable delay: polling, or with a kind of hacky solution: long polling.) This opens the door for the basic idea of Boomack: A web server with an API to push content to one or more web browsers.

History

Starting with the first prototype in 2019, the system was iteratively grown. Additionally to the first envisioned application — data visualization — another usecase was discovered and developed: A dashboard for live monitoring different views of an application log. Daniel mostly used the early versions of Boomack from within Emacs, pushing content from Clojure programs to the API. And Tobias used Boomack for monitoring a web application with a service oriented architecture in test and production.

With the growing number of usecases, the need for a more powerful API and a wider support for different kinds of media grew. And at the time of writing in 2023, Boomack has a growing eco system of plugins for data visualizing (Vega/Vega Lite), charting (Mermaid), PDF rendering, and more. The system was extended with the concept of actions: A way to trigger events in the browser and send back data to the server. This can be used for interactive scenarios or web application prototyping.

Delimitation

Boomack aims to stay a tool with a narrow focus: A hyper media display. Features like data transformation, aggregation, filtering, or image processing are outside of its focus. Application logic, e. g. for a web application prototype, or customizable data storage, is outside of its focus too. This kind of functionality is supposed to be implemented in other scripts and programs, which then hand the prepared content over to the Boomack Server for display.

That said, Boomack wants to make it easy to display any kind of text, data, visualization, or visual medium. Therefore, it comes with a plugin interface for text transformations and URL based rendering to allow non HTML content to be converted or rendered in a web compatible format and then be displayed in the browser. A prominent example is Markdown: The Boomack Server accepts Markdown text as input, because a text transformation plugin exists, that converts the Markdown into HTML.

Contribution

The main development is currently done by Tobias Kiertscher, with helping ideas and constructive criticism from Daniel Kiertscher. So, currently the development process is kind of a one man show. If any body has grown to like, uses Boomack on a daily basis, and is motivated to support the project, please feel free to contact Tobias at dev@mastersign.de.