Generated banner for Create Spring Boot Kotlin Project
Generated logo for Create Spring Boot Kotlin Project

Create Spring Boot Kotlin Project

GitHubOfficialFirst committed by wuwen5Distributed by GitHub

  • Skill
  • Workflow
  • Software development
  • MIT
  • Low risk

From the author

Create Spring Boot Kotlin Project Skeleton
— the description by wuwen5

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured workflow to initialize a new Spring Boot project using Kotlin. It automates the download of a project template from the Spring Initializr, configures essential dependencies like WebFlux, R2DBC, and MongoDB, and sets up a Docker Compose environment for local development. The process includes configuring application properties for Redis, PostgreSQL, and MongoDB, as well as adding documentation and testing tools to ensure the project is ready for immediate development.

What it does

  • Downloads a base Spring Boot Kotlin project template from Spring Initializr.
  • Configures project dependencies including WebFlux, R2DBC, and reactive data stores.
  • Adds SpringDoc OpenAPI and ArchUnit for documentation and architectural testing.
  • Generates a docker-compose.yaml file for local database and cache services.
  • Updates application properties for integrated database and cache connectivity.
  • Verifies the project setup by running a clean test command.

When to use it

  • When starting a new backend project using Spring Boot and Kotlin.
  • When you need a standardized project structure with pre-configured reactive data stacks.
  • When you want to quickly spin up a local development environment with PostgreSQL, MongoDB, and Redis.
  • When you need to integrate OpenAPI documentation and architectural testing from the start.

Advantages

  • Reduces manual setup time for common Spring Boot project configurations.
  • Ensures consistent project structure and dependency versions.
  • Provides a ready-to-use Docker environment for local infrastructure.
  • Includes essential testing and documentation tools out of the box.

Usage examples

“Create a new Spring Boot Kotlin project named my-api.”
The agent will execute the sequence to download the template, configure the specified dependencies, create the docker-compose file, and verify the project with a test run.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/github/create-spring-boot-kotlin-project/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip create-spring-boot-kotlin-project.zip -d .agents/skills

Documentation by wuwen5

Create Spring Boot Kotlin project prompt

  • Please make sure you have the following software installed on your system:

    • Java 21

    • Docker

    • Docker Compose

  • If you need to custom the project name, please change the artifactId and the packageName in download-spring-boot-project-template

  • If you need to update the Spring Boot version, please change the bootVersion in download-spring-boot-project-template

Check Java version

  • Run following command in terminal and check the version of Java

java -version

Download Spring Boot project template

  • Run following command in terminal to download a Spring Boot project template

curl https://start.spring.io/starter.zip \
  -d artifactId=${input:projectName:demo-kotlin} \
  -d bootVersion=3.4.5 \
  -d dependencies=configuration-processor,webflux,data-r2dbc,postgresql,data-redis-reactive,data-mongodb-reactive,validation,cache,testcontainers \
  -d javaVersion=21 \
  -d language=kotlin \
  -d packageName=com.example \
  -d packaging=jar \
  -d type=gradle-project-kotlin \
  -o starter.zip

Unzip the downloaded file

  • Run following command in terminal to unzip the downloaded file

unzip starter.zip -d ./${input:projectName:demo-kotlin}

Remove the downloaded zip file

  • Run following command in terminal to delete the downloaded zip file

rm -f starter.zip

Unzip the downloaded file

  • Run following command in terminal to unzip the downloaded file

unzip starter.zip -d ./${input:projectName:demo-kotlin}

Add additional dependencies

  • Insert springdoc-openapi-starter-webmvc-ui and archunit-junit5 dependency into build.gradle.kts file

dependencies {
  implementation("org.springdoc:springdoc-openapi-starter-webflux-ui:2.8.6")
  testImplementation("com.tngtech.archunit:archunit-junit5:1.2.1")
}
  • Insert SpringDoc configurations into application.properties file

# SpringDoc configurations
springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.operations-sorter=alpha
springdoc.swagger-ui.tags-sorter=alpha
  • Insert Redis configurations into application.properties file

# Redis configurations
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=rootroot
  • Insert R2DBC configurations into application.properties file

# R2DBC configurations
spring.r2dbc.url=r2dbc:postgresql://localhost:5432/postgres
spring.r2dbc.username=postgres
spring.r2dbc.password=rootroot

spring.sql.init.mode=always
spring.sql.init.platform=postgres
spring.sql.init.continue-on-error=true
  • Insert MongoDB configurations into application.properties file

# MongoDB configurations
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=root
spring.data.mongodb.password=rootroot
spring.data.mongodb.database=test
  • Create docker-compose.yaml at project root and add following services: redis:6, postgresql:17 and mongo:8.

    • redis service should have

      • password rootroot

      • mapping port 6379 to 6379

      • mounting volume ./redis_data to /data

    • postgresql service should have

      • password rootroot

      • mapping port 5432 to 5432

      • mounting volume ./postgres_data to /var/lib/postgresql/data

    • mongo service should have

      • initdb root username root

      • initdb root password rootroot

      • mapping port 27017 to 27017

      • mounting volume ./mongo_data to /data/db

  • Insert redis_data, postgres_data and mongo_data directories in .gitignore file

  • Run gradle clean test command to check if the project is working

./gradlew clean test
  • (Optional) docker-compose up -d to start the services, ./gradlew spring-boot:run to run the Spring Boot project, docker-compose rm -sf to stop the services.

Let's do this step by step.

Files

Requirements and compatibility

Written for: GitHub Copilot

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs network access

Security

What our scanner noticed· Low risk

  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

First committed by
GitHub avatar of wuwen5wuwen5
Publisher
GitHub (Official)
Distributed by
GitHub
Source
github/awesome-copilot · skills/create-spring-boot-kotlin-project · commit 797337f
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
wuwen5

AutoGineer is not affiliated with or endorsed by wuwen5 or GitHub.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download create-spring-boot-kotlin-project.zip