mirror of https://github.com/LemmyNet/lemmy.git
1.5 KiB
1.5 KiB
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 main page and routing are in
ui/src/index.tsx
. - The components are located in
ui/src/components
.
Back end
- The back end is written in
rust
, usingdiesel
, andactix
. - The server source code is split into main sections in
server/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
.