Hello all! I’m jwr1, a web and app developer, and also the admin of kbin.earth.
Me along with @olorin99 are the developers of Interstellar. Intestellar was the first app to adopt PieFed, and additionally already supports Mbin and Lemmy. It’s available on Android, Linux, and Windows, and a TestFlight is open for iOS and macOS.
We’d love to have more developers/contributors if anyone here knows Flutter or wants to get into it!
Heya! I develop Mlem along with @ericbandrews@lemmy.ml. The core PieFed features are now available on the beta version, and we’re currently working towards full parity with what we offer for Lemmy. We’re looking forward to bringing PieFed-exclusive features to our users once they become available through the API :)
Hello, I’m Gary.
I’m the developer for Summit, an Android app, which suppots both Lemmy and PieFed at the moment.
I’m the founder & lead dev of PieFed so I’m all over the place but the API is getting more of my attention lately. I’ve been doing web development for 25+ years and building social media type web apps for most of that time. Also lots of moderation on various platforms.
@andrew_s@piefed.social did the bulk of the work on the API.
Hello there !
I’m working on a new kind of interface. I’m very fond of how Zulip works: discussions are all part of a specific Topic (which in piefed would be a Post and its Comments, not a piefed’s Topic). A topic has a beginning and usually has an end. Topics are all part of Channels (piefed equivalent: community). It’s a pretty standard way of modeling data, but the innovation is in the interface: everything can be merged in a combined view with every comment and every post in a single “timeline”, giving you affordances of a chat. Using chat affordances makes discussion and contribution easier, and using a combined view allows you to very quickly follow each topic you are interested in and filter out the topics or even channels you’re not that interested with. Of course with the possibility to see all of them specifically.
It’s hard to describe in words (they have their own explanation for more details), much easier to try it out if possible. Here are two screenshots showing how it can look like: the first shows a combined view of posts and comments in this community, and the second one shows a post and its comments


The current API pushes towards a certain type of interfaces: the hierarchical “view communities” -> “view posts in a community” -> “view post and comments”. Not a bad thing in itself, but it’s not the most straightforward for my use case:
- to me, posts and comments are really the same but they’re in two different endpoints. I need to do some logic to “merge” them
- I would like to have the new posts/comments as they arrive, so some kind of realtime-ish stuff. Maybe polling could be enough if the API could return 304. Maybe long-polling could work (the server doesn’t respond yet, but waits for actually new content to arrive to return the response)
- But for long-polling to work there needs to be some kind of “since” or “after” parameter. As a more general point, “after”/“before” is much much better than offset-based pagination: pagination isn’t really useful (no one wants to go to page 7, we really want to go to the next or previous page, or around a specific point in time) and is bad for the database (with pagination, all items need to be fetched from disk and sorted before dropping them; with a “before”/“after” the index directly says which items will be fetched. More details in this nice page )
I’m not expecting you to change the API just for me, this is just to inform about what might help me, but I think a realtime-ish api and a before/after param can also help others.
And thank you for the very nice work !
That is an interesting idea. How will your UI display comments like a chatroom when they are deeply nested? As in, a reply to a reply to a reply to a reply? I think you’re going to have a difficult time with that.
Adding an endpoint to retrieve posts and comments is pretty straightforward, the interesting part is the realtime updates.
PieFed is using SSE in a limited way, to tell the frontend about new notifications and new private messages. The frontend makes a GET request to retrieve the content and then updates the UI. The backend code for this. The frontend code.
This would need to be extended to send events for all new content, not just notifications and PMs.
So we have the basic architecture already there and it wouldn’t be much work to provide what you need. I have a lot of other priorities to deal with but if you engage with others in our matrix or zulip you might find someone wants to pick this up. Or make a codeberg issue.
How will your UI display comments like a chatroom when they are deeply nested?
Simple: there is no nesting :) it’s a flat chain ordered by date. It’s a design choice by zulip, not necessarily better in all cases, but is driven by different design decisions: discussions are expected to be about converging to something, so everyone is expected to read everything in a thread. If the subject diverges, it is expected to move to another thread. So instead of branches there is a set of topics, and you can mute some if you want to
So we have the basic architecture already there and it wouldn’t be much work to provide what you need.
Indeed there is the architecture, it should be feasible. I might join and even have a go at it at some point (so I can add the before/after haha)
Thanks for the pointers !
wjs018 - a contributor to piefed, mainly doing UI/UX stuff for the web interface rather than the api. I am not a dev by trade, instead I do biophysics, like at a lab bench in a lab coat and all that. My first foray into programming was when I was in grad school and I had to learn enough IDL and python to rewrite a bunch of IDL scripts into python so that any of us knew what the hell they did. Then, I changed the whole direction of my PhD thesis and didn’t need any of that…however, I did stick with python as a bit of a hobby, and the rest is history.






