"Because I was too lazy to find a better solution than spring generator"
Welcome to Create Spring App, the CLI tool for developers hate the initialization ceremony. If you've ever felt the soul-crushing despair of navigating to start.spring.io, clicking a bunch of boxes, downloading a zip, unzipping it, and then moving the files to where you actually wanted them... well, this tool is your therapy.
Honestly, this is just a wrapper around the Spring Initializr API that provides an interactive TUI.
This is a modern, interactive Terminal User Interface (TUI) that brings the power of the Spring Initializr directly to your command line. It's fast, it's pretty (thanks to Charm), and it doesn't involve your browser's download folder.
- Interactive TUI: Navigate through project setup with your keyboard. No mouse required.
- Dynamic Metadata: Fetches the latest Spring Boot versions, Java versions, and dependencies directly from the source.
- Dependency Management: Search and select dependencies with filtering. It even checks compatibility with your chosen Spring Boot version so you don't break things before you start.
- Build Tool Selection: Maven, Gradle (Groovy), or Gradle (Kotlin)? You choose.
- Smart Defaults: Infers reasonable defaults based on your input to save you keystrokes.
- Instant Extraction: Downloads and sets up the project structure right where you are. No
.zipdebris left behind.
If you have Go installed, you can grab the latest version directly:
go install github.com/SamSyntax/create-spring-app@latestThen you can run it:
create-spring-app-
Clone the repository:
git clone https://github.com/SamSyntax/create-spring-app.git cd create-spring-app -
Build the binary:
make build
-
(Optional) Move it to your path:
mv bin/csa /usr/local/bin/
Simply run the command in your terminal:
csaFollow the on-screen prompts to configure your project:
- Project Name: The artifact ID (e.g.,
my-cool-api). - Group Name: The group ID (e.g.,
com.syntax). - Package Name: Auto-generated but customizable.
- Spring Boot Version: Choose from the currently supported active versions.
- Build Tool: Pick your poison (Maven or Gradle).
- Java Version: Select your target LTS.
- Dependencies: Press
Spaceto select dependencies (Web, JPA, Security, etc.) andEnterto confirm.
Note: This tool communicates with the Spring Initializr API. An internet connection is required.
- Bubble Tea - The fun, functional, and stateful terminal apps framework.
- Huh? - A lightweight form library for Bubble Tea.
- Lip Gloss - Style definitions for nice terminal layouts.
- Go 1.25+
Found a bug? Want to add a feature? Feel free to open an issue or submit a pull request. We promise not to make you download a zip file to contribute.
- Fork it
- Create your feature branch (
git checkout -b feature/my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin feature/my-new-feature) - Create a new Pull Request