
Learn the fundamentals of serverless full-stack development by building a real-world translator app from scratch using AWS CDK, AWS SDK, Next.js, and TypeScript.
Master the fundamentals of serverless full stack development with a project-based course that delivers a fully working app using AWS, CDK, Next.js, TypeScript, and DynamoDB.
Set up a Windows environment to emulate a linux-like workflow via Cygwin, install make and git, configure Windows Terminal, and manage node with nvm for AWS CDK and AWS CLI.
Set up a mac development environment for serverless work by installing brew, iterm2, zsh, and oh my zsh. Install git, nvm, node, AWS CDK, AWS CLI, and Visual Studio Code.
Set up a Linux development environment on Ubuntu 22.04 LTS by updating packages, installing nvm and node 20.11, then installing AWS CDK, AWS CLI, and VS Code.
Create and configure an AWS account, set up an admin IAM user, enable MFA, generate access keys, configure the AWS CLI, and bootstrap CDK with CloudFormation.
Create a simple CDK project, synthesize to a CloudFormation template, deploy a temp stack, then destroy it and learn bucket removal policies in S3.
Explore creating an S3 bucket via the AWS console to mirror CDK behavior, compare console versus code, and understand versioning, object ownership, and unique naming concerns.
Explore CDK concepts like stacks, constructs, and apps, and learn to organize resources with custom storage, image galleries, and multiple stacks deployed via CDK deploy.
Discover how lambda represents an unnamed function and how AWS lambda runs code on demand with auto scaling, illustrated by a time-of-day example using CDK.
Explore how AWS API gateway provides a fully managed front door for scalable rest APIs, with versioning, caching, and Lambda integration via CDK.
Enhance the lambda with AWS translate to handle a JSON post of source language, target language, and text, returning the translation with a timestamp and CDK deployment.
Explore front-end architectures with Next.js and React, covering SSR, SSG, SPA, and hybrids, and learn to build a Next.js front end using Tailwind CSS and a monorepo setup.
Translate from frontend guides building translate form in a Next.js app that calls a serverless API gateway with fetch, handles responses with TypeScript and React state, and deploys with CDK.
Explore monorepo solutions to unify front end and CDK stack, enable shared types and libraries, and streamline npm workspaces setup for coherent deploy and test workflows.
Convert a codebase into a monorepo by creating a top level workspace, organizing packages and apps, renaming folders, and testing with npm, CDK deploy, and front end dev.
Create a shareable types package in a monorepo, exporting translate request and response types for both frontend and lambda, and integrate with npm and TypeScript for safer serverless development.
Move the lambdas into their own package to separate application logic from infrastructure and improve organization. Learn how to create the lambdas package, adjust paths, and prepare for lambda layers.
Learn how databases support user-specific translations by comparing SQL and NoSQL models and exploring AWS DynamoDB as a serverless, schemaless option with pay-as-you-use pricing.
Learn to set up and integrate a DynamoDB NoSQL table in CDK, including defining a translations table with a request ID partition key and granting Lambda read and write access.
Install and configure the DynamoDB SDK in a TypeScript lambda, pass the translation table name via environment variables, and save translations using marshal and the AWS request ID.
Define and attach a targeted policy to grant translate text access for the Lambda, restrict DynamoDB actions, and illustrate deployment via CDK and CloudFormation.
Learn how the AWS SDK DynamoDB Marshall and Unmarshal utilities convert JavaScript objects into DynamoDB attribute-value formats for storage and updates, including maps and lists.
Fetch translations from the database by adding a get translations lambda and rest API, then display the translation objects on the frontend.
Refactor lambda functionality into modular layers to organize code and reduce deployment size, enabling reuse across functions. Explore an example with file writer, image processing, and cdK packaging into /opt.
Create a reusable utils lambda layer to consolidate repeated lambda logic, implement gateway response wrappers, configure tsconfig paths, and build with a NodeJS output for AWS lambda integration.
Configure a shared tsconfig across lambda and layer, map paths to the lambda layer in opt/nodejs, and extend base tsconfig for streamlined deployment of lambda layers with cdk.
Learn to integrate a lambda layer with CDK by defining the layer, linking it to multiple lambdas, configuring paths and runtimes, deploying, and testing for modular code.
Move the translation call into a dedicated lambda layer to enable reuse, portability, and separation of concerns across a serverless fullstack with AWS CDK Next.js and TypeScript.
Craft a DynamoDB wrapper for the Lambda's translation table operations. Expose insert and get all translations via translation table, reduce AWS SDK dependencies, and improve code organization for serverless fullstack.
Exclude external modules from bundling by configuring bundling with an external modules array and a path to the lambda layer to reduce deployment size.
Build a static Next.js site, package it into a dist folder, and deploy it to an S3 bucket to obtain a direct website URL for easy access.
Upload the front-end build to an S3 website bucket created with CDK, configure index.html and 404.html, enable public read access, and deploy with S3 deploy.
Configure a CloudFront web distribution to serve an S3-hosted app, using CDK to set the origin, default behavior, and cache invalidation, then deploy and view the generated web URL.
Configure a custom domain for your serverless site by provisioning a certificate with Route 53 and ACM, updating the deployment region, and mapping the domain to a CloudFront distribution.
Set up a domain for rest API with api.example.com, add API URL to the certificate’s alternative names, and configure Route 53 to route to the API gateway; deploy and test.
Explore AWS regions and availability zones for resilient deployments, IP addresses, domain names, DNS, and URLs. See how CDN edge servers, certificates, and public-private keys enable TLS.
Refactor the CDK code to improve readability and maintainability, using separation of concerns by splitting into focused files for reuse, and prepare for future lambda-driven logic and stage-based certificate decisions.
Refactor the CDK project into clean Rest API and translation service constructs, reorganize sources, and prepare for authentication, while updating routes, certificates, and Route53 before deployment.
The lecture shows refactoring the CDK stack into a static website deployment construct, wrapping domain, certificate, and zone, updating imports, and resolving a CloudFront deployment error by destroying and redeploying.
Create and populate a dot env file, read its variables in CDK, and wire account id, region, domain, and subdomains into the project for deployment.
Refactor the project to use a centralized app paths helper that detects the project root env file, replacing relative paths and reducing complexity.
Refactor the lambda wrapper to unify creation, minify code, and externalize layers, reducing bundle size and speeding deployment.
This comprehensive class will teach you the fundamentals of serverless full-stack development by building a real-world web application, from scratch. Throughout the lessons, you'll gain practical experience in creating a fully-functional application while following best coding practices, resulting in a high-quality codebase that you can reuse or reference for your future projects.
The class will cover AWS Cloud services, and you'll learn how to leverage AWS CDK to write infrastructure as code (IaC) and AWS SDK libraries to interact with various AWS services. For the frontend, you'll dive into the popular NextJS framework, which is based on React. The entire project will be developed using TypeScript, and we will be using NPM workspaces to create a Mono-repo for the project in order to package all the elements into a single NPM package, ensuring a robust and maintainable codebase.
By the end of the class, you'll have the necessary knowledge and skills to convert your ideas into working products. Whether you're a solo developer looking to turn ideas into reality, new to serverless or AWS Cloud services, a DevOps professional seeking hands-on experience with AWS CDK, or a complete beginner aspiring to become a serverless full-stack developer, this class offers a comprehensive and practical learning experience.