# Rat Chat 🐀 **The Pure TypeScript Chat Application** Rat Chat is a modern, real-time messaging application built on the **PURE STACK** concept: using **TypeScript** across the entire codebase to ensure type safety, consistency, and developer velocity from the database to the DOM. ## 🚀 The PURE STACK Architecture This project strictly adheres to a unified TypeScript ecosystem: - **Backend**: [Bun](https://bun.sh) + [ElysiaJS](https://elysiajs.com) - High-performance runtime and framework. - End-to-end type safety with automatic OpenAPI generation. - Native WebSocket support. - **Frontend**: [Vite](https://vitejs.dev) + [React](https://react.dev) + [TypeScript](https://www.typescriptlang.org) - Fast HMR (Hot Module Replacement). - Strict typing for components and state. - Shared interfaces with the backend. ## 🛠️ Getting Started ### Prerequisites - [Bun](https://bun.sh) (Runtime for both backend and frontend tooling) ### Installation 1. **Clone the repository** ```bash git clone https://gitea.ratland.dev/rat-chat.git cd rat-chat ``` 2. **Setup Backend** ```bash cd backend/app bun install bun dev ``` *Server runs on `http://localhost:8080`* 3. **Setup Frontend** ```bash cd frontend/app bun install bun dev ``` *Client runs on `http://localhost:5173`* ## 📦 Project Structure ``` rat-chat/ ├── backend/app/ # ElysiaJS Server (API & WebSockets) ├── frontend/app/ # React Client └── AGENTS.md # Instructions for AI Agents ``` ## 🤝 Contributing We welcome contributions that stick to the **PURE STACK** philosophy. Keep it typed, keep it fast.