---
title: "Source code"
description: "Source code organization"
weight: 10
chapter: false
livechatnotranslation: true
---

This page describes the different source code folders and their content.

## build files

Files in the root dir that begins with `build-` are files used to build the plugin.
See the `package.json` file for more information.

## assets

### assets/images

The `assets/images` folder contains all icons files used by the plugin.

There is also the `assets/images/avatars` folders, which contains avatars used for anonymous chat users.
These files are used to generate multiple avatars (see the `build-avatars.js` script for more information).

* `assets/images/avatars/legacy` contains legacy avatar set (livechat versions until 8.1.0 included)
* `assets/images/avatars/sepia` contains new sepia avatar set, based on the work of David Revoy (see copyright informations)
* `assets/images/avatars/cat` contains new cats avatar set, based on the work of David Revoy (see copyright informations)
* `assets/images/avatars/bird` contains new birds avatar set, based on the work of David Revoy (see copyright informations)
* `assets/images/avatars/fenec` contains new fenecs avatar set, based on the work of David Revoy (see copyright informations)
* `assets/images/avatars/abstract` contains new abstract avatar set, based on the work of David Revoy (see copyright informations)

### assets/styles

The `assets/styles` folder contains the livechat plugin SCSS source files.

## build

The `build` folder is not part of the source code, but is used to put some files during the build process.

For example, `build-conversejs.js` use the folder `build/conversejs` to build a customized ConverseJS version.

## client

The `client` folder contains the front-end source code.

Files like `client/common-client-plugin.ts`, `client/videowatch-client-plugin.ts`, ... are the base files that
are loaded by Peertube for different "scopes" (`common`, `videowatch`, ...).
Please refer to the [Peertube plugin documentation](https://docs.joinpeertube.org/contribute/plugins)
 for more information.

## conversejs

The `conversejs` folder contains code relative to the use of ConverseJS.

### conversejs/custom

The `conversejs/custom` folder contains some files that are used to customize ConverseJS.
See the `build-conversejs.sh` script for more information.

## dist

The dist folder is where goes all files created during the build process.
It is not part of the source code.

## documentation

The folder `documentation` is deprecated.
We only keep files in this folder to avoid dead links
(links to these files were shared on many websites or social media posts).

The source code for the new documentation is in `support/documentation/content/en`,
and is used to generate the documentation web site.

## languages

The folder `languages` contains the languages files.
These files are [translated using Weblate](/peertube-plugin-livechat/contributing/translate/)).

## prosody-modules

The `prosody-modules` folder contains some modules used by Prosody.

Some of them are "officials" plugins, others are specific to this plugin.

## server

The `server` folder contains the backend source code.

## shared

The `shared` folder contains comme code that will be used both on frontend and backend.

## support/documentation

The `support/documentation` contains the documentation source code.

## vendor

The `vendor` folder is not part of the source code.
It is used during the build process to download some external source code.
