Hacker ApprovedDepartments

Jinja

Hacker Approved

The 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%
Each figure is one person. RecommendsCriticizes

Recommended in 7 of 13 months

  1. November 2025: not recommended
  2. December 2025: recommended
  3. January 2026: recommended
  4. February 2026: not recommended
  5. March 2026: recommended
  6. April 2026: not recommended
  7. May 2026: recommended
  8. June 2026: recommended
  9. July 2026: recommended
  10. August 2026: recommended
  11. September 2026: not recommended
  12. October 2026: not recommended
  13. 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.

Jinja compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
JinjaThis page14767%7—Approved
Templ9375%4——
ASP.NET Razor8189%5——
Pug template engine5271%4——
Gsxui50100%2——
See all 6 template engines, ranked

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.”

RecommendsComment from 29 Aug 2026 in “Htmx 4.0”

“Jinja probably was not initially made with sandboxing in mind, and stuffing it after is complicated, so I would not rely on it.”

CriticizesComment from 30 Jul 2026 in “Anatomy of a Frontier Lab Agent Intrusion: A Technical Timeline of the Incident”

“it simply predates the "sanitize by default" mindset/convention”

MixedComment from 29 Jul 2026 in “Anatomy of a Frontier Lab Agent Intrusion: A Technical Timeline of the Incident”

“the text on their homepage is misleading”

CriticizesComment from 29 Jul 2026 in “Anatomy of a Frontier Lab Agent Intrusion: A Technical Timeline of the Incident”

“developer experience (in templates) is considerably better”

RecommendsComment from 28 Jul 2026 in “Some more things about Django I've been enjoying”

“The migration is fairly simple and well documented.”

MixedComment from 26 Jul 2026 in “Some more things about Django I've been enjoying”

“definitely not a drop-in replacement”

MixedComment from 26 Jul 2026 in “Some more things about Django I've been enjoying”

“jinja2 is drop in by changing the template backend.”

RecommendsComment from 26 Jul 2026 in “Some more things about Django I've been enjoying”

“I could use a templating language like Jinja or Starlark, but that's another dependency for a relatively simple job”

MixedComment from 16 Jun 2026 in “But yak shaving is fun”

“separating html out in jinja2 or whatever is far superior”

RecommendsComment from 22 May 2026 in “Python 3.15: features that didn't make the headlines”

“two languages, two files, context-switching”

CriticizesComment from 21 May 2026 in “Python 3.15: features that didn't make the headlines”

“I'm definitely not a fan of the syntax”

MixedComment from 5 May 2026 in “Should I Run Plain Docker Compose in Production in 2026?”

“Jinja is often a horrible choice”

CriticizesComment from 4 May 2026 in “PyInfra 3.8.0 Is Out”

“even with jinja and whatever build framework the new kids are using”

MixedComment from 26 Mar 2026 in “Thoughts on Slowing the Fuck Down”

“jinja2 is basically identical except performant and debuggable”

RecommendsComment from 29 Jan 2026 in “Notes on Starting to Use Django”

“XSLT was _designed_ while Jinja for one, appears to have been grown in a petri dish of sorts.”

CriticizesComment from 23 Jan 2026 in “The Lost Art of XML”

“switch from Python strings to Jinja templates”

RecommendsComment from 30 Dec 2025 in “Karpathy on Programming”

“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.”

RecommendsComment from 18 Dec 2025 in “Please just try HTMX”

“Go templates are not jinja but fundamentally the same thing”

CriticizesComment from 15 Nov 2025 in “Helm 4.0”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.