Two serious problems with web apps such as Lemmy clients:

① The JavaScript conflict of interest —

The app is dynamically pushed from the server for every execution. The code is controlled by the webmaster, and therefore the app is designed to primarily serve the webserver. The interests of the user running it have a lower priority. The app was designed in a way that is oblivious to the fact that users have multiple accounts on different nodes, for example. The app conceals moderator and admin actions from the user, because that is what’s in the webmaster’s best interest, not the user’s.

The UNIX principle of having many small tools working together enables dev teams to focus on bring high quality to a small piece of code. The sum of many high-quality small tools is a high-quality tool in the end. The Lemmy devs could not possibly gather the resources to re-invent emacs in JavaScript. JS forces us to give up the important option of selecting good quality components for a toolchain.

② Unrealistic expectation of a working uplink —

As we can see from !isitdown@infosec.pub, the Lemmy nodes that are the least repressive and most respectful of our digital rights are up and down. They run on a shoestring budget. Client apps that are dependent on the server having 99.99% availability are themselves fragile and flimsy; helpless and useless when the server goes offline.

In the 1990s, we had newsreaders that would fetch usenet posts and store them locally, similar to email. We could read and take actions offline, then sync up whenever there was a connection. A notable motivator was the fact that many users had dial-up modems that shared a voice landline. There are still people with no Internet, who get their connection occasionally from a public library. They have been left behind.

Little consideration is given to how it’s a shitty quality client that becomes helpless and dysfunctional when the uplink is severed even for a few minutes. As I write this post, the infosec.pub server could fall offline spontaneously. Then what? The submission form stays open. It will let me type as long as I want without telling me that my manual human labor is being wasted. I will get a nasty surprise when clicking the submission button – a nonsense error pop-up “Type Error”.

A good quality app does not need the server to be online. It would launch a good editor like emacs or vi. When composing a post or comment is finished, it would store the message locally no matter what because it’s wise to have your own copy and so there is no data loss when the server glitches out. The app would have a separate activity to post the message if (and only if) there is an uplink and the Lemmy server is reachable.

Users should not be slaves to the servers’ uptime schedules

③ Anubis / proof of work enshitification —

This is really the same point as ② but in the context of anti-bot tech. Some Lemmy nodes are highly bot-hostile. They let you take just one or two actions, then scrap your session. Usually while typing. Then you must reload the site in another tab (so you don’t lose what you typed), in order to satisfy the proof of work demand over and over throughout your session. A good client would only have to go through that once, then it would submit all your actions quickly together and bounce.

  • cloud apps for offline use

    You mean, like, huh, desktop applications? Like real applications? That’s crazy talk.

    fetch usenet posts … We could read and take actions offline, then sync up whenever there was a connection

    Again, there was no “cloud” or online account with usenet at the time, so… no synchronization. The only account you can have nowadays is if you have a paid account to download movies, but that’s another story.

    • daveyOsborn ( daveyOsborn@infosec.pub ) OP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      18 days ago

      An “old coder” knows that “app” is short for application, and that the cloud is the Internet without getting tripped up (the same Internet that facilitated [and still facilitates] usenet and both synchronous and asynchronous comms). An “old coder” knows that the existence of an account (paid or not) is orthoganol to synchronization. An “old coder” who has ditched their desktop (or never had one to begin with) and cannot understand why anyone would still use a desktop in 2026 is probably not a very old coder.

      Get a different nick plz. It’s deceiving.

      • That’s confusing. I never left my desktop and avoid the cloud shit at all cost. Usenet is not a cloud, and synchronization requires an active server with an account (which was not the case with Usenet for a long time).

        • daveyOsborn ( daveyOsborn@infosec.pub ) OP
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          18 days ago

          avoid the cloud shit at all cost.

          No you don’t. You’re happy to use the cloud to post silly ass hattery, so obviously you’re not trying very hard to avoid it.

          Usenet is not a cloud

          Usenet is in the cloud with respect to yourself. Which is the same as saying it uses Internet. This is not confusing for old coders.

          and synchronization requires an active server with an account

          No it doesn’t. Synchronizing two datasets does not in the slightest imply the existence of an account.

          (which was not the case with Usenet for a long time).

          I think you will struggle to point to an RFC showing that anonymous or accountless access has been removed from the NNTP protocol.