Jinja
Hacker ApprovedThe most recommended of 6 template engines
Python template engine that separates HTML from code, paired with Django or Flask. Critics note sandboxing is hard to add later and dislike the syntax.
Python template engine that separates HTML from code, paired with Django or Flask. Critics note sandboxing is hard to add later and dislike the syntax.
21 people gave an opinion
- recommend it
- 14
- criticize it
- 7
- approval share
- 67%
Recommended in 7 of 13 months
- November 2025: not recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: not recommended
- March 2026: recommended
- April 2026: not recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: not recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it carries the badge
- 14 people recommend itNeeds 10 or more, met.
- 2 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 7 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Better developer experience and debuggability
“jinja2 is basically identical except performant and debuggable”
Comment from 29 Jan 2026 in “Notes on Starting to Use Django” “developer experience (in templates) is considerably better”
Comment from 28 Jul 2026 in “Some more things about Django I've been enjoying” Separates HTML from application code
“separating html out in jinja2 or whatever is far superior”
Comment from 22 May 2026 in “Python 3.15: features that didn't make the headlines” “switch from Python strings to Jinja templates”
Comment from 30 Dec 2025 in “Karpathy on Programming” Easy migration as a drop-in backend
“jinja2 is drop in by changing the template backend.”
Comment from 26 Jul 2026 in “Some more things about Django I've been enjoying” “The migration is fairly simple and well documented.”
Comment from 26 Jul 2026 in “Some more things about Django I've been enjoying”
What people warn about
Each mark is one comment
Not sandboxed or sanitized by default
“it simply predates the "sanitize by default" mindset/convention”
Comment from 29 Jul 2026 in “Anatomy of a Frontier Lab Agent Intrusion: A Technical Timeline of the Incident” “Jinja probably was not initially made with sandboxing in mind, and stuffing it after is complicated, so I would not rely on it.”
Comment from 30 Jul 2026 in “Anatomy of a Frontier Lab Agent Intrusion: A Technical Timeline of the Incident”
Other template engines people recommend
The four most recommended other template engines, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| JinjaThis page | 14 | 7 | 67% | 7 | — | Approved |
| Templ | 9 | 3 | 75% | 4 | — | — |
| ASP.NET Razor | 8 | 1 | 89% | 5 | — | — |
| Pug template engine | 5 | 2 | 71% | 4 | — | — |
| Gsxui | 5 | 0 | 100% | 2 | — | — |
What people said
19 of the 22 comments that mention it, newest first. Each links to the original comment.
“Something like Pydantic, Flask or Django + Jinja generally doesn't do that.”
“Jinja probably was not initially made with sandboxing in mind, and stuffing it after is complicated, so I would not rely on it.”
“it simply predates the "sanitize by default" mindset/convention”
“the text on their homepage is misleading”
“developer experience (in templates) is considerably better”
“The migration is fairly simple and well documented.”
“definitely not a drop-in replacement”
“jinja2 is drop in by changing the template backend.”
“I could use a templating language like Jinja or Starlark, but that's another dependency for a relatively simple job”
“separating html out in jinja2 or whatever is far superior”
“two languages, two files, context-switching”
“I'm definitely not a fan of the syntax”
“Jinja is often a horrible choice”
“even with jinja and whatever build framework the new kids are using”
“jinja2 is basically identical except performant and debuggable”
“XSLT was _designed_ while Jinja for one, appears to have been grown in a petri dish of sorts.”
“switch from Python strings to Jinja templates”
“Not a problem with Jinja (or any server-side templating). Both the table and dropdown render from the same context variable in one template pass.”
“Go templates are not jinja but fundamentally the same thing”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.