JuliaCon 2023

Tips for writing and maintaining Dash.jl applications
2023-07-26 , 32-123

Dash.jl is the Julia version of Plotly's Dash, a framework for building data science web applications. Relying on the same frontend components (written in JavaScript) as the popular Python version of Dash, Dash.jl is a robust library and a trustworthy choice for Julia users. This talk presents industry-tested tips on how to write maintainable Dash.jl applications, Julian code patterns for Dash.jl as well as tricks to work around some of Dash.jl's limitations.


Dash.jl is an open-source Julia package. Built on top of Plotly.js, React and HTTP.jl, Dash.jl ties modern UI elements like dropdowns, sliders, and graphs directly to your analytical Julia code. Relying on the same frontend components (written in JavaScript) as the popular Python version of Dash, Dash.jl is a robust library and a trustworthy choice for Julia users.

The talk begins by going over some of Dash.jl’s fundamentals with the help of an example interactive Gantt chart application. We follow by covering tricks that can help user work around some of Dash.jl’s limitations like caching the results of slow-executing callbacks, enabling keyboard triggers for callbacks and adding custom mode-bar interactions to the stock graph component. More evolved subjects are discussed next such as writing scalable and testable multi-page applications. Implementing sticky state that can be shared via URL query strings is also covered, all this while putting emphasis on Julian code patterns.

The talk should allow Dash.jl newcomers to get an overview of the framework's capabilities. In turn, experienced Dash.jl users may learn a new trick or two.

Slides: https://etpinard.gitlab.io/dash.jl-tricks/juliacon2023/

Other useful links:
- https://github.com/plotly/dash.jl
- https://community.plotly.com/c/plotly-r-matlab-julia-net/julia/23
- https://discourse.julialang.org/tag/dash
- https://gitlab.com/etpinard/dash.jl-tricks

See also: slides

Etienne is currently working as a Data Science Developer at R2, engineering consultants in the chlor-alkali industry, juggling his time between writing data analysis application for electro-chemists and doing research on R2's next generation of models. Trained in climate science and having previously held the role of principal maintainer of plotly.js, the popular data-visualization library by Plotly, Etienne is a scientist turned open-source software enthusiast.