Handlebars and AWS Lambda example

Red Macaw parrots in the jungle
Reading Time: 2 minutes

In today’s post, we’ll explore how to use Handlebars with AWS Lambda, and how this can help you build dynamic and customizable web applications.

Firstly, let’s take a quick look at what Handlebars is. It’s a popular templating engine that allows you to define dynamic templates using a simple syntax. Handlebars templates are flexible, and allow you to inject data into your web applications based on user input, real-time data, and more.

So, how can we use Handlebars with AWS Lambda? The flexibility of Lambda allows us to define and execute serverless functions based on events such as HTTP requests, user interactions, and more. By building a Handlebars template within a Lambda function, you can dynamically generate HTML pages based on user input or other parameters.

Here’s an example of how you can use Handlebars with AWS Lambda in a Node.js environment:

const handlebars = require('handlebars');
const {promises: {readFile}} = require("fs");

let templateSource;

const renderToString = async (data) => {
    if(!templateSource) templateSource = await readFile('./views/content.hbs', {encoding:'utf8', flag:'r'})
    const template = handlebars.compile(templateSource);
    return template(data);

let response;
let html;
const lambdaLoadedDate = new Date().toISOString();

exports.lambdaHandler = async (event, context) => {
    try {
        const now = new Date().toISOString();
        html = await renderToString({title: 'im the title', now: now, lambda_date: lambdaLoadedDate});
        response = {
            statusCode: 200,
            headers: {
                'Content-Type': 'text/html',
            body: html
    } catch (err) {
        return err;

    return response

Handlebars is an easy-to-use templating language that helps you create rich and dynamic websites. With its intuitive syntax and powerful features, it’s a great choice for quickly and easily building powerful web applications.

Combining Handlebars with AWS Lambda can make your life even easier. AWS Lambda is a serverless compute service that can run code without needing to provision or manage servers. By using Handlebars alongside AWS Lambda, you can quickly create websites or applications without having to write a lot of code.


About the author

Andrés Canavesi
Andrés Canavesi

Software Engineer with 15+ experience in software development, specialized in Salesforce, Java and Node.js.

Related posts

Leave a Reply

%d bloggers like this: