JTE, the JVM, and the static-site gap
Our studio stack is Java + Spring Boot + JTE (gg.jte) + htmx + Lit. JTE is a great
template engine: compiled, type-safe, context-aware HTML escaping. The natural instinct
is to keep it for the static site too.
The problem: no mature static-site generator renders JTE.
- JBake uses Freemarker, Groovy, Thymeleaf, Jade, or Pebble. Not JTE.
- Roq (the Quarkus SSG) uses Qute. Not JTE.
So a JTE-native SSG does not exist. If you want JTE, you build the static-generation layer yourself: routing, content collections, a Markdown pipeline, RSS, sitemap, image optimization, asset bundling. Each of those is a solved problem in the JS ecosystem and a from-scratch job on the JVM.
That is the real decision: not "JTE or not", but "do I want to maintain a bespoke SSG so I can keep JTE on a site that renders the same HTML every build?"
For a personal site, the honest answer is usually no.