skills/create-spring-boot-kotlin-project/SKILL.md
Create Spring Boot Kotlin Project Skeleton
npx skillsauth add vuluu2k/skills create-spring-boot-kotlin-projectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Please make sure you have the following software installed on your system:
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
java -version
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 starter.zip -d ./${input:projectName:demo-kotlin}
rm -f starter.zip
unzip starter.zip -d ./${input:projectName:demo-kotlin}
springdoc-openapi-starter-webmvc-ui and archunit-junit5 dependency into build.gradle.kts filedependencies {
implementation("org.springdoc:springdoc-openapi-starter-webflux-ui:2.8.6")
testImplementation("com.tngtech.archunit:archunit-junit5:1.2.1")
}
application.properties file# SpringDoc configurations
springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.operations-sorter=alpha
springdoc.swagger-ui.tags-sorter=alpha
application.properties file# Redis configurations
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=rootroot
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
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.
rootroot./redis_data to /datarootroot./postgres_data to /var/lib/postgresql/datarootrootroot./mongo_data to /data/dbInsert 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
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.
development
Vue 3 Composition API — <script setup>, reactivity (shallowRef/ref), props without destructure, computed, watch, provide/inject, and composables. Use when the project uses modern Vue 3 Composition API style.
development
Vue 3 Options API — data, props, computed, methods, watch, emits, provide/inject, lifecycle hooks, and mixins. Use when the project uses Options API style (Vue 2 legacy or explicit Vue 3 Options API preference).
tools
Best practices for mixing Ant Design Vue components with Tailwind CSS utility classes. Use this skill to keep styling consistent without custom CSS files.
development
Pinia state management for Vue 3 using Composition API (Setup Stores) — TypeScript-first, storeToRefs for reactivity, focused stores, and API calls in composables. Use when the project uses Vue 3 Composition API / <script setup>.