PieFed Meta

118 readers
13 users here now

Discuss PieFed project direction, provide feedback, ask questions, suggest improvements, and engage in conversations related to the platform organization, policies, features, and community dynamics.

founded 8 months ago
MODERATORS
1
 
 

Here's some development highlights from the last 3 weeks and who contributed:

Freamon

Markdown parsing improvements and let us use a different variant of Markdown than Lemmy does.
Poll federation - Mastodon accounts can vote on PieFed polls, and receive votes from PieFed users for Polls they've posted into a local community.
PeerTube integration - New channels arrive with 10 recent videos, their player is embedded in the PieFed post, new posts are correctly restricted to channel owners, and arrive into PieFed automatically.
Manual post-retrieval from remote communities function
Improvements to federation that led to an 80% drop in the amount of spam cleanup work admins need to do (some post deletions on remote Lemmy instances weren’t being imported into PieFed properly).

Rimu

A minor dark mode improvement.
Made the Poll UI and database.
Made a start on federation with Pixelfed and Discourse.
An admin tool to list communities that need to be assigned to a topic.
Update translations from crowdin - French is finished thanks to wazaby. Steady progress continues on Japanese translation.
Much better topic list layout.
Imported many PeerTube channels into piefed.social and assigned them to topics.
Top-level topics added to the main menu under ‘Topics’.
Soft deletes - post deletion can be reversed for up to 7 days.

Tallship

Suggested PieFed use 'soft-break' Markdown
Testing User Follows from various platforms
Reporting that the use of Mastodon's trademark was problematic

General comments

We are reaching the end of the initial roadmap I sketched out 6 months ago at the start of development. There are just a handful of small tasks to do before the “beta test” phase ends.

With Lemmy to PieFed federation pretty solid, we are entering a phase of diversifying to other platforms. The first other platform, PeerTube, involved a lot of work that hopefully paved the way for future platforms to be integrated more easily. Pixelfed is going live with Groups support very soon. Exploratory work has been done on integration with Discourse although disappointingly they have implemented federation as an optional plugin so fewer Discourse forums actually federate than I initially hoped. NodeBB looks interesting.

In general the Fediverse has reached a steady state in terms of user numbers which gives us space to slow down and reassess. There is not as much of a sense of urgency or bursting-at-the-seams that there was a few months ago. This might be a good time to start to pay down some of the technical debt we have built up. It’s not that the code is bad, it's just that it’s structured in a way that made things easy in the early days but is no longer serving us as well as it did.

Very soon it will be good to have a discussion to create a roadmap for what comes after the beta ("1.0"). I’m thinking - more platforms (Mastodon, Friendica, etc), community wikis, API for mobile apps, better accessibility and can’t wait to hear other ideas from the community.

2
 
 

I'm excited to see the new meme browsing interface feature in PieFed. I expected PieFed to be yet another Reddit clone using a different software stack and without any innovation. I believe there's an opportunity to take things a step further by blending the best elements of platforms like Reddit and image boards like Safebooru.

I wish there was a platform that was a mix between Reddit and image boards like Safebooru. The problem I have with Reddit is the time-consuming process of posting content; I should be able to post something in a few seconds, but often finding the right community takes longer than actually posting, and you have to decide whether to post in every relevant community or just the one that fits best. In the case of Lemmy, the existence of multiple similar communities across different instances makes this issue even worse.

I like how image boards like Safebooru offer a streamlined posting experience, allowing users to share content within seconds. The real strength of these platforms lies in their curation and filtering capabilities. Users can post and curate content, and others can contribute to the curation process by adding or modifying tags. Leaderboards showcasing top taggers, posters, and commenters promote active participation and foster a sense of community. Thanks to the comprehensive tagging system, finding previously viewed content becomes a breeze, unlike the challenges often faced on Reddit and Lemmy. Users can easily filter out unwanted content by hiding specific tags, something that would require blocking entire communities on platforms like Lemmy.

However, image boards also have their limitations. What I don't like about image boards is that they are primarily suited for image-based content and often lack robust text discussion capabilities or threaded comments, which are essential for fostering meaningful conversations.

Ideally, I envision a platform that combines the best of both worlds: the streamlined posting experience of image boards with the robust text discussion capabilities of platforms like Reddit and Lemmy.

I would be thrilled to contribute to a platform that considered some of the following features:

I would also like to see more community-driven development, asking users for feedback periodically in a post, and publicly stating what features devs will be working on. Code repositories issue trackers have some limitations. A threaded tree-like comment system is better for discussions, and having upvotes/downvotes helps surface the best ideas. I propose using a lemmy community as the issue tracker instead.

3
 
 

Discord is a very popular chat application which has a business model that is partly based around the concept of Server Boosts. In this model, people "boost" (sponsor) the "servers" (chat rooms) they are part of. They do so by paying Discord the parent company, but it unlocks benefits for both the chat rooms they are a member of and want to support (enabling more features for all users of the chat room) and for themselves (they get more features as well as labels that show they support a particular room). Discord is targeted at gamers and therefore Server Boosts are heavily gamified and commercialized, however the core is clever and based around solidarity for the common space that people create, and something other projects could draw inspiration from. Having a way in which people can materially support the communities they are part of can possibly be a path to financial sustainability either for pyfedi the project or for individual instances.

Imagine that an instance can set up an Open Collective / Patreon / Liberapay to receive donations ( a practice which is already relatively common for Mastodon instances). Individual users of a pyfedi instance can support the instance or community with financial contributions and then connect their profile (using oauth) to Open Collective / Patreon / Liberapay to establish a link. Instance admins or community admins can then configure their instance or community to translate those contributions in to particular perks. For instance a label that shows the supporter level on the profile or something that enables more features (character limit? creating communities? posting to exclusive communities? unique emoji? ability to bookmark posts? immedately get rid of "new user" status? allow profile verification like mastodon?).

The model is nested: if a community receives multiple contributions the community management interface could show that and say "hey, pay some of it forward to your hosting instance". Similarly, the hosting instance would have an interface that says "hey this instance is sponsored by x amount, pay some of it forward to the project".

Pyfedi already has a relatively flexible model for "roles" which could be tied to community membership. Similarly, it already works with a gradual permissions system which would make this a good fit. At the same time, this is not only a model towards financial sustainability, but some long-running platforms use paid membership as a way to keep low-quality contributions at bay. See for instance MetaFilter's one time fee.

The crucial thing here is that communities or the software do become proprietary / exclusive necessarily, but that it provides a flexible model to support the work at various levels. It can also be designed in such a way that it is not a "freemium" model, where "advanced" but necessary functionality is pay-walled. Instead, it could be done in such a way that all the necessary features are available, but that additional features that allow the creation of a community identity are unlocked through material support for the project.

4
1
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/[email protected]
 
 

Not sure if you noticed but half the threadverse is memes. They're not my thing but I enjoyed putting together the best meme consumption experience I could.

Check it out in this video or go to https://piefed.social/topic/chilling/memes?layout=masonry_wide&sort=hot to use it yourself. Click/tap on any image for a full screen lightbox-style image gallery that you can move through by swiping or using the arrow keys.

Can you think of any improvements?

5
 
 

By default, all posts show up in search results on #PieFed, #Lemmy and #Kbin. But in a first for the threadverse, PieFed has just added some privacy features that Mastodon had for a long time – being searchable is now optional!

Un-tick the “My posts appear in search results” checkbox in your settings and not only will your posts be hidden from the PieFed search on your instance, but on all other PieFed instances too (yes, it federates, but only to PieFed instances).

But wait, there’s more. Google will not add your profile or any of your posts to it’s index (because of the tag used when rendering your posts) AND comments you made on other people’s posts won’t be indexed by Google either (because of the <!–googleoff: all–> tag).

So if you’re tired of living in a fishbowl, want a bit of privacy or would rather people can’t follow you around, PieFed is here for you.

6
 
 

Or both?

7
 
 

PieFed seems to be the only fedi software that allows you to automatically receive notifications on a post when you comment on it (which i love!) so I'm wondering if this was something custom you built since no one else has been able to ship this.

8
 
 

Good luck with the project!

9
1
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/[email protected]
 
 

This is probably just me, but I found INSTALL.md to be a bit confusing.

So, for a fresh install of Ubuntu in a Windows Hyper-V VM, this is the list of steps I took to get something that at least looks like it might be the right thing:

remove unattended-upgrades, and clean up after OS install

(nothing to do with PieFed, just some necessary Ubuntu weirdness)

sudo systemctl stop unattended-upgrades
sudo apt-get purge unattended-upgrades
sudo apt autoremove

install postgresql 16

sudo apt install ca-certificates pkg-config
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
sudo apt update
sudo apt install libpq-dev postgresql

install python libs

sudo apt install python3-pip python3-venv python3-dev python3-psycopg2

install redis server

sudo apt install redis-server

install git

sudo apt install git

set up database

sudo -iu postgres psql -c "CREATE USER pyfedi WITH PASSWORD 'pyfedi';"
sudo -iu postgres psql -c "CREATE DATABASE pyfedi WITH OWNER pyfedi;"

clone PieFed

git clone https://codeberg.org/rimu/pyfedi.git

cd into pyfedi, set up and enter virtual environment

cd pyfedi
python3 -m venv ./venv
source venv/bin/activate

use pip to install requirements

pip install wheel
pip install -r requirements.txt

edit .env file

cp env.sample .env
nano .env (change SECRET_KEY to some random sequence of numbers and letters)

initialise database, and set up admin account

flask init-db

run the app

flask run
(open web browser at http://127.0.0.1:5000)
(log in with username and password from admin account)

Maybe this will help someone else (or maybe someone has spotted something that I missed - like I say: it looks right when loaded in a browser, but I'm not 100% sure)

10
1
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/[email protected]
 
 

Look for the wee magnifying glass on the main menu. For logged-in users only.

11
1
Now you can create audio posts (ia601202.us.archive.org)
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/[email protected]
 
 

When you make a normal 'link' post, if the url ends with .mp3 then PieFed will provide audio player controls on the page and put a little speaker icon on the post teaser, shown in lists of posts.

Go to https://piefed.social/post/44964 to see it in action.

12
 
 

The last week has been all about email.

With the addition of the private message ( kinda -private message...) feature the previous week it became more important that recipients are aware they have an unread notification waiting for their attention. Without an email telling them about it they might not see the message for days or whenever they next log in.

So now there's an automated email that goes out to people with unread notifications. The logic of it all took a while to get right - the system needs to track when someone last used PieFed, keep track of whether an email has already been sent for a notification, handle bounces, stop sending after a few bounces, etc. Also getting AWS SES set up right and SPF/DKIM/DMARC was quite a rabbit hole but one I'm very familiar with so it was pretty smooth sailing.

If you'd rather not receive those notification emails, click the unsubscribe link in the bottom of one of them or go to https://piefed.social/user/settings and untick the second checkbox. There's a checkbox for email newsletters too, which is a different thing.

Instance admins now have an email newsletter function which will email everyone. I'll probably use that once a month or so to give a summary of new features, news, etc.

Many people's email inboxes are overflowing or ignored so I'll be looking at adding push notifications pretty soon. As part of this PieFed will need to have a service worker, which will make it into a PWA.

13
1
submitted 7 months ago* (last edited 7 months ago) by [email protected] to c/[email protected]
 
 

PieFed can now send messages to other people on the same instance as well as people on Lemmy instances.

In this screenshot there is only one conversation shown in the left-hand panel but if I had chatted with more people they would all be shown in a list on the left. Clicking on a person will show our conversation on the right. Things I've said are left aligned while comments from the other party are shown right aligned. This layout should be familiar to anyone who has used messenger.com or similar apps.

To send a message to someone new, go to their profile and click the 'Send message' button. Read replies at https://piefed.social/chat (Account -> Chats). You'll get a notification when someone replies.

If your account is less than a week old or if you've been downvoted a lot you won't be able to message anyone.

I've built it in such a way that it'll be easy to add group chat functionality later, where several people can be in a conversation at once. This will be useful for moderators.

14
1
submitted 7 months ago* (last edited 7 months ago) by [email protected] to c/[email protected]
 
 

NSFW should federate but no other threadverse platform supports NSFL so I doubt you'll see many of those. On other platforms they use nsfw for anything objectionable, including gore, intense war footage, gross medical conditions, etc whereas on PieFed we have the option of making a distinction.

(Posts from other instances that have "NSFL" in the title have their nsfl flag set automatically, so that's better than nothing)

At https://piefed.social/user/settings you can choose whether posts flagged as nsfw/nsfl show up in your feed. Communities dedicated to nsfw posts are not allowed on piefed.social but occasional nsfw posts can appear in any community depending on the rules there.

I'm probably going to add a more flexible mastodon-style Content Warning option pretty soon. However it's a similar situation to the nsfl icon - no other threadverse platforms would show it.

15
 
 

Both kbin.social and lemmy.ml are out of order as for now. (At least there are other ones)

Also, this is my first post on Piefed, hi!

Edit: lemmy.ml now works again :)

Edit 2: Now both instances are working :)

16
 
 

cross-posted from: https://discuss.online/post/4986083

As of today, PieFed includes a ‘theme engine’ which makes it easier for people with low or no Python skills to change how PieFed looks and behaves.

PieFed is a lemmy/kbin clone written in Python with Flask.

17
18
1
submitted 7 months ago* (last edited 7 months ago) by [email protected] to c/[email protected]
 
 

Hi,

The CSAM scandal the other day got me thinking about the (often lacking) capability of the Threadiverse to deal with quickly with content moderation, and since PieFed has already been a bit experimental in this regard, I figured maybe this is a place where I could ask if an idea is feasible. Sorry if it's a bad match!

The idea is to identify trusted users, in the same way that PieFed currently identifies potentially problematic users. Long term users with significantly more upvotes than downvotes. These trusted users could get an additional option to report a post, beyond "Report to moderator": Something like "Mark as abuse".

The user would be informed that this is meant for content that clearly goes against the rules of the server, that any other type of issue should be reported to moderators, and that abuse of the function leads to revoke of privilege to use it and, if intentional, potentially a ban.

If the user accepts this and marks a post as abuse, every post by the OP of the marked post would be temporarily hidden on the instance and marked for review by a moderator. The moderator can then choose to either 1) ban the user posting abusive material, or 2) make the posts visible again, and remove the "trusted" flag of the reporting user and hence avoiding similar false positives in the future.

A problem I keep seeing on the threadiverse is that bad content tends to remain available too long, as many smaller instances means that the moderating team might simply all be asleep. So this seems like one possible way of mitigating that. Maybe it's not technically feasible, and maybe it's just not a particularly good idea; it might also not be a particularly original idea, I don't know. But I figured it might be worth discussing.

19
1
submitted 7 months ago* (last edited 7 months ago) by [email protected] to c/[email protected]
 
 

In grey text on each post is the domain name of the content being linked to. Clicking on that takes you to a list of all posts that link to that domain, such as this one: https://piefed.social/d/3909

In the right hand column there is a "Block" button which will stop posts linking to that domain from being shown to you.

Instance admins have an additional button, "Ban instance-wide", which stops posts at the federation level - no posts linking to that domain will be accepted from remote instances. It also removes all existing posts that link there - great for cleaning up spam floods.

20
 
 

One of the issues with joining the threadverse is that until you subscribe/join some communities, the Home feed is either very sparse (because they couldn't find the right communities) or flooded with random garbage (same reason I guess).

I'm trying a few things to help fix this.

  1. I'm subscribing myself to every popular community I can find so this instance already knows about it and has content in it, making it easier for others to find.
  2. Communities are grouped into a shorter list of topics. Viewing a topic shows posts from all communities in that topic, and a list of child communities in the right hand column. The viewer can drill down into a community to see a more focused subset of posts.
  3. After registering a new account, new users are taken to https://piefed.social/choose_topics where they can choose some topics that look interesting. Upon clicking 'Choose', they automatically join every community in those topics. For example if they chose 'technology' they'll be subscribed to about 25 communities. If they chose a few other topics too then they could potentially find themselves part of 100 communities right after registration.

It's a good start. Eventually I'd like to incorporate something like https://lemmyverse.net/communities which knows about every community there is, without needing someone to manually add it and manually assign it a topic. Some day.

21
 
 

In PieFed, communities are grouped under topics . Some of these topics are becoming quite big already (e.g. [Technology](https://piefed.social/topic/tech has 25 communities) and could perhaps be split up while there are probably very important topics that escaped my attention.

If you'd like a new topic, please suggest it in the comments below. There needs to be at least 3 reasonably active communities (active enough to have had a post in the last week) that can be put into the topic, to make it worth it.

22
 
 

Wondering if the roadmap for PieFed includes being able to use Lemmy mobile clients like Boost and Liftoff?
Its running ok as a web app in Android atm.

23
 
 

There are quite a few communities that are entirely image posts so presenting them as a vertical list of thumbnails doesn't really make the best of what is there.

To improve on that I've made use of the common web design pattern called 'masonry', where the images are arraigned like bricks in a wall. Check it out:

https://piefed.social/c/[email protected]

https://piefed.social/c/[email protected] (wide tile - best on large monitors)

On each tile there is the title of the post at the bottom which can be clicked on to view the post and it's comments. This footer could be improved with voting buttons and perhaps the number of comments, in future.

This doesn't work as well for meme communities as memes often contain a lot of text, which gets squished. Perhaps there needs to be a 2 or 3 column version with larger thumbnails.

24
 
 

I've recently added keyboard shortcuts for common actions. I find it much quicker to vote by using the A or Z keys! Also using X to see an image is very useful.

For now this works for posts but not comments. The HTML structure of comments is more complicated so I'll need to write different code for navigating those.

25
 
 

I've just added a new section in the sidebar, the right-hand column. It's titled 'Rational Discourse Toolkit' and shows a random selection of links to resources that are intended to encourage mindful and informed discussions rooted in awareness, critical thinking, and the well-being of the community.

You can see a complete list of all the links at https://codeberg.org/rimu/pyfedi/src/branch/main/app/inoculation.py

These links are drawn from my history and research which is limited by my experience and interests. Any suggestions you have for additional or better links and resources will be much appreciated, just put them in the comments below!

view more: next ›