using WGLMakie, JSServe
io = IOBuffer()
println(io, "~~~")
show(io, MIME"text/html"(), Page(exportable=true, offline=true))
app = JSServe.App() do
    return DOM.div(
        scatter(1:4),
        surface(rand(4, 4)),
        JSServe.Slider(1:3)
    )
end
show(io, MIME"text/html"(), app)
println(io, "~~~")
println(String(take!(io)))
MethodError: no method matching show(::IOBuffer, ::MIME{Symbol("text/html")}, ::Nothing) Closest candidates are: show(::IO, ::Union{MIME{Symbol("text/html")}, MIME{Symbol("application/prs.juno.plotpane+html")}}, !Matched::JSServe.App) at ~/.julia/packages/JSServe/qgqel/src/display.jl:60 show(::IO, !Matched::MIME{Symbol("text/tab-separated-values")}, ::Any) at /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/DelimitedFiles/src/DelimitedFiles.jl:830 show(::IO, !Matched::Distributions.Distribution, ::Any) at ~/.julia/packages/Distributions/fYgbJ/src/show.jl:18 ...