[ANN] BonitoBook.jl

I’m happy to announce yet another Notebook implementation, with a focus on plotting, customizability and dashboards:

BonitoBook.jl

website

Demo:

Claude Code integration (other models work as well):

Over the last years, I’ve been trying to integrate Makie into Jupyter/Pluto, but there are some things that are simply impossible for a perfect integration when the platform just works too differently.

This has lead to me thinking about it and coming to the conclusion, that Bonito.jl is actually the perfect basis for a notebook platform, since it makes it possible to implement almost everything natively in Julia. With Bonito’s composable design optimized for creating dashboards, it’s also possible to re-use anything in BonitoBook outside the actual notebook, so it’s very simple to go from a notebook to a fully customized dashboard.

Read all about the advantages on the website and let me know what you think :slight_smile:

You can also try it out directly on:

66 Likes

Looks very cool, congrats on the launch!

Is Bonito reactive (no hidden state, rearrange cells at will, etc.) like Pluto?

3 Likes

That’s explained on the website:

Comparison to Pluto

I love the team behind Pluto and the attention to detail that has been put into it, but Pluto itselve has never appealed to me. The Pkg integration and reactive workflow isn’t working for me and that most of Pluto is implemented in Javascript instead of Julia doesn’t fit my approach of “ecosystem first, notebook second” which I imagine for BonitoBook.

The final issue is, that the Makie integration has stalled - you can use Makie in Pluto, but WGLMakie isn’t working as well as it could due to several reasons.

On the positive side, I think there’s lots to share, we’ve been wanting to create a shared websocket serialization implementation and it should actually be easy to bring Pluto’s reactive execution model to BonitoBook thanks to Pluto’s modular approach in that regard.

1 Like

I read the website and found this point confusing! "It should actually be easy to bring Pluto’s reactive execution model to BonitoBook” makes it sounds like reactivity isn’t there yet. But the very top of the website says “Fast & Interactive Built on Bonito framework for real-time reactivity and smooth user experience” (emphasis mine)

So after reading the website I was unsure if reactivity is already there or a planned “shouldn’t be too hard” future feature.

That looks very interesting, just trying it now.

ps: There is a url= missing in:

Pkg.add(url="https://github.com/SimonDanisch/BonitoBook.jl/")
2 Likes

Ah sorry about the confusion.

Reactivity can mean many things, and in that context I meant it’s easy to react to user input, but not the reactive execution model.

So, yes, it’s not reactive right now, since I actually don’t like it that much, but we can relatively easily add it as a new execution mode :smiley:

I should update the website to make it less confusing.

4 Likes

First impressions are really good!

I guess the printing of data can be improved, I mean:

4 Likes

Heh, yeah, it will need a few months to polish details like this.

This is surprisingly bad though, in theory it should do something similar to the REPL, will investigate this in the next days.

3 Likes

Amazing work! After skimming the website, it looks quite promising. I will use it for my current project for sure.

1 Like

Nice to see “Julia over JavaScript” in the comparison to Pluto! :slight_smile:

I wonder if you have any plans regarding other neat features pioneered in Pluto? After getting used to, these features become extremely natural, and I miss them whenever I need to use a Jupyter notebook:

  • Reactivity (ofc; already mentioned)
  • Automatic environment management – just do using SomePackage and it’s there, fully reproducible
  • Interactive inspection of arbitrarily nested data structures
1 Like

Looks awesome!

Could you say a bit more about BonitoBook vs Jupyter Notebooks? I saw the comparison to Pluto, but my company is currently all on Jupyter.

Wow! A few quick questions I have:

  1. How does this compare to Genie.jl? Do you see Bonito book as becoming its own Dashboarding ecosystem?
  2. Does this effectively “solve” some problems of Julia-WASM by fully allowing plotting with WGLMakie in the browser? What else do you see as needing WASM support?
  3. Is R support possible via RCall.jl? Or is there another reason it was not supported?

Thanks and congratulations!

~ tcp :deciduous_tree:

2 Likes

Looks really cool. Congratulations on the release!

I managed to get this working quite quickly:

but I have no idea what’s really going on, as yet. :slight_smile: I will read the documentation, I promise!

5 Likes

I suppose it’s possible… But note, the license is proprietary, non-commercial license I’ve not encountered before, and that usually conflicts with the GPL (used by e.g. R). Or rather, the GPL does allow you to do whatever in private, but not distribute/convey with proprietary code.

Pricing for commercial is available by email, you couldn’t distribute such (notebooks) for commercial anyway, but maybe to non-commercial users…, sort of violating the GPL? Or not if you do not send the full code, assume they set it up before?

To install, currently (though note Bonito.jl it builds on if MIT/open source and registered):

pkg> add https://github.com/SimonDanisch/BonitoBook.jl/

It’s not registered, and may never be? I can’t see it waiting for registration, and I thought open sourse a precondition. We do though have e.g. MKL.jl to install proprietary (though freely distributable), so at least for wrappers ok, they are open source, themselves:

1 Like

I checked only the website and not the repository. Didn’t know it didn’t have a open license.

@sdanisch , Maybe that should be mentioned in the website. Maybe in the comparison to Pluto section…

1 Like

yeah this is a difficult point and not entirely thought through yet… Ideally, I don’t want to develop it for a big profit, and rather develop it just like Makie, but I really don’t want to hear from a company using my software “sorry, there is no way we can justify paying you for maintenance”… Which is the situation for Makie most of the time :wink:

Edit: it does have an open license for non commercial use and will be registered.

4 Likes

I am disappointed to see this, though I totally understand the reasoning.

I’m pretty open for better ideas :person_shrugging: In the ideal world it would be 100% open source and everyone putting significant work into it would be paid by anyone getting significant profit out of it…

In any case, there is also fair use for commercial usage… I still need to figure out the best limitations and how to put them into the license, while allowing an open ecosystem to build… I’d definitely only want the biggest commercial users making a profit to pay for the maintenance :wink:

8 Likes

Yeah, someone should really come up with a “MIT but don’t be a jerk, dude!” license.

7 Likes

totally get it, and I do wonder where would company choose:

  • don’t use this software to begin with
  • pay

Because if it’s non-commercial, I wonder if company can even try it or something