Before contributing, make yourself familiar with our contribution guidelines, the code style guidelines, and the technical documentation for this project.
Before getting started, you'll want to install:
- Git
- Node.js
- pnpm (run
corepack enable
)
Then proceed to setup:
# clone the repository
git clone --recursive https://github.com/revoltchat/frontend client
cd client
# update submodules if you pull new changes
# git submodule init && git submodule update
# install all packages
pnpm i --frozen-lockfile
# build deps:
pnpm build:deps
# or build a specific dep (e.g. revolt.js updates):
# pnpm --filter revolt.js run build
# run dev server
pnpm dev:web
Finally, navigate to http://local.revolt.chat:5173.
If you want to pull in Revolt brand assets after pulling, run the following:
# update the assets
git -c submodule."packages/client/assets".update=checkout submodule update --init packages/client/assets
You can switch back to the fallback assets by running deinit and continuing as normal:
# deinit submodule which clears directory
git submodule deinit packages/client/assets
To make it easier to work with revolt.js
, you may want to temporarily make this change:
# packages/revolt.js/package.json
- "module": "lib/esm/index.js",
+ "module": "src/index.ts",
Any edits to the revolt.js codebase will immediately be reflected while developing.
# install packages
pnpm i --frozen-lockfile
# build dependencies
pnpm build:deps
# build for web
pnpm build:web
# ... when building for Revolt production, use this instead of :web
pnpm build:prod
You can now deploy the directory packages/client/dist
.
The app currently needs the following routes:
/login
/pwa
/dev
/settings
/friends
/server
/channel
This corresponds to Content.tsx#L33.