[ANN] Lit.jl — A Simple, Data-Centric Web App Framework for Julia

:rocket: Lit.jl — A Simple, Data-Centric Web App Framework for Julia

NOTE: Currently supported platform: Linux x86_64 (which also works on WSL)

Hi everyone,

I’m happy to introduce Lit.jl, a new Julia web app framework designed to make it easy for scientists, researchers, and data practitioners to build interactive web applications without requiring frontend experience.

:backhand_index_pointing_right: Live Demos: https://lit.coisasdodavi.net/
:backhand_index_pointing_right: Documentation: https://lit.coisasdodavi.net/docs/build/docs/getting-started/install
:backhand_index_pointing_right: Repository: https://github.com/nidoro/Lit.jl

:brain: What Lit.jl Is

Lit.jl takes inspiration from frameworks like Streamlit for Python, but is built specifically for the Julia ecosystem. It lets you write Julia scripts that become interactive web apps — with simple UI elements, reactive behavior, and minimal boilerplate.

  • No frontend skills needed
    You build your app purely in Julia; Lit handles the UI and web server.
  • Scripting-first model
    Apps are just Julia scripts that run from top to bottom on interaction — familiar and predictable.
  • Data-centric design
    Built for data workflows, dashboards, and exploratory interfaces that combine computation and UI.
  • Fast iteration
    Changes reload quickly, letting you iterate on app logic and layout without heavy overhead.

:light_bulb: Why Lit.jl?

Julia has many strengths for numerical computing and modeling, but simple interactive apps have traditionally required stitching together web frameworks or external tools.

Lit.jl aims to fill that gap with:

  • a minimal, familiar API
  • a design that prioritizes exploratory data interaction
  • no need to write HTML/CSS/JS to get useful applications running

It’s a solid choice for dashboards, demos, teaching tools, or lightweight GUIs for analysis.

:megaphone: Come Try It, Give Feedback

Let us know what you think! Feel free to open issues here: https://github.com/nidoro/Lit.jl/issues

19 Likes

Nice work!

Here with clickable links:

Live Demos: https://lit.coisasdodavi.net/
:backhand_index_pointing_right: Documentation: https://lit.coisasdodavi.net/docs/build/docs/getting-started/install
:backhand_index_pointing_right: Repository: https://github.com/nidoro/Lit.jl

However, it is very challenging to set up a server that runs Julia in a secure manner.

4 Likes

@nidoro very nice! Are you planning to register Lit.jl?

Yes I am. I gotta take some time to look into that. I believe I will need some permission, never gonne through the process.

1 Like

No permission required. You only need to follow the rules, like naming of your package and defining the minimal and maximal version of your dependencies in your Project.toml.

3 Likes

Impressive! The demo is a little bit laggy, even when change to the page with a simple control. I don’t know whether it is caused by the server or the ttfx of julia?

2 Likes

That’s probably the server. It is located here in Brazil, and it is also really limited, with 2GB of RAM and 2 cores.

1 Like

One of which:

The name is at least 5 characters long.

As you’ll have to rename the package for registration anyway, it might be better to give it a descriptive name.

2 Likes

Where did you find the rule that the package name has to be at least 5 characters long? I could not find it at 5. Creating Packages · Pkg.jl .

Sorry, forgot to add the link:

Yeah, I found out about that when I tried to register it yesterday. Sad. At this point it’s just too much work to change the name on everything: repo, source code, prefixes, website, logos, docs, demos, tutorial, domain names, paths and folders. It is not a small project. And I would rather focus on other things, so I guess I’ll just stay out of General.

1 Like

Well, it would be sufficient to change the name of the repository. And that is less than 5 minutes of work. And in the documentation, that is just search-and-replace.

Finally, you can also register a package with a shorter name. It just does not work automatically; you can request a manual exception from the maintainer.

The chance that many people will use your package is much higher if it is registered.

5 Likes

Actually, as of Nov 2015, and at least as far as 3-letter names are concerned, the minimum package name length is a hard rule.