"To chat, or not to chat, that is the question."
A Context-Aware AI Chatbot that channels the persona of William Shakespeare. Built with a modern FastAPI backend and a Vanilla JS frontend, powering authentic Early Modern English conversations using Google Gemini 2.0.
- Factually Accurate: Powered by Google's latest Gemini 2.0 Flash Lite model
- Authentic Style: Responses use genuine Shakespearean vocabulary and grammar patterns
- 100% Free: Runs entirely on free-tier resources (Google AI Studio, Render)
- Modern UI: Glassmorphism design with animated backgrounds and typing indicators
- Unified Deployment: Single service for both backend and frontend
- Python 3.11+
- Free Google AI Studio API key
# Clone the repository
git clone https://github.com/gregory1506/shake-chat-v1.git
cd shake-chat-v1
# Set up backend
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Configure environment
cp ../.env.example .env
# Edit .env and add your GOOGLE_API_KEY
# Run the unified server
uvicorn app.main:app --reload --port 8000Open http://localhost:8000 in your browser.
shake-chat-v1/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI app & Static file serving
│ │ ├── config.py # Environment settings
│ │ ├── routers/chat.py # Chat endpoints
│ │ └── services/
│ │ ├── gemini.py # Google Gemini integration
│ │ └── shakespeare.py # Persona instructions
│ ├── requirements.txt
│ └── render.yaml # Render Blueprint
├── frontend/ # Static frontend assets
│ ├── index.html
│ ├── styles.css
│ └── app.js
└── docs/ # Documentation
We use a Unified Monolith approach (Backend serves Frontend) to keep it simple and free on Render.
- Fork this repo.
- Go to Render Dashboard.
- Click New + -> Blueprint.
- Connect your repo.
- Provide
GOOGLE_API_KEYwhen prompted.
See Render Deployment Guide for details.
MIT License - feel free to use for learning and portfolios!
