How to contribute?

That's amazing that you reached this page!
Memphis is and always will be open-source and community-driven. Our community is our power.

Why should you become a contributor?

"Working on Memphis helped me earn many of the skills I later used for my studies in university and my actual job. I think working on open source projects helps me as much as it helps the project!"
Contributing to open source can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine.
Whether it’s coding, user interface design, graphic design, writing, or organizing, if you’re looking for practice, there’s a task for you on an open-source project.

Getting started

1. Establish a local memphis environment

0. Join to Memphis discord channel
1. Install Golang
2. Fork Memphis broker
3. Clone the forked repo to your local station
4. Run a local memphis-mongodb using docker
curl -s -o docker-compose-mongo.yml && docker compose -f docker-compose-mongo.yml -p memphis up
5. Install broker dependencies - enter the cloned directory and run
go get -d -v .
6. Run the broker in debug mode (If you're using vscode, click F5) or run via terminal via:
DEV_ENV="true" DOCKER_ENV="true" MONGO_URL="mongodb://localhost:27017/maindb?retryWrites=true&w=majority" ROOT_PASSWORD="memphis" CONNECTION_TOKEN="memphis" ANALYTICS="false" LOGS_RETENTION_IN_DAYS="30" JWT_SECRET="JWT_TEST_PURPOSE" REFRESH_JWT_SECRET="REFRESH_JWT_TEST_PURPOSE" go run main.go --js --auth memphis --websocket_no_tls

2. You are

Frontend Contributions

1. The source files of the UI can be found in a directory called ״ui_src״
2. Navigate to "ui_src" dir
3. Install dependencies by running npm install
4. Run the UI locally by running npm start
5. Start coding! Here are some "Good first issues"
6. Once done - push your code and create a pull request to merge your updates with memphis main repo

Backend Contributions

Once you have established memphis dev environment, you can start coding.
Memphis backend opportunities are -
  1. 1.
    Memphis Broker
  2. 2.
    SDKs: Python, Go, Node.js, or future SDKs
  3. 3.
Grab a "Good first issue", and once done - push your changes and open a "pull request"

Data Engineer

As a data engineer, it would be great to get your feedback, potential use cases, QA, and push memphis to the limit in terms of data workloads would be an amazing contribution, as at the end of the day, you are our champion!


As a DevOps engineer, you can find multiple paths of contribution
  1. 2.
  2. 3.
  3. 4.
    DevOps Roadmap