Announcing Genie Builder, a no-code plugin to quickly build web GUIs & dashboards

Hi!

I’m very excited to share that we’ve just released Genie Builder (beta), a free VSCode plugin built on top of Genie Framework that helps you build interactive web GUIs for your Genie/Julia apps without writing code. With Genie Builder, you can just drag & drop UI elements such as text, sliders, data tables, and plots to create data apps in minutes without worrying about the front-end code.

Click here to check it out.

Here’s a quick guide to get you started: :point_right:Genie Builder | Quick Start Tutorial - YouTube

Don’t miss our JuliaCon talk on July 29 for a more detailed tutorial.

If you find Genie Builder useful, you can join our Discord for support, feedback, and feature requests. Can’t wait to hear your thoughts and suggestions!

Thank you,

Adrian

47 Likes

Fantastic! Thanks to all involved for your hardwork

2 Likes

I am curious how the experience compares with Dash and Makie GUIs, though I know next to nothing about any of them. Very excited for your JuliaCon talk!

3 Likes

When I follow the link for your Discord channel, I get this

NO TEXT CHANNELS.
You find yourself in a weird place.

That’s strange, sounds like a Discord server issue. Can you please try again and let me know if it works well this time?

If I understand your question correctly, the fundamental difference is that with GenieBuilder you create the GUI visually, by dragging and dropping UI elements onto the page – while with Dash and Makie you have to build your GUI by writing code.

1 Like

that works today

Maybe just me but I’s getting

julia> import Pkg

julia> Pkg.add("GenieBuilder")
ERROR: The following package names could not be resolved:
 * GenieBuilder (not found in project, manifest or registry)

Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Types.jl:68
  [2] ensure_resolved(manifest::Pkg.Types.Manifest, pkgs::Vector{Pkg.Types.PackageSpec}; registry::Bool)
    @ Pkg.Types ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/Types.jl:915
  [3] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
    @ Pkg.API ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:257
  [4] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:149
  [5] add(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:144
  [6] #add#27
    @ ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:142 [inlined]
  [7] add
    @ ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:142 [inlined]
  [8] #add#26
    @ ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:141 [inlined]
  [9] add(pkg::String)
    @ Pkg.API ~/julia-1.7.0/share/julia/stdlib/v1.7/Pkg/src/API.jl:141
 [10] top-level scope
    @ REPL[10]:1

Sorry, I don’t understand what you’re trying to do.

I assume what you want is the actual no-code app builder, which is distributed as a VSCode plugin that you should install from the marketplace, by using the links shared in the actual post?

Hi there
Yep I want to try out GenieBuilder and got the error. I followed the instructions to add manually when the ext install didn’t work and that’s where I am now.

followed instructions ran

ext install GenieBuilder.geniebuilder

got the extentions installed and hit start on GENIE BUILDER SERVER

got this in Repl

dave@deepthought:~/.vscode/extensions/geniebuilder.geniebuilder-0.1.8/scripts$ julia rungb.jl
 _____         _        _____     _ _   _
|   __|___ ___|_|___   | __  |_ _|_| |_| |___ ___
|  |  | -_|   | | -_|  | __ -| | | | | . | -_|  _|
|_____|___|_|_|_|___|  |_____|___|_|_|___|___|_|

LOADING -- PLEASE WAIT.

  Activating project at `~/.julia/geniebuilder`
    Updating registry at `~/.julia/registries/General.toml`
┌ Warning: The active manifest file at `/home/dave/.julia/geniebuilder/Manifest.toml` has an old format that is being maintained.
│ To update to the new format run `Pkg.upgrade_manifest()` which will upgrade the format without re-resolving.
└ @ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/Pkg/src/manifest.jl:287
  No Changes to `~/.julia/geniebuilder/Project.toml`
  No Changes to `~/.julia/geniebuilder/Manifest.toml`
ERROR: ArgumentError: Package GenieBuilder not found in current path:
- Run `import Pkg; Pkg.add("GenieBuilder")` to install the GenieBuilder package.

Stacktrace:
 [1] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:967
ERROR: LoadError: failed process: Process(`julia --startup-file=no --depwarn=no -e '
            using Pkg;
            Pkg.activate(".");
            Pkg.update();
            using GenieBuilder;
            GenieBuilder.postinstall();'`, ProcessExited(1)) [1]

Stacktrace:
 [1] pipeline_error
   @ ./process.jl:531 [inlined]
 [2] run(::Cmd; wait::Bool)
   @ Base ./process.jl:446
 [3] run
   @ ./process.jl:444 [inlined]
 [4] |>
   @ ./operators.jl:966 [inlined]
 [5] installgb()
   @ Main.RunGB ~/.vscode/extensions/geniebuilder.geniebuilder-0.1.8/scripts/rungb.jl:32
 [6] startgb()
   @ Main.RunGB ~/.vscode/extensions/geniebuilder.geniebuilder-0.1.8/scripts/rungb.jl:57
 [7] top-level scope
   @ ~/.vscode/extensions/geniebuilder.geniebuilder-0.1.8/scripts/rungb.jl:72
in expression starting at /home/dave/.vscode/extensions/geniebuilder.geniebuilder-0.1.8/scripts/rungb.jl:72
dave@deepthought:~/.vscode/extensions/geniebuilder.geniebuilder-0.1.8/scripts$ 

followed intructions to add GenieBuilder Where did I go wrong?

SOLUTION

It seems to have been the OLD julia version.

I removed the directory ~/.julia/geniebuilder

I changed the julia version to 1.7.3

reran the "ext install GenieBuilder.geniebuilder"

and it WORKED!!

Thanks, I understand.

You’re on Julia 1.7 on a linux?

OK - I’ll follow up with DM so we don’t spam the thread.

It seems to have been the OLD julia version.

I removed the directory ~/.julia/geniebuilder

I changed the julia version to 1.7.3

reran the "ext install GenieBuilder.geniebuilder"

and it WORKED!!

Hi! Great package!

Is any working example to make file upload with builder?

No idea how to implement examples from StippleDemos :frowning:

I try to make some test and I found that mechanics is low-documented, so I think primary feature request is more minimal working examples for buttons, file upload, ets… and documentation about views html design.

some things is unclear:

what @reactive exactly do? and how to use it?

on(model.message) do message
    model.isprocessing = true
    model.message[] = "Hello to you too!"
    model.isprocessing = false
  end

What is model.message[] and what is model.message and so on…