AI Travel Recommendation App
Value statement: Serverless full-stack application delivering personalized travel recommendations using AWS Bedrock and Claude 3 Sonnet with GraphQL API and Cognito authentication.
Overview
Built a serverless travel recommendation app leveraging AWS Bedrock’s Claude 3 Sonnet for intelligent destination suggestions. Users input interests and receive personalized travel recommendations with destinations, activities, and itineraries.
The application demonstrates modern cloud-native architecture: React/TypeScript frontend hosted on AWS Amplify, AWS AppSync GraphQL API, Lambda functions for AI inference, and Amazon Cognito for authentication. Fully serverless design with Git-based CI/CD workflow.
Architecture

Technology Stack
| Layer | Technologies |
|---|---|
| Frontend | React 18, TypeScript, Vite, Amplify UI |
| Authentication | Amazon Cognito (Amplify Auth) |
| API | AWS AppSync (GraphQL) |
| Backend | AWS Lambda |
| AI/ML | AWS Bedrock (Claude 3 Sonnet) |
| Hosting | AWS Amplify (CloudFront + S3) |
| CI/CD | AWS Amplify Git-based workflow |
Implementation Details
AWS Bedrock + Claude 3 Sonnet: Lambda function invokes Bedrock with prompt engineering for travel recommendations:
response = bedrock_runtime.invoke_model( modelId='anthropic.claude-3-sonnet-20240229-v1:0', body=json.dumps({ "anthropic_version": "bedrock-2023-05-31", "messages": [{"role": "user", "content": prompt}], "max_tokens": 2000 }))AWS AppSync GraphQL API:
- Custom queries reference Lambda data source
- Resolvers process data between frontend and Bedrock
- Structured response types for AI model outputs
React/TypeScript Frontend:
- Vite build tooling for fast development
- Amplify UI components for authentication flows
- TypeScript for type-safe API contracts
- Responsive design for mobile/desktop
Amazon Cognito (Amplify Auth):
- User registration with email verification
- Sign-in/sign-out with JWT tokens
- Password reset workflows
- Automatic token refresh
Amplify CI/CD: Git-based workflow with automatic deployments on push to main, preview environments for PRs, and global CDN distribution.
Features
- Personalized recommendations based on user interests
- AI-generated itineraries with destinations and activities
- Secure authentication with sign-up, sign-in, password reset
- Responsive UI with Amplify component library
- Serverless scaling handles variable traffic automatically
Performance & Cost
| Metric | Value |
|---|---|
| Response Time | 2-4 seconds (Bedrock inference) |
| Concurrent Users | 1000+ (Lambda auto-scaling) |
| Monthly Cost | ~$15-30 (low usage) |
| Bedrock Cost | $0.015 per 1000 input tokens |
Lessons Learned
Prompt engineering is critical: Initial prompts produced verbose, unstructured responses. Iterative refinement with output format specifications improved quality significantly.
Claude 3 Sonnet vs Haiku: Started with Haiku for cost savings but switched to Sonnet for better reasoning. Cost increase (2x) justified by quality improvement.
Amplify simplifies DevOps: Compared to manual CloudFront/S3/Lambda setup, Amplify reduced deployment complexity by 80% while providing preview environments and atomic deployments.
Future Improvements
- Implement RAG with vector database for real-time travel data
- Integrate travel APIs for pricing and availability
- Add user history for personalized recommendations
- Support multiple languages with Claude’s multilingual capabilities