{"adoption": {"forks": 89, "observed_at": "2026-08-28T04:03:42.351351+00:00", "stars": 1131}, "canonical_url": "https://ross.abutalabs.com/products/jte", "card": {"archived": false, "artifact_type": "library", "description": "Secure and speedy templates for Java and Kotlin.", "domain": ["web-development", "frontend", "backend", "developer-tools"], "enriched": true, "function": ["templating", "ssr", "web-framework"], "health_score": 96, "homepage": "https://jte.gg/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["casid/jte"], "name": "casid/jte", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-08-09T21:25:08+00:00", "repo": "casid/jte", "stars": 1131, "tags": ["template-engine", "kotlin", "intellij-plugin", "html-escaping", "typesafe-templates", "hot-reloading"], "topics": ["java", "template-engine", "intellij", "kotlin", "server-side-rendering", "html"], "urls": [], "use_cases": ["render server-side HTML pages in a Java or Kotlin web app", "typesafe templating without learning a new expression language", "secure HTML output with automatic context-sensitive escaping", "hot-reload templates during development", "integrate templating with Spring Boot, Javalin, Ktor, or Vert.x", "get IDE completion and refactoring for templates in IntelliJ"], "what_it_is": "jte (Java Template Engine) is a secure, lightweight, and fast template engine for Java and Kotlin that compiles templates to typesafe code with context-sensitive HTML escaping. It includes an IntelliJ plugin with completion and refactoring support and integrates with frameworks like Spring Boot, Javalin, Vert.x, Ktor, and Quarkus.", "when_to_avoid": ["you need client-side JavaScript templating", "your stack is not on the JVM", "you need a designer-friendly non-programmer template syntax"], "when_to_choose": ["you want fast, typesafe server-side rendering on the JVM", "you prefer writing plain Java or Kotlin expressions in templates", "compile-time HTML escaping and XSS safety matter to you", "you use IntelliJ and want first-class template tooling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jte", "repo": "casid/jte", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.351351+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.302626+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a482f40d8ed5ef30a04e097666a572fe15d0f22fe1c9ddd428f7f4f1819a7d02", "fetched_at": "2026-08-28T04:03:42.351351+00:00", "kind": "readme", "missing": false, "url": "https://github.com/casid/jte"}, {"content_hash": "eaab05d9a6f89fa62b299e197a18cbcadfc3cd9ee9a1ca5d055ce59245a26a86", "fetched_at": "2026-08-29T12:42:26.474524+00:00", "kind": "homepage", "missing": false, "url": "https://jte.gg/"}, {"content_hash": "9a515685990af760ad4d17d260610160a8ec3df592ce68ae918c3a38269e8e6a", "fetched_at": "2026-08-29T12:42:26.483857+00:00", "kind": "site_page", "missing": false, "url": "https://jte.gg/syntax"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 69}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2329, "days_push": 24, "days_rel": 126, "gap_med": 43.0, "n_releases_24m": 9}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}