# Hot reload (development) in Bonito.jl

**URL:** <https://discourse.julialang.org/t/hot-reload-development-in-bonito-jl/136056>\
**Category:** New to Julia\
**Tags:** bonito\
**Created:** [March 5, 2026, 11:14pm UTC](https://discourse.julialang.org/t/hot-reload-development-in-bonito-jl/136056 "2026-03-05T23:14:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![miro-ka](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/miro-ka/32/214228_2.png) [@miro-ka](https://discourse.julialang.org/u/miro-ka)\
**Post date:** [March 5, 2026, 11:14pm UTC](https://discourse.julialang.org/t/hot-reload-development-in-bonito-jl/136056/1 "2026-03-05T23:14:01Z")

</div>

Please, is there a way to get hot-reload while I work on the app in Bonito.jl? I have tried revise, liveServer, but nothing worked. I want to change some logic, style in the Bonito app and see the changes in browser.  
The only way now to see the changes I’m making is to restart the whole application.

Thank in advance 😉  
/m

---

<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:** [March 6, 2026, 2:24am UTC](https://discourse.julialang.org/t/hot-reload-development-in-bonito-jl/136056/2 "2026-03-06T02:24:09Z")

</div>

I too hit the same problem, that if I launch the server, then relaunching the server Revise doesn’t work. However, individual apps like

```julia
my_app() = App(; title="My App") do

```

can be relaunched at the REPL with `my_app()`, and for that Revise works fine.

@sdanisch Is there any way to stop the server and relaunch it with the updated code (ideally on the same port?)

---

<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:** [March 6, 2026, 9:27am UTC](https://discourse.julialang.org/t/hot-reload-development-in-bonito-jl/136056/3 "2026-03-06T09:27:03Z")

</div>

Have you tried `route!(server, route => new_app)` ?  
Or `App(app_function)` and then revising/evaling `app_function`?  
I must admit I haven’t use LiveServer in a while - it was a bit fragile as far as I remember.

---

<div class="post-metadata">

**Author:** ![miro-ka](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/miro-ka/32/214228_2.png) [@miro-ka](https://discourse.julialang.org/u/miro-ka)\
**Post date:** [March 7, 2026, 12:04pm UTC](https://discourse.julialang.org/t/hot-reload-development-in-bonito-jl/136056/4 "2026-03-07T12:04:44Z")

</div>

Thanks for both!

Not sure if ideal but a working setup I have now is below. Now I just run the refresh!(server) and all layouts, styles, logic is updateded.

> module WebApp
> 
> using Bonito  
> using WGLMakie  
> using Markdown
> 
> include(“styles/styles.jl”)  
> include(“plots/plots.jl”)  
> include(“pages/system\_page.jl”)  
> include(“pages/local\_page.jl”)  
> include(“ui/components.jl”)  
> include(“ui/layout.jl”)
> 
> function ui(session)  
> layout(session)  
> end
> 
> function start\_server(host = “127.0.0.1”, port=8888)  
> Server(  
> App(ui; indicator = ConnectionIndicator()),  
> host,  
> port)  
> end
> 
> function refresh!(server)  
> include(“webapp/styles/styles.jl”)  
> include(“webapp/plots/plots.jl”)  
> include(“webapp/pages/system\_page.jl”)  
> include(“webapp/pages/local\_page.jl”)  
> include(“webapp/ui/components.jl”)  
> include(“webapp/ui/layout.jl”)  
> route!(server, “/” =\> App(ui; indicator=ConnectionIndicator()))  
> end

end
