{"id":30899400,"url":"https://github.com/przeprogramowani/claude-code-gha","last_synced_at":"2025-10-17T13:09:30.545Z","repository":{"id":310783029,"uuid":"1041185878","full_name":"przeprogramowani/claude-code-gha","owner":"przeprogramowani","description":"Claude Code in Github Actions Scenario","archived":false,"fork":false,"pushed_at":"2025-08-20T08:03:44.000Z","size":77,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-20T08:27:43.087Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/przeprogramowani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-20T05:40:04.000Z","updated_at":"2025-08-20T08:01:30.000Z","dependencies_parsed_at":"2025-08-20T08:28:21.323Z","dependency_job_id":"b6191800-93c4-4928-84b6-551724878cd7","html_url":"https://github.com/przeprogramowani/claude-code-gha","commit_stats":null,"previous_names":["przeprogramowani/claude-code-gha"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/przeprogramowani/claude-code-gha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/przeprogramowani%2Fclaude-code-gha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/przeprogramowani%2Fclaude-code-gha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/przeprogramowani%2Fclaude-code-gha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/przeprogramowani%2Fclaude-code-gha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/przeprogramowani","download_url":"https://codeload.github.com/przeprogramowani/claude-code-gha/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/przeprogramowani%2Fclaude-code-gha/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274238052,"owners_count":25247101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-09T03:10:13.341Z","updated_at":"2025-10-17T13:09:25.479Z","avatar_url":"https://github.com/przeprogramowani.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 10xChat\n\nA modern chat interface application built with Astro, React, and Tailwind CSS, emulating the 10xChat experience with multi-threaded conversations and persistent chat history.\n\n## ✨ Features\n\n- **Multi-threaded Conversations**: Create and manage multiple chat threads\n- **Persistent Chat History**: Chat data is saved locally and persists across sessions\n- **Responsive Design**: Works seamlessly on desktop and mobile devices\n- **Real-time Chat Interface**: Smooth messaging experience with loading states\n- **Auto-generated Titles**: Thread titles are automatically generated from the first message\n- **Server-Side Rendering**: Fast initial page loads with SSR support\n\n## 🚀 Project Structure\n\n```text\n/\n├── public/                 # Static assets\n│   └── favicon.svg\n├── src/\n│   ├── components/         # React components\n│   │   ├── Avatar.tsx\n│   │   ├── ChatInput.tsx\n│   │   ├── ChatInterface.tsx\n│   │   ├── ChatMessage.tsx\n│   │   ├── ChatSidebar.tsx\n│   │   ├── MobileHeader.tsx\n│   │   └── ThreadItem.tsx\n│   ├── hooks/              # Custom React hooks\n│   │   └── useChatMigration.ts\n│   ├── pages/              # Astro pages and API routes\n│   │   ├── api/\n│   │   │   └── chat.ts\n│   │   └── index.astro\n│   ├── stores/             # State management\n│   │   └── chatStore.ts\n│   └── styles/             # Global styles\n│       └── global.css\n├── astro.config.mjs        # Astro configuration\n├── tsconfig.json           # TypeScript configuration\n└── package.json\n```\n\n## 🛠️ Tech Stack\n\n- **Framework**: Astro 5.x with React 19 integration\n- **Styling**: Tailwind CSS 4.x\n- **State Management**: Zustand with persist middleware\n- **TypeScript**: Strict configuration\n- **Deployment**: Cloudflare Pages (configured)\n- **Icons**: Lucide React\n\n## 🧞 Commands\n\nAll commands are run from the root of the project:\n\n| Command           | Action                                    |\n| :---------------- | :---------------------------------------- |\n| `npm install`     | Installs dependencies                     |\n| `npm run dev`     | Starts local dev server at `localhost:3000` |\n| `npm run build`   | Build production site to `./dist/`       |\n| `npm run preview` | Preview build locally before deploying   |\n| `npm run astro`   | Run Astro CLI commands                    |\n\n## 🏗️ Architecture\n\nThe 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.\n\n### Key Components\n\n- **ChatInterface**: Main chat container managing thread switching and message flow\n- **ChatSidebar**: Navigation for switching between chat threads\n- **ChatStore**: Zustand store handling thread and message state with localStorage persistence\n\n### API Integration\n\nThe chat functionality integrates with a server-side API endpoint at `/api/chat` for processing user messages and generating responses.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprzeprogramowani%2Fclaude-code-gha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprzeprogramowani%2Fclaude-code-gha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprzeprogramowani%2Fclaude-code-gha/lists"}