Nunjucks est un moteur de templating puissant pour JavaScript, fortement inspiré de Jinja2 (Python). Les fichiers avec l'extension .njk sont des fichiers de modèle Nunjucks. Ces fichiers contiennent un mélange de HTML (ou d'autres langages de balisage), de CSS, de JavaScript et de syntaxe spécifique à Nunjucks. Cette syntaxe permet aux développeurs d'intégrer du contenu dynamique, tel que des variables, des boucles et des instructions conditionnelles, directement dans le modèle. Lorsque le modèle est traité par le moteur Nunjucks, ces éléments dynamiques sont évalués et remplacés par leurs valeurs correspondantes, résultant en un fichier de sortie final (généralement HTML) prêt à être servi au navigateur de l'utilisateur. Les modèles Nunjucks sont couramment utilisés dans le développement web pour générer des pages web dynamiques, des courriels et d'autres types de contenu. Ils favorisent la réutilisation du code et la séparation des préoccupations en permettant aux développeurs de séparer la logique de présentation de la logique applicative. Le moteur prend en charge des fonctionnalités telles que l'héritage de modèles (template inheritance), l'échappement automatique (auto-escaping) et les filtres personnalisés, ce qui en fait un outil polyvalent pour la construction d'applications web complexes. Nunjucks est souvent utilisé avec Node.js mais peut également être utilisé dans le navigateur.