| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Build and deploy a task manager on AWS using serverless cloud services.
TaskFlow — a task management app deployed on AWS. You'll start with a working app that can add and display tasks, then implement three new features:
Along the way you'll discover how serverless cloud services work together: DynamoDB, Lambda, API Gateway, S3, and Bedrock.
You have access to AI coding tools (GitHub Copilot) to help you — use them as much or as little as you like.
Finished early? There are bonus features in the requirements too — task suggestions and a chat assistant powered by Bedrock.
Browser → S3 (static frontend)
→ API Gateway → Lambda → DynamoDB (task storage)
→ Bedrock (AI categorization)
git clone https://github.com/<your-username>/cloudcraft-workshop.git
cd cloudcraft-workshopReplace <your-username> with your GitHub username.
Run the setup script to install all required tools (Node.js, Pulumi, GitHub CLI):
bash ./setup.sh
source ~/.bashrcVerify everything installed:
node --version # Should be v20+
pulumi version # Should show a version
gh --version # Should show a version
aws sts get-caller-identity # Should show your AWS accountThere are three separate packages to install — the frontend, the Lambda function, and the infrastructure:
npm install
cd src/lambda && npm install && cd ../..
cd infra && npm install && cd ..This section walks you through your first deployment to AWS using Pulumi.
cd src/lambda
npm run build
cd ../..This compiles the TypeScript Lambda handler into JavaScript that AWS can run.
npm run buildThis creates a static export of the Next.js app in the out/ directory.
cd infra
pulumi login --local
pulumi stack init dev
pulumi config set aws:region eu-central-2What this does:
pulumi upPulumi will show you a preview of everything it's about to create:
Review the preview and type yes to deploy.
pulumi stack output apiEndpoint
pulumi stack output siteUrlSave these — you'll need them.
The frontend needs to know where your API lives. Rebuild with the API URL from step 5:
cd ..
NEXT_PUBLIC_API_URL=<your-api-endpoint> npm run build
cd infra
pulumi up -yReplace <your-api-endpoint> with the apiEndpoint value from step 5 (e.g., https://abc123.execute-api.eu-central-2.amazonaws.com).
Open the site URL in your browser. Add a todo — it should appear in the list. That's your app running on AWS!
Read REQUIREMENTS.md for the three features you need to implement. Follow this process:
After making changes, rebuild and redeploy:
# After Lambda changes:
cd src/lambda && npm run build && cd ../../infra && pulumi up -y
# After frontend changes (from project root):
NEXT_PUBLIC_API_URL=<your-api-endpoint> npm run build
cd infra && pulumi up -ygit show solution:src/lambda/handler.ts # See the finished Lambda
git show solution:src/hooks/useTodos.ts # See the finished hookcloudcraft-workshop/ ├── src/ │ ├── app/ # Next.js pages (page.tsx, layout.tsx) │ ├── components/ # React components (TodoApp, TodoItem, etc.) │ ├── hooks/ # Custom hooks (useTodos) │ ├── lambda/ # Lambda function (handler.ts) │ └── types/ # TypeScript types (Todo) ├── infra/ # Pulumi infrastructure code (index.ts) ├── REQUIREMENTS.md # Feature specs for the workshop └── README.md # You are here
Pulumi is an Infrastructure as Code (IaC) tool. You define cloud resources in TypeScript, and Pulumi creates, updates, and deletes them on AWS for you.
Key concepts:
When you're done with the workshop, destroy your AWS resources:
cd infra
pulumi destroy # Tear down all AWS resources
pulumi stack rm dev # Remove the stack and its statepulumi destroy removes all AWS resources (DynamoDB table, Lambda, API Gateway, S3 bucket). You'll be shown a preview before confirming.
Want to run this workshop outside of the provided cloud environment? See the Self-Hosted Setup Guide for instructions on setting up your own AWS account and local tools.
| Technology | Role |
|---|---|
| Next.js 14 (static export) | Frontend framework |
| TypeScript | Type-safe code |
| Tailwind CSS | Styling (dark theme) |
| Pulumi | Infrastructure as Code |
| AWS DynamoDB | NoSQL database for tasks |
| AWS Lambda | Serverless API |
| AWS API Gateway | HTTP routing |
| AWS S3 | Static website hosting |
| AWS Bedrock | AI model invocation (Claude) |
| Back | FazBrowse Home | New Git URL |