# Deploying an interactive WGLMakie.jl example on the internet

**URL:** https://discourse.julialang.org/t/deploying-an-interactive-wglmakie-jl-example-on-the-internet/130313
**Category:** Visualization
**Tags:** package, wglmakie
**Created:** [June 29, 2025, 7:22pm UTC](https://discourse.julialang.org/t/deploying-an-interactive-wglmakie-jl-example-on-the-internet/130313 "2025-06-29T19:22:32Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [June 29, 2025, 7:22pm UTC](https://discourse.julialang.org/t/deploying-an-interactive-wglmakie-jl-example-on-the-internet/130313/1 "2025-06-29T19:22:32Z")

</div>

I have a simple code (see [OptimalFlightPaths.jl](https://github.com/OpenSourceAWE/OptimalFlightPaths.jl)) that displays a plot with some sliders, and you can change the plot using the sliders. How can I display this on the internet in a safe way?

---

<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: [June 29, 2025, 9:57pm UTC](https://discourse.julialang.org/t/deploying-an-interactive-wglmakie-jl-example-on-the-internet/130313/2 "2025-06-29T21:57:06Z")

</div>

I’d go for a containerized Bonito deploy!  
See: [Deployment · Bonito](https://simondanisch.github.io/Bonito.jl/stable/deployment.html)  
The exact server setup isn’t explained, since that really depends on where you’re hosting!

---

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [June 29, 2025, 10:17pm UTC](https://discourse.julialang.org/t/deploying-an-interactive-wglmakie-jl-example-on-the-internet/130313/3 "2025-06-29T22:17:11Z")

</div>

So you suggest to get a virtual server, an SSL certificate and then install Bonito and WGLMakie ?

Can such an interactive example be embedded in a Documenter.jl docu that is hosted on GitHub?

Are there any examples for publicly reachable web sites that use WGLMakie in an interactive way?

---

<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: [June 30, 2025, 8:36am UTC](https://discourse.julialang.org/t/deploying-an-interactive-wglmakie-jl-example-on-the-internet/130313/4 "2025-06-30T08:36:25Z")

</div>

You don’t necessarily need an ssh certificate, that’s often handled behind the scene by your server provider. The only real constraint is that you need a sever that can run Julia to get the full interactivity. Besides that it’s like setting up any other server to host a website.  
The bonito docs have WGLMakie plots included in the plot section, but only LScene keeps an interactive camera, since that has a JavaScript fallback - any other plot will stay static unless you implement interactions explicitly in JavaScript like it’s explained in the WGLMakie docs [WGLMakie | Makie](https://docs.makie.org/stable/explanations/backends/wglmakie#Execute-Javascript-directly) (sadly the outputs are currently broken since the switch to vite press. But in documenter it still works this way).

Another static example is [www.makie.org](http://www.makie.org), which uses only Bonito.

JuliaHub should also quite easily support hosting bonito apps, but I would need to look into how that would work exactly.

---

<div class="post-metadata">

### Author: ![snowgum](https://avatars.discourse-cdn.com/v4/letter/s/ecc23a/32.png) [@snowgum](https://discourse.julialang.org/u/snowgum)
#### Post date: [June 30, 2025, 4:16pm UTC](https://discourse.julialang.org/t/deploying-an-interactive-wglmakie-jl-example-on-the-internet/130313/5 "2025-06-30T16:16:21Z")

</div>

I am also quite interested in getting an interactive version of a Bonito/WGLMakie scene into an html version, ideally static.

I tried the example you mention with the interactions explicitly in JS, but sadly did not manage to get it working on a static version (sliders and plots were there, but changing them didn’t update the plot). What I did was essentially adapting the other example about export in the [documentation](https://docs.makie.org/stable/explanations/backends/wglmakie#Export), so that the `App` loop was enclosed as:

```julia
Page(exportable=true, offline=true)

# App loop

show(io, MIME"text/html"(), app) # save to static html

```

I’ve seen other examples making use of `JSServe.record_states`, but I read your reply to an [earlier question](https://discourse.julialang.org/t/makie-record-states-and-export-static-results-in-no-interactivity/127712) that this is essentially dead.

Are there any recent examples on how to use WGLMakie and Bonito to produce some static html (even at the expense at recording all possible states)? Or if not completely static, maybe an example on how to embed it on `Documenter.jl`?
