Soul is an authentication and a user relationships service built into one. It is meant to abstract some of the most important parts of a social media platform (i.e. user connections, relationships and authentication) into a separate service so that it can be shared across different social media platforms as long as they are using soul to authenticate and build user connections.
We believe that connections and reputation are what defines a person, user or a soul in the cyberspace (maybe in the real world too 🤔).
This service attempts to outsource some parts of a social media platform. Newer platforms can be created and maintained without having to start from a fresh user base. On the other hand, Soul members would not have to start from scratch in an entirely new social media platform as they would be able to transfer their connections across all platforms which uses Soul to authenticate. You'll be moving across different worlds/ dimensions while preserving your soul!
Don't let Facebook, Twitter, TikTok and Reddit monopolize the social media space, start your own platform!
Set up node using nvm and use project specific npm (optional)
nvm usenpm -g install [email protected]run MySQL
docker run --name soul-mysql -e MYSQL_ROOT_PASSWORD=root_password -d -p 3306:3306 mysql:latestset up database
docker exec -it soul-mysql mysql -u root -pmysql> CREATE DATABASE soul_db_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;mysql> CREATE DATABASE soul_db_test CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;install npm packages
npm installrun migrations (on soul_db_dev database)
DATABASE_URL="<YOUR_DATABASE_URL>" npm run migration:runrun Mailhog
docker run -d -p 1025:1025 -p 8025:8025 --name mailhog mailhog/mailhogrun Redis
docker run -d -p 6379:6379 --name redis redisnpm run startnpm run start:devnpm run start:prodnpm run start -- --entryFile replnpm run testnpm run test:e2enpm run test:covSoul defaults to .env.development while running the app and .env.test
while running tests by default. To override these, please specify your overrides in
new .env.development.local and .env.test.local files.
This can sometimes happen when the dist file is built incorrectly. To resolve this, simply delete
the dist file located in the root directory and run npm run start again.

