# p5.js Libraries
p5.js welcomes libraries contributed by others! Check out the libraries tutorial for more specifics about how to create one. If you have created a library and would like to have it included in the list, follow the instructions below!
1. Fork the repo
2. Add a file to the `src/content/libraries/en` folder named `yourLibraryName.yaml` (or consider copying an existing library as a starting point)
3. Inside it, add the following content:
- `name`: The name of the library
- `category`: A category that you think best fits your library. Your choices include: `drawing`, `color`, `ui`, `math`, `physics`, `algorithms`, `3d`, `ai-ml-cv`, `animation`, `shaders`, `language`, `hardware`, `sound`, `data`, `teaching`, `networking`, `export`, or `utils`.
- `description`: A one-sentence description of the library
- `author`: An object containing `name`, your name, and `url`, an optional link to your website. If there are multiple authors, use an array of author objects.
- `sourceUrl`: A link to the library's source code (e.g. its repo on GitHub or GitLab)
- (Optional) `websiteUrl`: A link to a website for the library
- (Optional) `npm`: The package name for your library on npm, for example `p5.sound` or `@scope/my-library`.
- (Optional) `npmFilePath`: Most libraries don't need this. First, open `https://cdn.jsdelivr.net/npm/packageName`. If it loads your library, you're all set. No need to include this field. If it doesn't load, browse your package at `https://www.jsdelivr.com/package/npm/packageName` and locate the JavaScript file that should be loaded (for example `dist/library.min.js`), and set `npmFilePath` to that relative path.
- `featuredImage`: The relative path to the preview thumbnail for the library.
- `featuredImageAlt`: a short description of the contents of the thumbnail for screen readers
- (Optional) `license`: A string describing the software license of the library. This may be omitted if your package is on npm and has license info there
4. Add a **high-res colored image of 1500x1000px** of your library into `src/content/libraries/images`
5. Submit a pull request and we'll review your submission
We add libraries that are open-source, include some documentation and examples, and follow our code of conduct. This directory targets beginner users, so we aim to ensure users have a smooth experience getting started with any library linked to.
If you have any questions, feel free to open an issue or create a work-in-progress PR and ask us anything!