PieFed development update September 2024 - not prepping for 1.0 release
submitted Rimu edited
byWe tried to hold back from coding new stuff in order for things to stabilize but it didn't work out. Maybe next month. Instead, we made a whole bunch of cool things:
rimu
- Detect offline instances and stop federating to them until they come back. feamon helped a lot with this.
- Private voting - see https://piefed.social/post/205362 for background.
- Remove moment.js to ease load on clients. We were using a quite heavy javascript library to format dates on the client side but removing the JS and doing it in Python on the backend instead more than halved the amount of JS we need to send (we're now down to 70 KB, gzipped).
- Post teaser redesign - the most significant visual change since the beginning. Image posts now have a much larger preview image and video posts can be played without going to the post itself. YouTube videos are lazy-loaded just before scrolling into view but only if running on AC power. Devices running off a battery (or like Firefox which do not support the battery API) will only load the video once you visit the post page, not while scrolling the feed.
- Use a connection pool for federation - rather than making a new network connection to send an Activity, PieFed will reuse an existing connection where possible. This has less overhead and results in faster federation.
hendrik
- Better notifications about comments buried deep in a thread
freamon
- Better federation of bans from remote admins.
- use HTML portion of Activity instead of Markdown. Lemmy sends Activitys as both Markdown and HTML. For a long time PieFed would use the Markdown and convert it to HTML for display but now it just uses the HTML that Lemmy provides.
- Image alt text federation
- Backfilling improvements especially with image posts.
- Many misc bugfixes
JollyDevelopment
- New theme - "card shadow" - this quickly became a favorite among the dev team and both freamon and myself use it. It's basically the same as the default except there are shadows behind things, giving a more 3D look to the interface and giving a bit more visual hierarchy. It's nice, try it - https://piefed.social/user/settings
- Admin page - instance administration - there is a table showing all the instances you're federating with and stats for each instance.
- Profile export - PieFed has had the functionality to import settings from a Lemmy profile for a long time but now it's possible to go the other way and export settings from PieFed to Lemmy.
- Add remote form - The form for adding a remote community used to require you to type the community as !whatever@instance.com but now you can give the URL as well, e.g. https://instance.com/c/whatever
--
As a free and open source project, PieFed receives no funding and developers are not paid. Any donations you can spare will help cover server and infrastructure costs - https://piefed.social/donate. Thanks!
Wonderful as always - I love watching piefed develop over time.
One worry I have relates to the automatically expanded videos in communities (or search queries) where every post is a video -there's a lot of relatively heavy content loaded at the same time, which might slow down less powerful devices? As piefed is otherwise incredibly lightweight, I imagine it could potentially cause trouble for some people.
Yes I put a bit of effort into the multiple-video issue, with low powered devices in mind.
The biggest win on that front was lazy-loading the YouTube embeds. Also I found that Chrome can handle quite a lot of videos at once while Firefox gets overwhelmed pretty easily. In my testing with Chrome on my 2012 Macbook https://piefed.social/c/videos@lemmy.world performed okaaay. The tab used only 90 MB of RAM, surprisingly.
Videos in communities are only loaded if running on AC power and the way that is detected is using a fairly recent browser API that is only provided by Chrome (and derivatives). I'm not simply using
loading="lazy"
on the<iframe>
, I'm using JS to add extra logic to do with the battery. Browsers that don't have the battery API (Safari, Firefox, 10 year old Chrome) load an image instead. Even Chrome will use an image instead if running on battery power (e.g. on a phone that is not charging).I think I've been pretty conservative in this regard.
There is one community with lots of .mp4 videos - https://piefed.social/c/ukraine@sopuli.xyz. These seem way way more efficient than YouTube so I haven't seen the need to get too clever with lazy loading those, although it's doable if necessary.
That's great! You're way ahead of me.
When there's a bunch of PeerTube videos in Firefox (at least on mobile) it can take a while for their images to show up, and some of the videos don't work (saying instead "The player is not compatible with your web browser. Please try latest Firefox version"). When entering the post the same embedded players work perfectly.
I'm assuming this is a PeerTube problem rather than PieFed, and it's really not a huge issue, so probably it's worth ignoring. The site is always responsive even as the video players are loading. :)
I'm guessing it's a PeerTube thing. It started happening to me after I scrolled past a few dozen videos which makes me think it's a rate limit with a misleading error message.
https://github.com/Chocobozzz/PeerTube/issues/6457
Thank you for the update, impressive progress!