Julia Equivalent of R's Flexdashboards - Project Idea

I’d really like to use a product with Julia which is somewhat equivalent to R’s Flexdashboards.

I’m aware of the excellent Dashboards.jl project, using Plotly’s Dash as the engine, which may ultimately suit my needs, but is a bit heavyweight and complex for what I’m thinking. I have also spent a fair bit of time messing about with Jupyter Lab and Voila, which works, but needs access to a server run Voila and has has the Jupyter dependency.

From experience, the big advantages with Flexdashboards are:

  • They can be authored very simply with RMarkdown
  • General layout (columns etc) are all controlled via the RMarkdown file
  • They can be hosted anywhere, including static file hosts such as Netlify

It feels like the majority of the Julia building blocks are in place. I’m specifically thinking about Weave.jl which seems to include almost everything needed, except for the markdown based page layout and some general design templates, perhaps bootstrap or materialise based. Add to this some widgets from Interact.jl and the core of the project would be ready.

Unfortunately, at this time I really do not have the Julia skills to build something like this on my own, so am therefore looking for a collaborator to take the lead. I am very keen to be involved in other aspects such as documentation, example writing, bug triage etc (all the fun parts!). I also think such a project would absolutely help me build my Julia skills too.

Any interest?

4 Likes

Will the generated output consist of a static HTML, including SVG charts etc?
Or do you want more dynamic content, with a running Julia process in the background, where user actions trigger recomputation?

1 Like

I started JSServe at some point:

It allows to freely combine markdown, html/css, widgets, javascript libraries and serve it!
example code for gif

It should also work in IJulia/Atom/Nextjournal, but isn’t as well tested for it.
The good news is, that I got a grant to create more applications and docs for it, and make sure it works in IJulia/Nextjournal!

Best,
Simon

9 Likes

I imagine the output would be static HTML, hence the ability to host anywhere. My thoughts were for visualisations to be handled by Vegalite.jl, but really should be agnostic to whatever plotting or charting library.

Some level of interactivity should be possible through the use of widgets (drop downs, sliders, radio buttons, date pickers). These would be bound to Javascript actions, although maybe not using jQuery like R. If this was not initially feasible, there is quite a lot of interactivity already available via the Vegalite.jl api.

The core of the work would be extending Weave.jl to handle multiple types of HTML page layouts, as linked to above in Flexdashboard.

1 Like

JJServe certainly looks like a big step in the right direction for the interactive widget part.

I would use something like this if it were available.

1 Like

How did you get WebIO to work with Voila?