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.tsx
components. - 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 xxxxx
to 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 fmt
andcargo clippy
. - Typescript with
prettier
andeslint
.