Nunjucks è un potente motore di templating per JavaScript, fortemente ispirato a Jinja2 (Python). I file con estensione .njk sono file modello 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 (loop) e istruzioni condizionali, direttamente nel modello. Quando il modello viene elaborato dal motore Nunjucks, questi elementi dinamici vengono valutati e sostituiti con i loro valori corrispondenti, producendo un file di output finale (tipicamente HTML) pronto per essere servito al browser di un utente. I modelli Nunjucks sono comunemente usati nello sviluppo web per generare pagine web dinamiche, email e altri tipi di contenuto. Promuovono la riusabilità 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 modelli (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 nel browser.