# Make a webapp framework/ecosystem as awesome as R's Shiny: a challenge to Julia's community

**URL:** <https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533>\
**Category:** Web Stack\
**Tags:** visualization, webapps\
**Created:** [March 6, 2018, 11:45am UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533 "2018-03-06T11:45:07Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [March 6, 2018, 11:45am UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/1 "2018-03-06T11:45:07Z")

</div>

I quickly whip up this Shiny app and published as webapp for anyone to access within 5mins.

[https://xiaodai.shinyapps.io/shiny\_lang\_trends/](https://xiaodai.shinyapps.io/shiny_lang_trends/)

It plots the trends of programming languages and decompose the google trends time series into trend, seasonality and noise. I think it will be awesome for Julia to have such a framework and an ecosystem where at the click of a button one can publish a Julia app.

 ![shiny%20trends](https://global.discourse-cdn.com/julialang/original/3X/4/5/458375a0f196c01397cb953a413f61acff4fef04.png)

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [March 6, 2018, 12:12pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/2 "2018-03-06T12:12:55Z")

</div>

What do you see missing in the current ecosys?

---

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [March 6, 2018, 12:26pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/3 "2018-03-06T12:26:58Z")

</div>

There is no easy way to make a webapp. There’s escher.jl and WebIO.jl but they are quite new and some are not maintained as regularly. Also Shiny’s ecosystem has a [shinyapp.io](http://shinyapp.io) that allows me to publish an app in 5mins. That is actually quite a killer feature.

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [March 6, 2018, 12:31pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/4 "2018-03-06T12:31:42Z")

</div>

I see. But you need to make it clear, where you plan to work on and how you would like to connect to the package or group. f.e. if you see the need for more maintenance of WebIO, just volunteer.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 6, 2018, 12:40pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/5 "2018-03-06T12:40:39Z")

</div>

It is unclear what you are trying to achieve with this post in the context of an open source community.

Writing and maintaining such a framework is a very labor-intensive process. We all face a lot of “challenges” every hour we spend programming; some of these we are paid for (mostly indirectly, it is part of our job), some of these are hobby projects, mostly for solving problems we care about, or intellectual stimulation.

You asked about something closely related already [six days ago](https://discourse.julialang.org/t/visual-workflow-tool-for-julia-lets-build-one/9384), and started a related discussion [a month ago](https://discourse.julialang.org/t/can-the-two-language-problem-ever-be-solved-for-gui-programming/8857). Asking every week will not bring it closer. If you truly care about this, you should start a project.

---

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [March 6, 2018, 1:03pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/6 "2018-03-06T13:03:42Z")

</div>

I do think this post serves as a reminder to me on what I miss in the r world. One day I might actually start making something like it.

Also I am not sure if everyone is aware of how nicely [shinyapps.io](http://shinyapps.io) is set up. Publish an app in 5mins quite impressive. Perhaps an area worthy of investment.

---

<div class="post-metadata">

**Author:** ![y4lu](https://avatars.discourse-cdn.com/v4/letter/y/47e85d/32.png) [@y4lu](https://discourse.julialang.org/u/y4lu)\
**Post date:** [March 6, 2018, 2:02pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/7 "2018-03-06T14:02:41Z")

</div>

This is still slowly ticking along, it feels a bit circular as an interface generator needs a decent ui itself, which it isn’t yet generating fully automatically 😄  
Some table specs

 ![jstables](https://global.discourse-cdn.com/julialang/original/3X/b/4/b4164a45e68ff66b77dd74ab0668154b27f3463c.png)

---

<div class="post-metadata">

**Author:** ![randyzwitch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/randyzwitch/32/15955_2.png) [@randyzwitch](https://discourse.julialang.org/u/randyzwitch)\
**Post date:** [March 6, 2018, 2:36pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/8 "2018-03-06T14:36:27Z")

</div>

> [@Tamas\_Papp](#):
>
> Asking every week will not bring it closer. If you truly care about this, you should start a project.

Agreed. Especially when the same people who are working on plotting (and getting complaints) and working on 0.7 (and getting complaints) and working on the data ecosystem (and getting complaints) are generally all the same people.

Although I guess I’m part of the R community, the R community and MATLAB communities trying Julia are really starting to get aggravating here with the constant complaints. Be a part of the solution.

---

<div class="post-metadata">

**Author:** ![amellnik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amellnik/32/137_2.png) [@amellnik](https://discourse.julialang.org/u/amellnik)\
**Post date:** [March 6, 2018, 4:08pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/9 "2018-03-06T16:08:56Z")

</div>

I think Julia is actually in pretty good shape on the data-driven web app front despite not having something like Shiny or Plotly’s Dash. We now have several different ways ([mux](https://github.com/JuliaDiffEq/DiffEqOnlineServer), [JuliaWebAPI](https://github.com/JuliaWeb/JuliaWebAPI.jl), [pages.jl](https://github.com/EricForgy/Pages.jl), [http.jl / joseki.jl](https://github.com/amellnik/Joseki.jl)) you can build and deploy julia-based APIs in just a few minutes.

We don’t have a fancy interface that magically loads bootstrap, builds a dropdown, and displays static images for you, but I think that part is only useful in very nice applications. Most of the time people will want to build a real interface in React, Angular, etc. Rather than focusing on creating a Julia version of Shiny I would suggest longer-term goals like improving julia to webasm transpiling (demo that uses Tom Short’s [ExportWebAssembly.jl](https://github.com/tshort/ExportWebAssembly.jl/tree/codegen-jl) [here](https://alex.mellnik.net/julia-2-js/)).

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [March 6, 2018, 4:44pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/10 "2018-03-06T16:44:09Z")

</div>

I guess WebbApp and any other GUI thing should not be the focus of Julia for right now. Performance is the selling point.

---

<div class="post-metadata">

**Author:** ![joshualeond](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joshualeond/32/230_2.png) [@joshualeond](https://discourse.julialang.org/u/joshualeond)\
**Post date:** [March 6, 2018, 9:32pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/11 "2018-03-06T21:32:51Z")

</div>

There was a lengthy discussion on this several months ago:

> [@Is anyone developing a SPA package like R/Shiny or Python/Dash?](https://discourse.julialang.org/t/is-anyone-developing-a-spa-package-like-r-shiny-or-python-dash/5733):
>
> I’m working on a simple climate model that I would like to put online with some nice and friendly widgets. It would be a perfect fit for a Single Page Application, especially if Julia had a package that made this as simple as [Shiny](https://shiny.rstudio.com/) for R or [Dash](https://plot.ly/products/dash/) for Python. I’m a complete webapp newbie, so doing it [manually](http://www.stochasticlifestyle.com/building-web-app-julia-differentialequations-jl-online/) like @ChrisRackauckas isn’t on the table, at least not yet. Is anyone already working on something similar for Julia? (Shoutout to @essenciary, developer of Genie.jl: you mentioned on Gitter…

---

<div class="post-metadata">

**Author:** ![djsegal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/djsegal/32/13752_2.png) [@djsegal](https://discourse.julialang.org/u/djsegal)\
**Post date:** [March 6, 2018, 10:09pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/12 "2018-03-06T22:09:24Z")

</div>

Ill make you a julia dash app for $150/hr 😉

---

<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 7, 2018, 2:28am UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/13 "2018-03-07T02:28:02Z")

</div>

FWIW, you could build almost exactly this app in 15 minutes, though it wouldn’t look as nice. Use Jupyter notebooks (can be configured to be publicly accessible) + Plots.jl for the plots (with plotlyjs for bonus interactivity) + [Interact.jl](https://github.com/JuliaGizmos/Interact.jl)

`@manipulate for language in ["Julia", "R", ...] plot(...) end`

---

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [March 7, 2018, 2:39am UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/14 "2018-03-07T02:39:03Z")

</div>

Nice. Is there a way to publish it as well?

---

<div class="post-metadata">

**Author:** ![djsegal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/djsegal/32/13752_2.png) [@djsegal](https://discourse.julialang.org/u/djsegal)\
**Post date:** [March 7, 2018, 2:53am UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/15 "2018-03-07T02:53:58Z")

</div>

binder?

- [https://mybinder.org/](https://mybinder.org/)

* * *

example: ligo’s notebook

- [https://beta.mybinder.org/v2/gh/minrk/ligo-binder/master?filepath=index.ipynb](https://beta.mybinder.org/v2/gh/minrk/ligo-binder/master?filepath=index.ipynb)

---

<div class="post-metadata">

**Author:** ![hamoser](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hamoser/32/2207_2.png) [@hamoser](https://discourse.julialang.org/u/hamoser)\
**Post date:** [March 9, 2018, 9:43pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/16 "2018-03-09T21:43:27Z")

</div>

Performance certainly is a selling point, but if Julia wants to broaden its appeal beyond its core audience, web developers outnumber (data)scientists by a huge margin.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [March 10, 2018, 1:43am UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/17 "2018-03-10T01:43:06Z")

</div>

> [@hamoser](#):
>
> Performance certainly is a selling point, but if Julia wants to broaden its appeal beyond its core audience, web developers outnumber (data)scientists by a huge margin.

You can always have a wider appeal, but it’s better to just have good support for your target audience. Sure, scientific computing is a smaller audience (data science, still part of Julia’s core, is much larger but still no comparison to webdev), but if it can be a good tool for this domain then it will have staying power.

---

<div class="post-metadata">

**Author:** ![tk3369](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tk3369/32/2824_2.png) [@tk3369](https://discourse.julialang.org/u/tk3369)\
**Post date:** [March 10, 2018, 2:26am UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/18 "2018-03-10T02:26:43Z")

</div>

IMHO, while it’s nice to to have Julia everywhere, the web has pretty much settled in JavaScript. I think it would be more appealing to integrate than dominate.

In scientific/numerical computing or data science, dominate! 😃

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [March 10, 2018, 2:46am UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/19 "2018-03-10T02:46:18Z")

</div>

> [@tk3369](#):
>
> IMHO, while it’s nice to to have Julia everywhere, the web has pretty much settled in JavaScript.

Well, maybe at the moment, but I think that may be mostly because it’s the only game in town currently (nothing else just _runs_ on any browser), but from what I understand, WebAssembly support will be in all of the major browsers, so if Julia can be made to run well in that environment, it could really open a lot of doors for Julia on the web.

---

<div class="post-metadata">

**Author:** ![Steven\_Sagaert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/steven_sagaert/32/29578_2.png) [@Steven\_Sagaert](https://discourse.julialang.org/u/Steven_Sagaert)\
**Post date:** [March 10, 2018, 1:07pm UTC](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533/20 "2018-03-10T13:07:15Z")

</div>

Exactly. I hinted at this here [Can the two language problem ever be solved for GUI programming - #39 by Steven\_Sagaert](https://discourse.julialang.org/t/can-the-two-language-problem-ever-be-solved-for-gui-programming/8857/39). Julia would fit nicely in the webassembly ecosystem since wasm is based on LLVM and so is Julia. Either you wait for wasm to gain support for GC and exceptions (and threads) or the Julia implementers implement that themselves like Microsoft did by compiling the Julia runtime itself to wasm. SIMD support is also proposed so that would make it interesting for fast graphics and for running (parts of) scientific computations in the browser itself rather than on the server (e.g. face recognition, object recognition,…)

I have been digging a little deeper into wasm recently and viewed some presentations and demos and I must say the demos look really impressive. This really is a game changer and for me it’s the future of the web. Wasm really is going to blur the lines between desktop, mobile and web apps.

BTW: wasm is already supported by all the major browsers.

[Next page](https://discourse.julialang.org/t/make-a-webapp-framework-ecosystem-as-awesome-as-rs-shiny-a-challenge-to-julias-community/9533.md?page=2)
