diff --git a/docs/contributions/coding_conventions.md b/docs/contributions/coding_conventions.md
index a75c3bd210..2248da65bc 100644
--- a/docs/contributions/coding_conventions.md
+++ b/docs/contributions/coding_conventions.md
@@ -3,11 +3,12 @@ title: π§βπ» Code Standards and Conventions
description: This guide covers the best practices for JavaScript coding, such as following the Airbnb Style Guide, using CommonJS modules, structuring the API using Express, Mongoose, and services, and testing and documenting the code using Jest, Supertest, Playwright, JSDoc, and TypeScript.
weight: -7
---
+
# Coding Conventions
## Node.js API Server
-### 1. General Guidelines
+### General Guidelines
- Follow the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript) for general JavaScript coding conventions.
- Use "clean code" principles, such as keeping functions and modules small, adhering to the single responsibility principle, and writing expressive and readable code.
@@ -17,7 +18,7 @@ weight: -7
- Use CommonJS modules (require/exports) for Node.js modules.
- Organize and modularize the codebase using separate files for different concerns.
-### 2. API Design
+### API Design
- Follow RESTful principles when designing APIs.
- Use meaningful and descriptive names for routes, controllers, services, and models.
@@ -28,7 +29,7 @@ weight: -7
- Use the logging system included in the `utils` directory to log important events and errors.
- Do JWT-based, stateless authentication using the `requireJWTAuth` middleware.
-### 3. File Structure
+### File Structure
*Note: The API is undergoing a refactor to separate out the code for improved separation of concerns, testability, and maintainability. Any new APIs must follow the structure using the auth system as an example, which separates out the routes, controllers, services, and models into separate files.*
@@ -66,7 +67,7 @@ Defines Mongoose models to represent data entities and their relationships.
- Include only the necessary fields, indexes, and validations in the models.
- Keep models independent of the API layer by avoiding direct references to request/response objects.
-### 4. Database Access (MongoDB and Mongoose)
+### Database Access (MongoDB and Mongoose)
- Use Mongoose ([https://mongoosejs.com](https://mongoosejs.com)) as the MongoDB ODM.
- Create separate model files for each entity and ensure clear separation of concerns.
@@ -74,7 +75,7 @@ Defines Mongoose models to represent data entities and their relationships.
- Handle database connections efficiently and avoid connection leaks.
- Use Mongoose query builders to create concise and readable database queries.
-### 5. Testing and Documentation
+### Testing and Documentation
*Note: the repo currently lacks sufficient automated unit and integration tests for both the client and the API. This is a great first issue for new contributors wanting to familiarize with the codebase.*
diff --git a/docs/contributions/documentation_guidelines.md b/docs/contributions/documentation_guidelines.md
index e9069c9b58..98fcbb160b 100644
--- a/docs/contributions/documentation_guidelines.md
+++ b/docs/contributions/documentation_guidelines.md
@@ -10,26 +10,29 @@ This document explains how to contribute to the LibreChat documentation by writi
## New Documents
-- Use lowercase letters and underscores to name new document files (e.g., `documentation_guidelines.md`).
-- For new features, create new documentation and place it in the relevant folder/sub-folder under `../docs`.
+- Use ^^lowercase letters^^ and ^^underscores^^ to name new document files (e.g.: ==documentation_guidelines.md==).
+- For new features, create new documentation and place it in the relevant folder/sub-folder under ==../docs==.
- If the feature adds new functionality, add it to the appropriate section in the main `README.md` and `../docs/index.md`.
- When creating a new document, **add it to the table of contents in the `index.md` file of the folder where your document is located.**
## Markdown Formatting
-- Use `#`, `##`, and `###` for headings and subheadings.
+- Use `#`, `##`, and `###` for headings and subheadings.
- Use `#` for the document title.
+ - β **Only one main title per document is allowed**
- Use `##` for the main sections of the document.
- Use `###` for the sub-sections within a section.
- Use `**` to make text **bold** and highlight important information (do not use in place of a heading).
- Use relative paths for links to other documents.
- You can use HTML to add additional features to a document.
+- Highlight keystrokes with `+` (example: `++ctrl+alt+del++` π° ++ctrl+alt+del++)
+- π see the MKDocs Material documentation for more information: [MKDocs Material Reference](https://squidfunk.github.io/mkdocs-material/reference/)
## Document Metadata
- Add metadata in the header of your document following this format:
-```yaml
+```yaml title="metadata example:"
---
title: π Document Title
description: This description will be used in social cards and search engine results.
@@ -41,32 +44,37 @@ weight: 0
- `description:` A brief description of the document's content.
- `weight:` Setting the weight in the document metadata will influence its position in the table of contents. Lowest weights are placed first. If not set, it defaults to `0`. When multiple docs have the same weight, they are sorted alphabetically.
-## Important Notes
+!!! warning "Important Notes"
-- **β οΈKeep the documentation organized and structuredβ οΈ**
-- Do not add unrelated information to an existing document. Create a new one if needed.
-- Upload all assets (images, files) directly from GitHub's web interface when editing the document.
+ - ποΈ **Keep the documentation organized and structured**
+ - π Do not add unrelated information to an existing document. Create a new one if needed.
+ - π Upload all assets (images, files) directly from GitHub when editing the document (see tip below).
-> **Tip:** Go to the LibreChat repository, find a conversation, and paste an image from your clipboard into the text input box. It will automatically be converted into a URL you can use in your document. (Then exit the page without actually posting the comment.π)
+??? tip "Upload Assets on GitHub"
-> Get the link from a text input box:
-> 
-> Or upload directly from the web UI:
-> 
+ !!! example "Example"
+ - Go to the LibreChat repository, find a conversation, and paste an image from your clipboard into the text input box. It will automatically be converted into a URL you can use in your document. (Then exit the page without actually posting the comment.π)
+
+ Get the link from a text input box:
+ 
+
+ !!! example "Alternative method"
+ Upload directly from the web UI:
+ 
## Testing New Documents
-- When adding new documents, it is important to test them locally using MkDocs to ensure correct formatting and proper organization in the table of contents (index.md and the left panel of the category).
+- When adding new documents, it is important to test them locally using MkDocs to ensure correct formatting and proper organization in the table of contents: specifically in **index.md** and in the **left panel** of each category. Make sure the document position match in both.
### Setup MkDocs Locally
-- Requirement: Python 3.3 and later (on older versions you will need to install virtualenv)
+- Requirement: **Python 3.3** and later (on older versions you will need to install virtualenv)
#### Material for MkDocs Installation
- We are using MkDocs Material and multiple plugins. All of them are required to properly test new documentation.
-```sh
+```sh title="Install Requirements:"
python -m venv .venv
. .venv/bin/activate
pip install -r ./docs/src/requirements.txt
@@ -76,25 +84,28 @@ pip install -r ./docs/src/requirements.txt
- Use this command to start MkDocs:
-```sh
+```sh title="Start MKDocs:"
mkdocs serve
```
-- Look for any errors in the console logs and fix them if possible.
-- Access the locally running documentation website at `http://127.0.0.1:8000/`.
+- β Look for any errors in the console logs and fix them whenever possible.
+- π Access the locally running documentation website at `http://127.0.0.1:8000/`.

## Tips
-- You can check the code of this document to see how it works.
-- You can run MkDocs locally to test more extensive documentation changes.
-- You can ask GPT or Bing for help with proofreading, syntax, and markdown formatting.
+!!! tip "Tips"
+
+ - You can check the code of this document to see how it works.
+ - You should run MkDocs locally to test more extensive documentation changes.
+ - You can ask GPT, Claude or any other AI for help with proofreading, syntax, and markdown formatting.
---
-### Example of HTML image embedding:
+## Example of HTML image embedding:
+```html title="HTML Code"