--- # Scope: # * Introduction on plugins. # * Exemplify use cases. # * Point to resources to learn plugins development. title: Plugins category: builds-integration order: 40 --- Features in CKEditor are introduced by plugins. In fact, without plugins CKEditor is an empty API with no use. The builds provided with CKEditor 5 are actually a predefined collection of plugins, put together to satisfy specific needs. Plugins provided by the CKEditor core team are available in [npm](https://www.npmjs.com/search?q=ckeditor5) (and [GitHub](https://github.com/ckeditor?utf8=%E2%9C%93&q=ckeditor5&type=&language=) too) in form of npm packages. A package may contain one or more plugins (e.g. the [`@ckeditor/ckeditor5-image`](https://www.npmjs.com/package/@ckeditor/ckeditor5-image) packages contains several grannular plugins). ## Common use cases Plugins can be pretty much anything. They’re simply code, initialized by the editor if they’re configured to be loaded. They can use the richness of the CKEditor 5 Framework API to enhance the editor or to better integrate it with your application. Common use cases for plugins are: * **Editing features**, like bold, heading, linking or whichever feature that interacts with the user on the manipulation of the contents. * **Adding semantic value** to the contents, like annotations or accessibility features. * **Third party services integration**, for injecting external resources inside the contents, like videos or social network posts. * **Handling image upload** and image manipulation features. * **Providing widgets** for easy integration with application structured data. * **Injecting analysis tools** that help enhancing the quality of the contents. * And other infinite possibilities… ## Creating plugins Creating your own plugins is a straightforward task but it requires good knowledge about a few aspects of the CKEditor 5 development environment. The following resources are recommended as a starting point: * {@link TODO Plugin development guide}, in the CKEditor 5 Framework documentation. * {@link TODO Creating custom builds}, which is necessary to have your plugin included inside a CKEditor 5 build. A good understanding about the {@link TODO CKEditor 5 Framework} is also very welcome when it comes to creating plugins. ## Using 3rd party plugins A great way to enhance your builds with additional features is by using plugins created by the community. Such plugins are generally available as npm packages, so a quick [search on the “ckeditor5” keyword in npm](https://www.npmjs.com/search?q=ckeditor5) should work as a starting point. Once you have plugins to be included, just {@link TODO create a custom build}, configured to include them.