

!general@activitypub.space, that one. Yep.
Web developer. Lead developer of PieFed


!general@activitypub.space, that one. Yep.


There is a convention of putting a FEDERATION.md file in the root of your project (there is a FEP about it but I can’t remember what it is, heh) which lists the FEPs your project implements.
e.g. https://codeberg.org/rimu/pyfedi/src/branch/main/FEDERATION.md
There is no standardised API endpoint for discovering this info so basically you just need to lurk in all the dev spaces you can and watch what they’re talking about, stalk each other’s codeberg/github issue queues and PRs and just cope with the jank.


Yes theoretically you could have any type in there but votes are the biggest inefficiency in the system so I’ve only implemented it for them.
There are some nodebb forums that federate with us, which are intended for AP dev discussions - !technical-discussion@activitypub.space for example. Not very active. Also some Matrix channels, again not exactly humming. Everyone is pretty focused on their own projects, really.


There is a discussion but it’s an email chain between myself, Lemmy, Mbin, NodeBB so not really out in the open.
I’m thinking of using the normal OrderedCollection structure that AP has - https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection. An object of type ‘OrderedCollection’ with an array of ‘items’.


You’re right, to be more similar to the ActivityPub style of doing things the object should be a “type” of “Collection”, not just suddenly be an array instead of an object. I will migrate PieFed over to that instead.


That sounds pretty fun, I like your extremist take on things.
If you want to federate votes in an efficient way, consider doing them in batches, like this - https://codeberg.org/rimu/pyfedi/src/branch/main/docs/fep-4248.md. Sending batches means building up a queue, etc which is a pain in the ass so you might want to just receive batches and send individually.
You can do nested comments more efficiently by doing a single query for all the comments on a post and then constructing the comment tree in Go, rather than using multiple SQL queries. It’s a bit tricky to code but you can copy PieFed’s code - https://codeberg.org/rimu/pyfedi/src/commit/68d6799be5c321f9abf84d136cafef6de6e3aafb/app/post/util.py#L141


I recommend you set the Content-Security-Policy http header so that inline javascript (commonly used for XSS attacks) cannot be executed.
https://web.dev/articles/strict-csp
CSP being off is not exactly a security hole but it makes security holes much more likely. By using a strict CSP configuration you close off the possibility of a whole class of holes.
Also think about setting the Access-Control-Allow-Origin header and enable CORS on your REST endpoints.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Origin
Again, kind of a pain in the ass but gets rid of a bunch of potential problems before they start.


F-Droid has Drip, Bluemoon and Periodical.


Yeah there are other signs too. Look at those commit messages, all vague, all perfectly capitalized. All with a nice long description with bullet points.
No one does that in a project they’re building for themselves.


I was going to recommend this to someone I know but when I realised your readme.md is entirely AI-generated, I guess the whole project is probably vibe-coded. I can’t in good conscience recommend someone trust their health data to a vide-coded app because they tend to have security problems.
Also all ai-generated code is public domain so your AGPL license is kinda empty. Might as well use MIT.
That bug has been fixed.
PieFed is fairly straightforward if you already know sysadmin basics or have Yunohost. - https://codeberg.org/rimu/pyfedi/src/branch/main/INSTALL-docker.md
But for blogging only, you’ll find Ghost or Wordpress with the ActivityPub plugin federate with Mastodon better, which is a bigger audience.


No, it’s legit. Elena has been tooting and peertubing about the fedi and her self hosting journey for over a year.


Is there any way to know this is legit?


OpenWRT is basically Linux for routers and can be installed on a variety of devices - https://openwrt.org/
There is also https://www.gargoyle-router.com/


Yes, do the S3 integration before moving, for sure.


Oh right, yeah, Wordpress does tend to use up an awful lot of storage - every image gets copied 5 or 6 times, in different sizes just incase you need that size. It’s nuts.
You don’t need to store those images in your server though, they can be uploaded to S3 (object storage) where it is 10x cheaper to store them and then you can have a cheaper VPS. This way the VPS only needs to have enough storage for your MySQL database.
https://wordpress.org/plugins/amazon-s3-and-cloudfront/
There are many providers of S3-compatible storage, you don’t need to use AWS. Cloudflare R2 is super cheap - https://www.cloudflare.com/en-gb/developer-platform/products/r2/ or Hetzner - https://www.hetzner.com/storage/object-storage/


This is good advise, listen to dan. WP Super Cache is amazing although getting it working just right can take some tweaking.
The Redis Object Cache plugin is worth a try. It’ll only take a minute to set up.
Is it 200k users or 200k page loads? Those are really different as each user will load multiple pages in a month. If it’s 200k page loads then that server is way way too powerful (and expensive). Don’t let a crappy developer hide their lack of optimization skills by throwing your money at the problem.


It exists and I’ve tried it - https://en.wikipedia.org/wiki/Davfs2
Thing is, when an app thinks a directory is on a local disk, it does things which do not scale well over a network. e.g. reading every file in the directory to make thumbnails.
It’s cool man, don’t worry about it.