Skip Navigation

Update - ongoing/future work

Edit I've deployed the new version that brings lemmy API calls to the client-side, let me know if you run into any issues!

Original post:

Hey everyone!

First, as you might have seen, lemmy.world, among others, experienced a hack. As part of their mitigation efforts they logged everyone out. I knew Alexandrite didn't yet handle expired sessions so I made a fix this morning. Now when you load Alexandrite it'll redirect you back to the login page if your session has expired.

Second I wanted to mention some of my ongoing work. I'm in the middle of a big rewrite! So far all of the interactions between Alexandrite and Lemmy (except loading images) happened on Alexandrite's server, but because of rate limits and hosting costs this is not as easy to scale, so I'm in the middle of rewriting it to move all of the Lemmy API usage to the client side. When this gets deployed hopefully in the next few days you'll have to log in again as the login token will be stored somewhere else. One downside of this is it bumps the minimum Lemmy version to 0.18.1, but most of the big servers should probably be updated by the time I release this, most already are. This effort should hopefully make it easier to self host Alexandrite, something I plan on exploring and documenting more later.

Besides having to log in again this should all be behind the scenes work, so you shouldn't otherwise notice anything different.

After all of that's done I had planned on working on either adding more of the missing features, or making some alternate post/feed layouts. I also plan on adding settings (both Lemmy and Alexandrite settings), the most flashy of which will be ability to change the hue of things on the website. Don't like all the purple? You'll be able to change that!

2
2 comments
  • Once it stores nothing server side, I think this will be my goto. It's slick AF.

    • As of a couple days ago it doesn't do anything on the server anymore, so you're good to go now! I also added some theming options in the settings (haven't implemented Lemmy settings yet, just some Alexandrite settings) which you should check out!

      If you want to verify it yourself, here's the login code. The app uses Sveltekit, so server side code is run in +server.ts, +page.server.ts, and +layout.server.ts files.

      If you want to compare against an old version that still did stuff server side, you can see all the server side files spread throughout src/routes/(app)/ mostly, though login code is at src/routes/(meta)/instance. Here's the old server-side version of the login code for example.