Praxis is an open source social networking site. Motions are the main focus and come with a wide variety of voting features, with consensus as the default. Create a group and set it to no-admin, allowing group members to create motions and democratically decide on name, settings, roles, or planning of real world events.
While model of consensus is the default, group members will also be able to use regular majority vote, and have the ability to create and assign new roles with various permissions. All of this can be tailored in group settings to meet the specific needs of your community, either by a groups admin, or by motions as a group evolves over time.
The tech stack includes the following:
- Apollo GraphQL
- TypeScript
- Next.js
- Prisma
Praxis is free and open source software, as specified by the GNU General Public License.
- Install Node version 15.12.0 using NVM or Homebrew
- Install Yarn:
npm install -g yarn
- Download the package or clone the repo.
- Install Node modules:
cd praxis && yarn install
- Create a
.env
file and include your database URL asDATABASE_URL
- Generate the Prisma client:
yarn prisma generate
- Run the database migrations:
yarn prisma migrate dev --preview-feature
- Run
mkdir public/uploads
to enable image uploads - Start development server:
yarn dev
- To create first user, navigate to http://localhost:3000/users/signup
- To test out roles and permissions features, navigate to http://localhost:3000/roles
- Enable pre-commit hook with Husky:
npx husky install && npx husky add .husky/pre-commit "yarn lint-staged"
The default database is PostgreSQL.
- Discord: https://discord.gg/CAHb3AhQat, or message me at forrest#2807
- Notion: https://www.notion.so/praxis-74cb6558cc6f4470a967d95fad039303
Praxis is open to contributions. Please read CONTRIBUTING.md for more details.