Hey all, just looking for some advice. I’d like to do a WASM application, just generally like a calendar + notes app. I’d like it to work on mobile and desktop through the browser. It’ll be served through Actix with Diesel for the backend. For the “frontend” I was thinking egui or leptos.

I’d like to avoid any JavaScript, so thought SSR might be the best approach.

Any thoughts/pitfalls? Should I look at something else for the frontend?

Its a lot of working parts for a calendar + notes app, but this will be a testing ground to see if I can get it all going :S

  • deur@feddit.nl
    link
    fedilink
    arrow-up
    7
    ·
    2 months ago

    You will be writing JavaScript. You will not be avoiding JavaScript. WASM is still glued to the DOM with JavaScript, if you are lucky and your idea isn’t that novel you won’t need to write any JavaScript, I guess.

    • Matty_r@programming.devOP
      link
      fedilink
      arrow-up
      1
      ·
      2 months ago

      Really? I thought part of the attraction for WASM was that it could be native code without needing JS. That’s good to know though. Thanks.

      • TehPers@beehaw.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 months ago

        Not yet. WASM unfortunately does not have DOM access or the ability to call any native JS functions without glue code.

        There are packages that work with wasm_bindgen in Rust that can generate that JS for you, but it’s all still super early.

        • Matty_r@programming.devOP
          link
          fedilink
          arrow-up
          1
          ·
          2 months ago

          OK, guess I’ll avoid WASM for now then. Someone else mentioned HTMX and pair that with Leptos, I should be able to get away with no JS.

  • mvirts@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    2 months ago

    Egui seems great to me so far, not super experienced with it yet though. I think you can get away with very little js using egui for rendering.

  • blechlawine@feddit.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 months ago

    I would use leptos for a wasm app, but you would need to figure styling out yourself, cause afaik there aren’t any rellay usable ui frameworks for leptos yet

    You could also use htmx for the frontend and render the html entirely on the server, then you wouldn’t need a wasm build. For rendering on the server i like to use leptos’ view! macro. Although if you need heavy interactivity you would probably still need to write at least some js, even when using htmx

    • Matty_r@programming.devOP
      link
      fedilink
      arrow-up
      3
      ·
      2 months ago

      I think I’m going to go this route - Leptos + HTMX. I’ll see how far this gets me without any JS. What type of interactivity do you think might require JS? I assume I should be able to do form validation etc without it?

      • blechlawine@feddit.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        Depending on how powerful you want to make the calendar feature, that might require some amount of javascript. Things like dropdowns with more functionality than the standard select element, or autocomplete inputs, too. Generally anything that has some amount of client-side state, although many of them can easily be done with something like alpinejs or petitevue. Since form validation should be done on the server anyways and the html elements for inputs already have relatively powerful validation built in as well, form validation should not require any js.

        • Matty_r@programming.devOP
          link
          fedilink
          arrow-up
          2
          ·
          2 months ago

          OK, that’s fine. Just means I’d need to think more about how stuff is implemented. I’m thinking like input fields for date and time selection etc. Could be an interesting challenge for sure.

          Surely its all been done before ha ha

  • 6️⃣9️⃣4️⃣2️⃣0️⃣@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 months ago

    There is yew, which I like, but I think development may have stagnated on the project. There have been a few commits to master within the last week, but no new releases since 2023.

    There is dioxus, which I haven’t used, but looks pretty cool and seems like it fills the same niche.