I’ve starting working on a lemmy front end called lemmy-ui-leptos using leptos, a Rust UI framework with isomorphic support, and tailwind + daisyUI for the component styling. This could eventually replace the frankenstein’s monster that lemmy-ui has become.
My first instinct is to just use server-side rendering for this, although that may not be possible since posting a comment involves rendering part of the page on the client side.
In light of that, my second instinct is to render entirely on the client side, but then Lemmy won't work without JS, which may or may not be a problem. Mastodon seems to get away with it, but I dunno if Lemmy can. Also, client-side rendering makes it difficult to avoid breaking the back button, which the UI currently does.
This is cool. I'm a front-end focused dev by trade and have been 11 years now. I've been picking up Rust as a side hobbie for 6 months or so and have not even peaked at these front-end frameworks. I know Lemmy is all about Rust, but I still think it's pretty cheeky they're using Rust for the front-end.
About Leptos specifically... If there's no shadow dom / rerenders and not trying to be react, I already like it better than it's competitor.
Ugh... Strong NIH vibes. There's already the Liftoff! client for mobile, desktop and web. They should contribute to that instead and ditch jerboa and the web client. Anyway, a web browser is a terrible way to interact with the fediverse since the browser doesn't know about your accounts, so I'd advocate for getting rid of web apps altogether
Anyway, a web browser is a terrible way to interact with the fediverse since the browser doesn’t know about your accounts, so I’d advocate for getting rid of web apps altogether
I'm confused about this - so you're saying that people on their desktop/laptop shouldn't be able to browse Lemmy from their web browser? Having to install an app really only works for the likes of say, Snapchat and Instagram where they're mobile-first platforms which clearly Lemmy is not. Even Discord, who really wants you to use their desktop app allows you to use it via a browser and most of the features are still available (and the ones that aren't are due to browser sandbox limitations, such as PTT and "Krisp" support).
I'm even more confused about "since the browser doesn't know about your accounts", are you saying that its bad that you have to sign into your instance's account when you first start using the site? Because I don't see how that is different from mobile (or even a desktop app) either, I use Liftoff on my phone and its not like it magically signed me into my account even though I had other Lemmy apps already signed in on my phone. I feel like I must be really misinterpreting what you're saying here.
I know that Android does technically have an Accounts Framework that multiple apps can tie into (so that if you have multiple apps from Microsoft for example, signing into one app signs into the others) but I'm pretty sure that only works if all the apps are signed by the same digital key - which makes sense for your general corporation like Microsoft, Google, Apple, etc but not for apps made my multiple independent developers since that would be a massive security issue.
And even if that none of that were an issue, Liftoff is made with Dart/Flutter, which dessalines (the main dev of lemmy-ui and Jerboa) may not have any experience with which could be another potential issue. I've contributed a couple of small fixes for Jerboa, but while I have Kotlin + Android experience, I don't have that much experience with Jetpack Compose (the UI framework Jerboa uses) which means in order for me to make any major contributions to Jerboa I'd need to get caught up on the whole Compose stack first (which when I originally did try to learn it, was an incredibly rapidly moving target like Swift/SwiftUI was in its early days) and I wouldn't be surprised if Flutter was somewhat similar to this.
The issue is really with links specifically , and the concept of web addresses for federated content in general. The web model does not map very well onto federated networks. Concrete example: If I search for something on google and then get a lemmy/kbin result, my browser doesn’t know that I want to view this content through my home instance. The question “I have a Mastodon/Lemmy account, so why can’t I fave/reply/whatever this content?” comes up a lot. The issue here is that people view the content through a web browser, and web browsers don’t understand the fediverse.