Bonito has been on a journey from being a pretty neglected prototype to something offering similar functionality to established libraries like Shiny/Dash/Streamlit.
It is kind of funny, but I don’t think I’ve ever officially announced Bonito.jl since its creation in 2019, because I’ve never really been happy with it!
Years of small polish and additions finally pushed it over the threshold and I’m happy to announce it
Key features:
- Reactive & Interactive: Built on Observables.jl for automatic UI updates when data changes, sending only the minimal amount of data via a fast binary serialization protocol
- Rich Component Library: Buttons, sliders, tables, code editors, and easy custom widget creation
- Seamless Plotting: Deep integration with WGLMakie, plus support for Plotly, Gadfly, and anything else supporting the Julia display system
- Deploy Anywhere: Works in VSCode, Jupyter, Pluto, web servers, or export to static HTML
- JavaScript When You Need It: Easy ES6 module integration and JavaScript execution
- Pure Julia Development: Write your entire application in Julia, with optional JavaScript for client-side rendering
- Extensible Handlers: Wrap and compose handlers for authentication, logging, static files, and custom middleware
- Use Any Existing JS/CSS/HTML: Bonito provides no opinionated styling by default. Combined with straightforward external dependency integration, this gives you complete access to the entire JS/CSS/HTML ecosystem from within Julia.
Read more in the full blog post: https://makie.org/website/blogposts/bonito