Nunjucks es un potente motor de plantillas (templating engine) para JavaScript, fuertemente inspirado en Jinja2 (Python). Los archivos con la extensión .njk son archivos de plantilla Nunjucks. Estos archivos contienen una mezcla de HTML (u otros lenguajes de marcado), CSS, JavaScript y sintaxis específica de Nunjucks. Esta sintaxis permite a los desarrolladores incrustar contenido dinámico, como variables, bucles (loops) y sentencias condicionales, directamente en la plantilla. Cuando el motor Nunjucks procesa la plantilla, estos elementos dinámicos se evalúan y se reemplazan con sus valores correspondientes, dando como resultado un archivo de salida final (típicamente HTML) listo para ser servido al navegador del usuario. Las plantillas Nunjucks se utilizan comúnmente en el desarrollo web para generar páginas web dinámicas, correos electrónicos y otros tipos de contenido. Promueven la reutilización de código y la separación de responsabilidades al permitir a los desarrolladores separar la lógica de presentación de la lógica de la aplicación. El motor soporta características como la herencia de plantillas (template inheritance), el autoescapado (auto-escaping) y filtros personalizados, lo que lo convierte en una herramienta versátil para construir aplicaciones web complejas. Nunjucks se utiliza a menudo con Node.js, pero también puede utilizarse en el navegador.