you're telling me a puppy coded this??
README.md

ActivityPuppy ✨

Puppy, fetch my posts!

ActivityPuppy is a federated microblogging server designed for small self-organizing and self-moderating groups, collectives and organizations, built on open protocols and mutual trust.

It is primarily intended to serve as a lightweight alternative to Mastodon, Akkoma and various forks of Misskey for small groups of friends/comrades who trust each other to keep their community safe by applying anarchist principles to moderation and administration.

Project goals

ActivityPuppy aims to be an ActivityPub project explicitly incorporating anti-hierarchical, anti-centralization and self-organization practices.

At time of writing, governance of the Mastodon project, which in some ways sets the de facto standards on the microbloggin fediverse, is centralized in such a way that it poses a threat to the safety of many marginalized users on the platform. This project aims to counter this by providing an alternative which takes decentralization as a tactic for preventing abuse seriously, and encourages the creation of many smaller-scale communities as opposed to a few large and hard-to-moderate servers.

Building and running

This project uses Nix and Cabal as build tools. Cabal is used for everyday development tasks such as testing, whereas Nix is used to set up the development environment and package releases.

You can acquire a development shell by running the following command:

nix develop

A development build can be done as such:

cabal build

In order to start a development build of the server, use cabal:

cabal run

Database "migrations"

Before you can do anything with the database, you should set it up using the sqlite3 program:

sqlite3 .state/db.sqlite < sql/0000.up.sql
sqlite3 .state/db.sqlite < sql/0001.up.sql