Contributing
Information about contributing to Lemmy, whether it is translating, testing, designing or programming.
Issue tracking / Repositories
Translating
Check out Lemmy's Weblate for translations.
Architecture
Front end
- The front end is written in
typescript, using a react-like framework called inferno. All UI elements are reusable.tsxcomponents. - The front end repository is lemmy-ui.
- The routes are at
src/shared/routes.ts. - The components are located in
src/shared/components.
Back end
- The back end is written in
rust, usingdiesel, andactix. - The server source code is split into main sections in
src. These include:db- The low level database actions.- Database additions are done using diesel migrations. Run
diesel migration generate xxxxxto add new things.
- Database additions are done using diesel migrations. Run
api- The high level user interactions (things likeCreateComment)routes- The server endpoints .apub- The activitypub conversions.websocket- Creates the websocket server.
Linting / Formatting
- Every front and back end commit is automatically formatted then linted using
husky, andlint-staged. - Rust with
cargo fmtandcargo clippy. - Typescript with
prettierandeslint.