Can I build webpages and especially dashboards in Julia

I have no prior knowledge of the language yet I have heard a lot of good things about the language. but before I want to start it I want to know can I build web pages and dashboards in Julia.

If so what library should I learn.

2 Likes

Yes, definitely. There are a variety of web frameworks, but you might find Genie.jl or Mux.jl useful.

WebIO.jl also provides useful high-level tools for communications between browsers and Julia, and it works with Jupyter, Mux, and Blink (an electron wrapper) out of the box.

2 Likes

See some examples using WebIO at
https://github.com/lancebeet/julia-scripts

2 Likes

You can definitely use Genie to build an interactive dashboard - I built a simple one for JuliaCon last year:

That being said though, Genie is meant for professional web development: it makes it easy to, but it still requires writing both the backend (Julia) and the frontend (HTML, CSS, JS). If you have experience developing with web frameworks like Rails, Django, Express, etc you’ll feel right at home.

A UI layer for Genie, in the style of Shiny and Dash, is on the radar.

7 Likes

Also, check out this similar thread (from last month):


However, the main argument against a binder dash app would be the slow boot time

1 Like

I’ve started playing around with Binder + AppMode + WebIO and it’s actually very cool, thanks a lot for the example repo!

To understand the potential of this approach, I was curious to understand one thing: how easy it is to upload datasets to Binder? Say I make a notebook that has a file input widget, how easy would it be to set up a callback that uploads the data the user has locally to binder? With InteractBase there’s already a file input widget and I can easily add a javascript callback, but am unsure what that would look like.

Glad it helped!

@shashi do you have a quick answer to this before I look into it?

Also, do we know if InteractNext.jl works on binder yet?

I’m in the process of testing InteractBase on binder (the new version of InteractNext). It had some set up issues due to precompilation but it should be fixed with the (unmerged) latest release. I’ll let you know whether it works after the packages are released.

2 Likes

Is there any gitbook or any blog or anything where I can learn a step by step approach to this framework.

I would like to know more about it. the website is more like a dictionary you need to know what you are trying to search. I am trying to learn it as a beginner. What should I do?

please do reply…

@vikram-rawat I’m sorry, yes, I’m aware of the lacking documentation. The codebase has been a moving target with a lot of work going into new features and compatibility with latest Julia versions and changing and evolving dependencies.

Now it’s still in a state of heavy development due to migrating to Julia v0.7 and the HTTP stack (web server) - things can change and there can be bugs so definitely not beginner territory for the next couple of months.

Once this migration is complete though, the codebase will be stable until Julia 2.0. This will allow me to focus on user-facing work like documentation, guides, simple hosting, integration with UI libraries for building dashboards, Jupyter/IJulia workflows, etc. A realistic timeframe for these is more or less “the end of 2018”.

4 Likes

Thanks for such a quick response. That means I should wait for around an year to come back for a well documented MVC framework right?

Just in case it would be better if you could record a few beginner level youtube videos which won’t take too long but would get people like me get going who do not know anything about webpages (FYI i am from r background).

Thanks again. hope to see it flourish.

More like 6 months if things go by plan.

But maybe you can tell us what are you trying to achieve. Genie is indeed a full MVC framework which focuses on professional web app development. If you don’t need that, it could be that lighter Julia alternatives already exist - there are quite a few packages in the web development space.

I know shiny very well already. So for now I don’t need anything else. but R doesn’t have an MVC framework where anyone could build a multipage website easily. I am just trying to learn basic webapps in another language. Don’t want to go to python because it has same problems as R interpreted and everything.

So I was looking for alternative. I don’t have any usecase in mind. But I just want to learn a language where I could do almost everything if desire. that’s it.

Best of luck for your project. I will keep an eye on it.
:clap::clap::clap::clap::clap:

I still have my fingers crossed for your documentation to come. Wouldn’t it be better if you ask anyone from the community to write document.

Please whenever it’s ready don’t exclude the documentation part.

:grinning::grinning::grinning::grinning:

Wish you Luck

@vikram-rawat Thank you :slight_smile: Made good progress so far, a lot of work under the hood. Things are much better now, after the release of v0.7 and 1.0 as the ecosystem is catching up. Also, the new Pkg system is now mature enough so there’s a strong base to build upon. At the same time, switching over to HTTP.jl was a great step but a lot of work.

I’m now mostly going over all the modules and writing tests – once everything works and is tested I’ll move on to documentation and package publishing. Getting there :slight_smile:

7 Likes

Way to go

Good luck buddy

Just make sure any dumb non programmer like me should be able to understand it. (Documentation).

:grinning::heart_eyes:

1 Like

Now there is voila from jupyter

6 Likes

Not exactly what I am looking for. But now I have moved to golang gin gonic. It’s fast and ready for production.

I think I have waited long enough to learn a new language.

An example for secured web app in genie, please!

4 Likes

Yes, that would be nice. And if you could throw in GraphQL/React or ReasonReact example it would be perfect (at least for me)!