anchor.diff:  == Modules
   Spring Initializr has the following modules:
   
  -* `initializr-generator`: core project generation library
  -* `initializr-metadata`: metadata infrastructure for various aspects of the project
  -* `initializr-generator-spring`: optional module defining the conventions for a Spring
  -Boot project. Can be replaced by your own conventions if necessary.
  -* `initializr-web`: REST endpoints and web interface
   * `initializr-actuator`: optional module to provide additional information and statistics
  -on project generation
  -* `initializr-docs`: documentation
  +on project generation.
  +* `initializr-bom`: provides a Bill of Materials for easier dependency management in your
  +project.
  +* `initializr-docs`: documentation.
  +* `initializr-generator`: core project generation library.
  +* `initializr-generator-spring`: optional module defining the conventions for a typical
  +Spring Boot project. Can be reused or replaced by your own conventions.
  +* `initializr-metadata`: metadata infrastructure for various aspects of the project.
  +* `initializr-service-sample`: showcases a basic custom instance.
  +* `initializr-version-resolver`: optional module to extract version numbers for an
  +arbitrary BOM.
  +* `initializr-web`: web endpoints for third party clients.
   
   == Supported interfaces
  -
   Spring Initializr can be used as follows:
   
  -* With your browser (i.e. link:https://start.spring.io[])
  -* In your IDE if you are using STS, IntelliJ IDEA Ultimate or NetBeans (with
  -https://github.com/AlexFalappa/nb-springboot[this plugin])
   * On the command-line with {boot-doc}/#cli-init[the Spring Boot CLI] or simply with
  -`cURL` or `HTTPie`
  +`cURL` or `HTTPie`.
  +* In your IDE if you are using STS, IntelliJ IDEA Ultimate, NetBeans (with
  +https://github.com/AlexFalappa/nb-springboot[this plugin]) or VSCode (with
  +https://github.com/microsoft/vscode-spring-initializr[the `vscode-spring-initializr`
  +plugin]).
  +* With a custom Web UI (check ours at link:https://start.spring.io[]).
   
  -[TIP]
  -====
  -You can "curl" an instance to get a usage page with examples (try
  -`curl https://start.spring.io`)
  -====
  +There are other command-line integrations out there and you can also build your own!
   
   == Generating a project
  -If you click on "Generate Project" on the web ui of our instance, it will download a
  -project archive with a Maven-based project and the necessary infrastructure to start
  +As Spring Initializr doesn't come with a Web UI, you can use any of the out-of-the-box
  +integration to generate a project. For instance, the following `curl` command downloads
  +a project archive with a Maven-based project and the necessary infrastructure to start
   a basic Spring Boot app.
  -
  -You could achieve the same result with a simple `curl` command
   
   [source,bash]
   ----
   $ curl https://start.spring.io/starter.zip -o demo.zip
   ----
   
  -The web ui exposes a bunch of options that you can configure. These are mapped to the
  -following request attributes:
  +The project to generate can be customized of course with a number of options:
   
   * Basic information for the generated project: `groupId`, `artifactId`, `version`,
   `name`, `description` and `packageName`
  
positive.code: ----
  
  The metadata basically lists the _capabilities_ of the service, that is the available
  options for all request parameters (`dependencies`, `type`, `bootVersion`, etc.) The
  web UI uses that information to initialize the select options and the tree of
  available dependencies.
  
  The metadata also lists the default values for simple _text_ parameter (i.e. the
  
negative.code: :docs: https://docs.spring.io/initializr/docs/current-SNAPSHOT/reference
  :service: https://github.com/spring-io/start.spring.io
  
  Spring Initializr provides an extensible API to generate JVM-based projects with
  implementations for several common concepts:
  
  * Basic language generation for Java, Kotlin and Groovy.
  * Build system abstraction with implementations for Apache Maven and Gradle.
  * Git integration.
  * Various low-level hook-points for custom resources generations.
  
  The various options for the projects are expressed in a metadata model that allows you to
  configure the list of dependencies, supported JVM and platform versions, etc.
  
  Spring Initializr also exposes web endpoints to generate an actual project and also
  serve its metadata in a well-known format to allow third-party clients to provide the
  necessary assistance.
  
  A set of optional conventions for Spring Boot projects is provided and are used in our
  production instance at link:https://start.spring.io[]. To better understand how our
  service is configured, you may want to check {service}[the companion project] and, in
  particular, the
  {service}/blob/master/start-site/src/main/resources/application.yml[configuration of our
  instance]. Such configuration is also described in details in the documentation.
  
  NOTE: Check the https://github.com/spring-io/initializr/milestones[milestones page] for an
  overview of the changes.
  