# \[ANN\] Bonito@v5

**URL:** <https://discourse.julialang.org/t/ann-bonito-v5/138058>\
**Category:** Package Announcements\
**Tags:** announcement, plotting, web\
**Created:** [July 10, 2026, 11:20am UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058 "2026-07-10T11:20:46Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [July 10, 2026, 11:20am UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/1 "2026-07-10T11:20:46Z")

</div>

**Bonito 5.0 is out** , a big release focusing on stability and performance.

Most of the work went into networking, session handling and serialization. Talking to the browser is now noticeably faster and more stable.

- **Performance.** HTTP/2 transport plus a reworked serialization protocol. ~3× WebSocket throughput, ~2.8× faster serialization on large payloads with a fraction of the allocations. Under load with many concurrent connections, ~30× more updates/sec than 4.2. Benchmarks in the blog post.
- **New docs system.** A drop-in replacement for a Documenter build: keep your existing `make.jl` and markdown, swap in `format = Bonito.DocumenterBonito()`, and the whole site is rendered by Bonito. VitePress-style theme, search, version switcher and an (experimental) blog with RSS. The linked blogpost and new Bonito docs are build with it!
- **[BonitoWidgets.jl](https://github.com/SimonDanisch/BonitoWidgets.jl).** New companion package: tabs, resizable splits, collapsibles, floating windows, a VSCode-style `Workspace`. Panels stay mounted, so a WGLMakie figure keeps its WebGL context and camera through any layout change.
- **Dark-mode-aware widgets.** Built-ins follow the OS light/dark setting and can be restyled via CSS variables.
- **Remote apps.** Drive an app running in one Julia process from another. Groundwork for remote BonitoBook workers.

**Under the hood:** `Session` split into `RootSession` + sub-sessions (finalizers replaced with refcounting), a single error boundary that surfaces render/init errors instead of killing the session, `KeyedList`, ANSI + CommonMark terminal output, asset-server range requests and caching, plus a lot of reconnect/race/thread-safety fixes and new tests.

Requires **Julia 1.11** and **HTTP.jl 2.4**. `Session`/`SubConnection` internals changed.

Full write-up and benchmarks: [Bonito 5.0 | Bonito](https://bonito.sh/dev/v5-release.html)

Thanks to [ReynKo](https://reynko.com/) for funding a big part of this.

Stay tuned for new updates to BonitoBook, WGLMakie compile time improvements, and WASM support, which I plan to release in the coming weeks!

---

<div class="post-metadata">

**Author:** ![technocrat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/technocrat/32/220947_2.png) [@technocrat](https://discourse.julialang.org/u/technocrat)\
**Post date:** [July 10, 2026, 4:25pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/2 "2026-07-10T16:25:48Z")

</div>

Timely and especially welcome since the Pluto maintainer just announced he’s dropping the project.

---

<div class="post-metadata">

**Author:** ![ConnectedSystems](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/connectedsystems/32/16815_2.png) [@ConnectedSystems](https://discourse.julialang.org/u/ConnectedSystems)\
**Post date:** [July 11, 2026, 2:02pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/3 "2026-07-11T14:02:35Z")

</div>

Oh no! That’s a real shame!

---

<div class="post-metadata">

**Author:** ![moyner](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/moyner/32/30277_2.png) [@moyner](https://discourse.julialang.org/u/moyner)\
**Post date:** [July 12, 2026, 11:09am UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/4 "2026-07-12T11:09:48Z")

</div>

Amazing stuff, looking forward to taking this for a spin! Any thoughts about where the GUI future of Makie is going? Will bonito+wgl be the way forward for complex apps with panels, or will some of this functionality make it into GLMakie?

---

<div class="post-metadata">

**Author:** ![cstjean](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cstjean/32/1444_2.png) [@cstjean](https://discourse.julialang.org/u/cstjean)\
**Post date:** [July 12, 2026, 11:57pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/5 "2026-07-12T23:57:10Z")

</div>

Thank you for Bonito! We’ve been using it for a year on an internal website, and on the whole it’s been a pleasant experience. The end result looks great, very responsive! We used it to drive an interactive MTK simulation in the browser, smooth as butter.

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [July 13, 2026, 10:49am UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/6 "2026-07-13T10:49:11Z")

</div>

> Will bonito+wgl be the way forward for complex apps with panels, or will some of this functionality make it into GLMakie?

The pipe dream is to kind of merge them!  
I have a html render prototype for GLMakie which can render Bonito apps with Makie, and if we can start to use Julia callbacks instead of JS via wasm compilation, we could even run most callbacks with GLMakie.  
The more reasonable plan is, to share API’s for Button/Menu/Tabs etc, so one can somewhat comfortably switch between a GLMakie and Bonito app.  
Btw, there’s a big release coming adding more widgets to Makie, including tabs, tables, and some other improvements for GUIs, so they should both grow to allow more and more complex GUIs.

---

<div class="post-metadata">

**Author:** ![langestefan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/langestefan/32/207923_2.png) [@langestefan](https://discourse.julialang.org/u/langestefan)\
**Post date:** [July 13, 2026, 11:45am UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/7 "2026-07-13T11:45:06Z")

</div>

> [@sdanisch](#):
>
> Btw, there’s a big release coming adding more widgets to Makie, including tabs, tables, and some other improvements for GUIs, so they should both grow to allow more and more complex GUIs.

Cool! Any preview you can share?

---

<div class="post-metadata">

**Author:** ![moyner](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/moyner/32/30277_2.png) [@moyner](https://discourse.julialang.org/u/moyner)\
**Post date:** [July 13, 2026, 6:05pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/8 "2026-07-13T18:05:47Z")

</div>

Sounds great! That sounds like it will let Makie cover a lot of typical GUIs. At least for us, tabbing/scrolling will make it much easier to set up tidy interfaces.

---

<div class="post-metadata">

**Author:** ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)\
**Post date:** [July 16, 2026, 4:51pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/9 "2026-07-16T16:51:08Z")

</div>

I just got around to make one 😉

I dont think that covers all new features, but quite a few already 😉  
[#5702](https://github.com/MakieOrg/Makie.jl/pull/5702)

---

<div class="post-metadata">

**Author:** ![klafyvel](https://avatars.discourse-cdn.com/v4/letter/k/a587f6/32.png) [@klafyvel](https://discourse.julialang.org/u/klafyvel)\
**Post date:** [July 17, 2026, 7:37am UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/10 "2026-07-17T07:37:47Z")

</div>

I think I am not the only one when I say this is gonna improve my analysis scripts a lot, thank you very much for your efforts!

---

<div class="post-metadata">

**Author:** ![rvezy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rvezy/32/17435_2.png) [@rvezy](https://discourse.julialang.org/u/rvezy)\
**Post date:** [July 24, 2026, 12:58pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/11 "2026-07-24T12:58:27Z")

</div>

What? Where did you find this information?

---

<div class="post-metadata">

**Author:** ![disberd](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@disberd](https://discourse.julialang.org/u/disberd)\
**Post date:** [July 24, 2026, 3:49pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/12 "2026-07-24T15:49:28Z")

</div>

> [@I'm quitting as Pluto.jl maintainer waving\_hand](https://discourse.julialang.org/t/im-quitting-as-pluto-jl-maintainer/138028):
>
> After an incredible journey, I’m stopping as core maintainer of [Pluto.jl](https://plutojl.org/). I am proud of what I have achieved. I have happy memories and I feel excited about whatever I will do next! In this post I want to tell my personal reasons for leaving, and say thank you slight_smileLooking back I feel lucky to have worked with so many brilliant people, and I’m really proud! I have learned skills, I made friends, and I have found a new community. And you know what… I think Pluto is really really cool. …

Though to be more precise, he pushed to finalize the latest features to make Pluto as stable as possible and then moved it to an organization with other maintainers, so it’s not that Pluto is going to die, it simply means that @fonsp is moving on with new adventures.

That being said, it’s very exciting to see all new recent development on notebook-like environment like Bonito, SpaceStation and KaimonSlate!

---

<div class="post-metadata">

**Author:** ![technocrat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/technocrat/32/220947_2.png) [@technocrat](https://discourse.julialang.org/u/technocrat)\
**Post date:** [July 24, 2026, 4:02pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/13 "2026-07-24T16:02:33Z")

</div>

Thanks for reading beyond the headline!

---

<div class="post-metadata">

**Author:** ![kahliburke](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kahliburke/32/208472_2.png) [@kahliburke](https://discourse.julialang.org/u/kahliburke)\
**Post date:** [July 24, 2026, 6:45pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/14 "2026-07-24T18:45:34Z")

</div>

> [@sdanisch](#):
>
> **Bonito 5.0 is out** , a big release focusing on stability and performance.

Thank you for the excellent work! I am working on Kaimon Slate ([GitHub - kahliburke/KaimonSlate.jl · GitHub](https://github.com/kahliburke/KaimonSlate.jl)), and have added support for Bonito based plotting with the previous version. I would guess that upgrading that to the new version will probably go pretty smoothly as well.

---

<div class="post-metadata">

**Author:** ![co1emi11er](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/co1emi11er/32/206849_2.png) [@co1emi11er](https://discourse.julialang.org/u/co1emi11er)\
**Post date:** [July 24, 2026, 8:32pm UTC](https://discourse.julialang.org/t/ann-bonito-v5/138058/15 "2026-07-24T20:32:39Z")

</div>

Wow! Looks amazing. Any chance those tables would be able to be an input table that you could paste into?
