summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2020-01-17 17:52:48 -0500
committerDessalines <tyhou13@gmx.com>2020-01-17 17:52:48 -0500
commitbc257d36ed6e17c56d3db9917ede0ea721e86c2d (patch)
treeb5c39b1318b429405f0581b68076b6989a1a7029 /docs
parent8a392fff9eb123fd94435da142667c7be42217d4 (diff)
Add more info to contributing. Fixes #429
Diffstat (limited to 'docs')
-rw-r--r--docs/src/contributing.md33
1 files changed, 32 insertions, 1 deletions
diff --git a/docs/src/contributing.md b/docs/src/contributing.md
index 4f29af3d..e73cc4b9 100644
--- a/docs/src/contributing.md
+++ b/docs/src/contributing.md
@@ -1 +1,32 @@
-Information about contributing to Lemmy, whether it is translating, testing, designing or programming. \ No newline at end of file
+# Contributing
+
+Information about contributing to Lemmy, whether it is translating, testing, designing or programming.
+
+## Translating
+
+Go [here](https://github.com/dessalines/lemmy#translations) for translation instructions.
+
+## Architecture
+
+### Front end
+
+- The front end is written in `typescript`, using a react-like framework called [inferno](https://infernojs.org/). 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`, using `diesel`, and `actix`.
+- 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.
+ - `api` - The high level user interactions (things like `CreateComment`)
+ - `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`, and `lint-staged`.
+- Rust with `cargo fmt` and `cargo clippy`.
+- Typescript with `prettier` and `eslint`.