Inspired by Claude
Recreation of the Anthropic's Claude AI chat interface. Build with TypeScript and Flask
This project is a full-stack clone of the Claude AI chat interface. Created to practice and learn modern web development and providing a functional chat application. (Also because it's interesting and fun :) )
- 🤖 AI-Powered Chat: Conversations with Claude (Haiku 4.5)
- 💬 Chat Management: Create, rename, delete, and organize conversations
- ⭐ Favorites System: Star important conversations
- 💾 Persistent Storage: All chats automatically saved to browser storage
- 📱 Responsive Design: Works seamlessly on desktop and mobile devices
- Collapsible Sidebar: Quick access to chat history
- Dropdown Menus: Context actions for each conversation
- Modal Dialogs: Rename interface with keyboard support
- URL Navigation: Each chat has a unique shareable URL
- Markdown Rendering: Rich text display in messages
- TypeScript
- Marked.js
- HTML5/CSS3
- localStorage
- Node.js (v18.0.0 or higher)
node --version # Should be v18+- npm (v9.0.0 or higher)
npm --version # Should be v9+- Python (3.9 or higher)
python --version # Should be 3.9+- Anthropic API Key
- Clone the repository
git clone https://github.com/Flint15/Claude-website-clone.git
cd claude-clone- Install frontend dependencies
npm install- Set up Python backend
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt- Create environment file
cd backend
cp .env.example .env-
Add your Anthropic API key
Open
backend/.envand add:
ANTHROPIC_API_KEY=your_actual_api_key_here-
Verify TypeScript configuration
Check
tsconfig.jsonfor compiler options:
{
"compilerOptions": {
"target": "es2023",
"module": "es2022",
"strict": true,
"outDir": "./dist"
}
}Run Backend and Frontend Separately
Terminal 1 - Backend:
cd backend
source venv/bin/activate # or venv\Scripts\activate on Windows
python server.pyServer runs at http://127.0.0.1:5000
Terminal 2 - Frontend Compilation (watch mode):
npm run build -- --watchThen open new.html in your browser.
Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/sugoooy-feature- Make your changes
- Commit your changes
git commit -m 'Add some ohayoo feature'- Push to the branch
git push origin feature/sugoooy-feature- Open a Pull Request
Made with 愛 by Vladimir