# Contributing ## Setup your machine `alist` is written in [Go](https://golang.org/) and [React](https://reactjs.org/). Prerequisites: - [git](https://nodejs.org/zh-cn/) - [Go 1.18+](https://golang.org/doc/install) - [gcc](https://gcc.gnu.org/) - [nodejs](https://nodejs.org/) Clone `alist` and `alist-web` anywhere: ```shell $ git clone https://github.com/Xhofe/alist.git $ git clone https://github.com/Xhofe/alist-web.git ``` You should switch to the dev branch for development. ## Preview your change ### backend ```shell $ go run alist.go ``` ### frontend ```shell $ yarn dev ``` ## Create a commit Commit messages should be well formatted, and to make that "standardized". ### Commit Message Format Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: ``` ():