What Templates Are
Helix templates are the fastest way to start with a project shape that already reflects framework conventions. Instead of hand-assembling build logic, dependency baselines, and initial project structure, you start from a curated template and then grow into plugins, starters, and libraries as the project matures.
Templates are a good fit when you want:
- a service or library scaffold that already matches Helix conventions
- a repeatable starting point across teams and repositories
- a project that can be generated, inspected, and versioned from the CLI
Choose a Template
These are the templates currently available out of the box through the Helix CLI, and the catalog will continue to grow as more templates are published.
springboot
Best default for teams evaluating Helix with a single Spring Boot service.
- Good first template for framework evaluation
- Simple service shape with room to expand later
- Best starting point for most new backend services
springboot-multi-module
Use when the service should start with multiple modules from day one.
- Better fit for larger teams or layered service designs
- Useful when API, domain, and app modules should stay distinct
- Stronger choice for platform-backed service baselines
springboot-postgres
Choose this when database integration is part of the initial project shape.
- Helpful for services that start with PostgreSQL from the beginning
- Good fit for data-heavy CRUD or workflow services
- Reduces the amount of persistence setup teams do by hand
java-lib
Start here for a reusable JVM module instead of an application.
- Good for internal shared libraries
- Useful when teams want a clean dependency module, not a service
- Pairs naturally with the Helix plugin and library surfaces
java-cli
Use for Picocli-based or command-line oriented Java applications.
- Good for internal tooling and automation utilities
- Better fit than service templates when no HTTP app is needed
- Aligns well with the published Helix CLI plugin surface
java-app
Start with a plain Java application when Spring Boot is not the right abstraction.
- Useful for non-web JVM apps and internal runtimes
- Keeps the starting point lighter than a service template
- Works well when teams want Helix conventions without a Boot app shell
Inspect Before Generating
The CLI gives you a few ways to inspect templates before you commit to one.
Discovery
List every published template
helix template list
Discovery
Inspect one template in more detail
helix template info springboot
helix template versions springboot
Use template list when you want the broad catalog, and template info / template versions when you want to compare one template’s metadata, packaging, and published versions more closely.
Generate a Project
Once you know which template you want, generate a project with either the short alias or the explicit template command.
Generation
Generate a Spring Boot service
helix init springboot billing-service
Generation
Generate with an explicit template version
helix template init springboot billing-service --version 1.2.0
Generation
Preview generation without writing files
helix template init springboot billing-service --dry-run
Helix resolves the template version, downloads the archive if needed, prompts for template values, applies replacements, and writes template lock metadata into the generated project.
Common Workflows
Start with `springboot`
Best for most teams exploring the framework for the first time.
Recommended next steps:
- Generate a service
- Run the default Gradle workflow
- Use the Libraries and Plugins pages to expand selectively
Use `springboot-multi-module`
Better when the initial project should already express module boundaries.
Recommended next steps:
- Keep API and implementation modules separate
- Adopt plugins for consistent multi-module build behavior
- Use starters only where Spring Boot integration adds value
Use `java-lib`
Best when the outcome is a reusable dependency rather than a runnable app.
Recommended next steps:
- Document the library’s scope clearly
- Keep dependencies focused and minimal
- Link consumers to the right Helix libraries and plugins
Use `java-cli`
Ideal for internal developer tools, automation utilities, and shell-facing apps.
Recommended next steps:
- Inspect the Java CLI plugin documentation
- Keep command behavior and help output tight
- Use completion support and config patterns from the main Helix CLI page