Build an Inspirational Quote Generator (AWS, NextJS, TypeScript, NodeJS) - 6 HOUR CLOUD PROJECT!

In this epic build, we're going to create a completely serverless quote generator using AWS as our cloud back-end and NextJS/TypeScript as our front-end.

📩 SIGN UP FOR MY NEWSLETTER: https://www.techstackplaybook.com/signup

👨‍💻 GET THE PROJECT CODE: https://www.techstackplaybook.com/resources

The most epic part is...we're going to be generating images in a server without any expensive software or hardware.

What you'll learn in this build is how to:

👨‍💻 Build a ~cool~ front-end for a quote generator

💡 Write a script to fetch a random inspirational quote from ZenQuotes' API

🌩 Use AWS to generate a quote graphic for you in the cloud & then let you download the file

🔥 Deploy live

This build combines ZenQuotes' amazing API for fetching quotes, AWS Amplify for framework deployment and hosting, NextJS and Typescript for our front-end, styled-components to handle our styling, and some spicy backend scripting 🌶 Let me know where you're tuning in from below and how you like this build! ️

Time stamps:

00:00:00 Welcome!

00:05:12 Preview Demo + Solution Architecture of the build

00:15:51 NextJS + TypeScript + GitHub setup

00:26:20 Configure the Styled Components framework

00:35:57 Build the front-end and styles

01:19:37 Initialize AWS Amplify and deploy to AWS

01:29:39 Write a NodeJS script for image generation in Replit

01:39:15 Intro to using APIs in Node.js with ZenQuotes + Debugging

02:20:08 Debugging 101 Reflection

02:21:58 Final NodeJS script walkthrough

02:33:54 Add a Lambda Function via the Amplify CLI

02:40:04 Create a client-side function to run AWS Lambda

02:49:48 Write a GraphQL schema for a public query of Lambda + DynamoDB

03:03:28 Update our AppSync API's default authorization method to IAM

03:17:40 Create a DynamoDB object to track the number of quotes generated

03:18:43 Use OpenAI's ChatGPT to generate AWSDateTime strings for DynamoDB

03:21:40 Write a function to query a DynamoDB object's Global Secondary Index

03:34:36 Create a pop-up to handle the loading of/response from AWS Lambda

04:18:09 Refactor our NodeJS script from Replit to run in AWS Lambda

04:37:10 Update AWS Lambda to export a Base64 encoded string

04:47:39 How to switch careers to become a front-end developer

04:52:58 The difference between a front-end framework and library

05:01:19 Testing AWS Lambda in the AWS Management Console

05:11:36 Update the authentication configuration with the Amplify CLI

05:19:13 Wrap our AWS configuration around our application

05:22:15 Testing the DynamoDB updates via AWS Lambda invocations

05:24:40 Create blobUrls to visualize each Base64 string with TypeScript/Buffer

05:29:43 Add a download image function to save the file to our computer

05:39:37 Final demo + architecture walkthrough of the finished app 🚀

Let me know if you found this post helpful! And if you haven't yet, make sure to check out these free resources below:

Previous
Previous

Wrangling GraphQL Data Schemas with AWS AppSync

Next
Next

Why you should be learning cloud in 2023 | AWS Community Builders Program