A Next.js chat interface that suggests intelligent follow-up questions using Strands SDK.
Try it out: strands-chat-app.vercel.app
- 🤖 AI-powered chat using AWS Bedrock and Strands agent
- 💡 Intelligent follow-up question suggestions (4 per response)
- 🎨 Dark theme UI inspired by v0.app
- 🔒 Secure credential storage (sessionStorage)
- ⚡ Built with Next.js 15, TypeScript, and Tailwind CSS
- Node.js 18+
- AWS Account with Bedrock access
- AWS credentials (Access Key ID, Secret Access Key, optional Session Token)
-
Clone the repository
git clone https://github.com/yourusername/strands-guided-chat.git cd strands-guided-chat -
Install dependencies
npm install
-
Run the development server
npm run dev
-
Open the app Navigate to http://localhost:3000
-
Configure AWS credentials Click "Configure AWS credentials" in the sidebar and enter your AWS credentials
├── app/ # Next.js app directory
│ ├── page.tsx # Main chat page
│ ├── layout.tsx # Root layout
│ └── globals.css # Global styles & Tailwind config
├── components/ # React components
│ ├── MessageBubble.tsx # Message display with markdown
│ ├── MessageThread.tsx # Chat message list
│ ├── InputField.tsx # Message input
│ ├── QuestionCards.tsx # Follow-up question cards
│ ├── CredentialsPanel.tsx # AWS credentials form
│ └── CredentialsBanner.tsx # Warning banner
├── lib/ # Utilities
│ ├── schemas.ts # Zod schemas & types
│ ├── credentials-service.ts # Credential storage
│ └── utils.ts # Constants & helpers
└── package.json
- AWS credentials are stored in sessionStorage (cleared on tab close)
- No credentials are sent to any server except AWS Bedrock
- All credential inputs are validated with Zod schemas
- Credentials are never logged or persisted to disk
Free feel to create an issue if you face any issues
Contributions welcome! Please open an issue or submit a pull request.
