We 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 [email protected] 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!

  • cabbage@piefed.social
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    13 days ago

    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.

    • Rimu@piefed.socialOPM
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      13 days ago

      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/[email protected] 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.

      • cabbage@piefed.social
        link
        fedilink
        arrow-up
        2
        ·
        13 days ago

        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. :)