Praxis is a chat-based collaborative decision-making (CDM) app that seamlessly blends informal discussion with structured decision-making processes. Groups can transition smoothly from casual conversation to formal proposals and voting without breaking flow or losing context.
Designed for organizations, teams, and communities that need robust group decision-making capabilities, it combines the familiarity of messaging apps with flexible decision-making tools, multiple voting models, and forum-style organization when needed.
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.
Please note that this is also an experimental approach within the Praxis project. The main repository is located at https://github.com/praxis-app/praxis.
Ensure that you have Node.js v22.11.0 installed on your machine before proceeding.
# Install project dependencies
$ npm install
# Copy environment variables
$ cp .env.example .env# Start server for development
$ npm run start
# Start client for development
$ npm run start:clientOpen http://localhost:3000 with your browser to view and interact with the UI.
Install Docker 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 --buildTypeORM is used to handle database interactions and migrations. PostgreSQL is the primary database and can be run via Docker or installed locally.
If you're using a locally installed instance of PostgreSQL, ensure that connection details in your .env file are correct.
# Create a new migration
$ npm run typeorm:gen ./src/database/migrations/<migration-name>
# Run migrations
$ npm run typeorm:runTo run migrations in production, set DB_MIGRATIONS to true in your .env file. This will run migrations on startup via start-prod.sh.