Praxis is an open source social network with features for collaborative decision making. Proposals are the main focus and can be used to plan events, update roles and permissions, or even make changes to how the app works.
Praxis is an open source social network with features for collaborative decision making. Proposals are the main focus and come with a wide variety of voting models, with consensus as the default. Create a group and set it to no-admin, allowing group members to create proposals 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 proposals as a group evolves over time.
The tech stack includes:
Praxis is free and open source software, as specified by the GNU General Public License.
You are entering a construction yard. Things are going to change and break regularly as the project is still getting off the ground. Please bear in mind that Praxis is not yet intended for serious use outside of testing or research purposes. Your feedback is highly welcome.
Core features currently in development:
Ensure that you're using Node v18.17.1 before proceeding.
# Install project dependencies
$ npm install
# Add .env file and edit as needed
$ cp .env.example .env
# Start server for development
$ npm run start:dev
# Start client for development
$ npm run start:client
# Start app for production
$ npm run start:prod
Open http://localhost:3000 with your browser to view and interact with the UI.
Ensure that you have Docker installed to use the following commands.
# Start app in a container
$ docker compose up -d
# Build and restart app after making changes
$ docker compose up -d --build
# Enable pre-commit hook with Husky
$ npx husky install && npx husky add .husky/pre-commit "npx lint-staged"
Praxis takes advantage of code generation based on the current GraphQL schema. The generator should be run after any changes to GraphQL documents, as well as after any changes to the schema.
# Keep generated types and hooks in sync with the current schema
$ npn run gen
Read more about GraphQL Code Generator.
Install the following Chrome extension provided by Deque Systems: axe DevTools - Web Accessibility Testing
Once the extension is installed, open up Chrome DevTools, and navigate to the "axe DevTools" tab. Here you can click the "Scan ALL of my page" button to check for any accessibility issues.
Praxis is open to contributions. Please read CONTRIBUTING.md for more details.
Message xtal_nomad on Discord if you'd like to get involved or collaborate.