PieFed is built with the Flask framework, which is similar to but simpler than Django. If you know Python and want to get up to speed with Flask quickly, the Flask Mega Tutorial is the way to do so. No JavaScript framework is used, except htmx. Bootstrap is the CSS framework.
The git repository is hosted on Codeberg, which is similar to Github. The usual workflow of creating a fork, adding your code to your fork and then submitting your changes to the original repo as a Pull Request applies to Codeberg, just like on Github.
Please discuss your ideas in an issue at https://codeberg.org/rimu/pyfedi/issues before starting any large pieces of work to ensure alignment with the roadmap, architecture and processes.
The general style and philosophy behind the way things have been constructed is well described by The Grug Brained Developer. If that page resonates with you then you’ll probably enjoy your time here! The codebase needs to be simple enough that new developers of all skill levels can easily understand what’s going on and onboard quickly without a lot of upfront time investment. Sometimes this will mean writing slightly more verbose/boring code or avoiding the use of advanced design patterns.
Subscribe to the email list and you’ll be informed as PieFed progresses.
When it matures enough, PieFed will aim to work in a way consistent with the Collective Code Construction Contract. Until then, it’s a benevolent dictatorship.
For coding standards, an overview of the code structure and community standards see CONTRIBUTING.md. More dev docs are in the docs directory of the repository.
Database / entity relationship diagram.
The PieFed blog contains bits and pieces about ActivityPub, Python, etc that were discovered along the way.