https://github.com/przeprogramowani/claude-code-gha
Claude Code in Github Actions Scenario
https://github.com/przeprogramowani/claude-code-gha
Last synced: 8 months ago
JSON representation
Claude Code in Github Actions Scenario
- Host: GitHub
- URL: https://github.com/przeprogramowani/claude-code-gha
- Owner: przeprogramowani
- Created: 2025-08-20T05:40:04.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-08-20T08:03:44.000Z (10 months ago)
- Last Synced: 2025-08-20T08:27:43.087Z (10 months ago)
- Language: TypeScript
- Size: 75.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 10xChat
A modern chat interface application built with Astro, React, and Tailwind CSS, emulating the 10xChat experience with multi-threaded conversations and persistent chat history.
## ✨ Features
- **Multi-threaded Conversations**: Create and manage multiple chat threads
- **Persistent Chat History**: Chat data is saved locally and persists across sessions
- **Responsive Design**: Works seamlessly on desktop and mobile devices
- **Real-time Chat Interface**: Smooth messaging experience with loading states
- **Auto-generated Titles**: Thread titles are automatically generated from the first message
- **Server-Side Rendering**: Fast initial page loads with SSR support
## 🚀 Project Structure
```text
/
├── public/ # Static assets
│ └── favicon.svg
├── src/
│ ├── components/ # React components
│ │ ├── Avatar.tsx
│ │ ├── ChatInput.tsx
│ │ ├── ChatInterface.tsx
│ │ ├── ChatMessage.tsx
│ │ ├── ChatSidebar.tsx
│ │ ├── MobileHeader.tsx
│ │ └── ThreadItem.tsx
│ ├── hooks/ # Custom React hooks
│ │ └── useChatMigration.ts
│ ├── pages/ # Astro pages and API routes
│ │ ├── api/
│ │ │ └── chat.ts
│ │ └── index.astro
│ ├── stores/ # State management
│ │ └── chatStore.ts
│ └── styles/ # Global styles
│ └── global.css
├── astro.config.mjs # Astro configuration
├── tsconfig.json # TypeScript configuration
└── package.json
```
## 🛠️ Tech Stack
- **Framework**: Astro 5.x with React 19 integration
- **Styling**: Tailwind CSS 4.x
- **State Management**: Zustand with persist middleware
- **TypeScript**: Strict configuration
- **Deployment**: Cloudflare Pages (configured)
- **Icons**: Lucide React
## 🧞 Commands
All commands are run from the root of the project:
| Command | Action |
| :---------------- | :---------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:3000` |
| `npm run build` | Build production site to `./dist/` |
| `npm run preview` | Preview build locally before deploying |
| `npm run astro` | Run Astro CLI commands |
## 🏗️ Architecture
The application uses a client-side state management approach with Zustand for handling chat threads and messages. Each chat session is organized into threads, with messages persisted to localStorage for continuity across browser sessions.
### Key Components
- **ChatInterface**: Main chat container managing thread switching and message flow
- **ChatSidebar**: Navigation for switching between chat threads
- **ChatStore**: Zustand store handling thread and message state with localStorage persistence
### API Integration
The chat functionality integrates with a server-side API endpoint at `/api/chat` for processing user messages and generating responses.