[//]: # (title: Creating Your First Plugin) This documentation section will help you get started with developing plugins for the *IntelliJ Platform*. You can use either [IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/download/) or [IntelliJ IDEA Ultimate](https://www.jetbrains.com/idea/download/) as your IDE (it is highly recommended to use the latest available version). Both include the complete set of plugin development tools. To become more familiar with *IntelliJ IDEA*, please refer to the [IntelliJ IDEA Web Help](https://www.jetbrains.com/idea/help/). There are three supported workflows available for building plugins. The recommended workflow for new projects is to [use GitHub Template](#using-github-template) or to [use Gradle](#using-gradle) to create everything from scratch. The old [Plugin DevKit](#using-devkit) workflow still supports existing projects. > If a new plugin will be Scala-based, a dedicated SBT plugin [sbt-idea-plugin](https://github.com/JetBrains/sbt-idea-plugin) is available. > {type="note"} The Gradle workflow offers several advantages: * Representations of source sets, modules, and projects are portable, * Projects of any size or complexity usually require scripts for build management, which Gradle handles natively, * Training, documentation, and community help for general Gradle topics are widely available. Specific to development of IntelliJ Platform plugins with the Gradle plugin for IntelliJ IDEA: * Changing plugin targets is more comfortable because it is all done in `build.gradle`: * Switching the version of the target IntelliJ Platform (IDE), * Changing the target IntelliJ Platform-based IDE, e.g., from IntelliJ IDEA to PyCharm, * Running a plugin against alternate versions of the JetBrains runtime. * Gradle is fully integrated with Continuous Integration systems and [JetBrains Plugin Repository](https://plugins.jetbrains.com), so it is easy to customize and extend the build and publishing processes. * Built-in verification task for `plugin.xml` and plugin distribution structure. * Built-in integration with [IntelliJ Plugin Verifier](https://github.com/JetBrains/intellij-plugin-verifier) tool used for running the compatibility checks as performed on [JetBrains Plugin Repository](https://plugins.jetbrains.com). ## Using GitHub Template * [Developing plugins using GitHub Template](github_template.md) ## Using Gradle * [Developing plugins using Gradle](gradle_build_system.md) * [Getting Started with Gradle](gradle_prerequisites.md) * [Configuring Gradle Projects](gradle_guide.md) * [Publishing Plugins with Gradle](deployment.md) ## Using DevKit * [Developing plugins using DevKit](using_dev_kit.md) * [Setting Up a Development Environment](setting_up_environment.md) * [Creating a Plugin Project](creating_plugin_project.md) * [Creating Actions](working_with_custom_actions.md) * [Running and Debugging a Plugin](running_and_debugging_a_plugin.md) * [Deploying a Plugin](deploying_plugin.md) * [Publishing a Plugin](publishing_plugin.md)