Nunjucks è un potente motore di template (templating engine) per JavaScript, fortemente ispirato a Jinja2 (Python). I file con l'estensione .njk sono file di template Nunjucks. Questi file contengono un mix di HTML (o altri linguaggi di markup), CSS, JavaScript e sintassi specifica di Nunjucks. Questa sintassi consente agli sviluppatori di incorporare contenuto dinamico, come variabili, cicli (loops) e istruzioni condizionali, direttamente nel template. Quando il template viene elaborato dal motore Nunjucks, questi elementi dinamici vengono valutati e sostituiti con i loro valori corrispondenti, risultando in un file di output finale (tipicamente HTML) pronto per essere servito al browser di un utente. I template Nunjucks sono comunemente utilizzati nello sviluppo web per generare pagine web dinamiche, email e altri tipi di contenuto. Promuovono il riutilizzo del codice e la separazione delle responsabilità (separation of concerns) consentendo agli sviluppatori di separare la logica di presentazione dalla logica dell'applicazione. Il motore supporta funzionalità come l'ereditarietà dei template (template inheritance), l'auto-escaping e i filtri personalizzati, rendendolo uno strumento versatile per la costruzione di applicazioni web complesse. Nunjucks è spesso utilizzato con Node.js ma può essere impiegato anche all'interno del browser.