···11+# CLAUDE.md
22+33+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
44+55+## Project Overview
66+77+Gitflux is a Nuxt-based web application that provides a better Git UI experience. It's built on top of Nuxt UI framework with GitHub API integration using Octokit for accessing repositories and organizations.
88+99+## Development Commands
1010+1111+- **Start development server**: `pnpm dev` (runs on http://localhost:3000)
1212+- **Build for production**: `pnpm build`
1313+- **Preview production build**: `pnpm preview`
1414+- **Lint code**: `pnpm lint` (uses oxlint)
1515+- **Format code**: `pnpm format` (uses oxfmt)
1616+- **Type checking**: `pnpm typecheck`
1717+- **Install dependencies**: `pnpm install`
1818+1919+## Architecture
2020+2121+### Core Stack
2222+- **Framework**: Nuxt 4.3+ with TypeScript
2323+- **UI Framework**: Nuxt UI 4.4+ (built on Tailwind CSS 4.1+)
2424+- **GitHub Integration**: Octokit 5.0+ for GitHub API calls
2525+- **Validation**: Valibot for form and data validation
2626+- **Icons**: Lucide and Simple Icons via Iconify
2727+- **Package Manager**: pnpm 10.28+
2828+2929+### Application Structure
3030+- `app/` - Main application code following Nuxt conventions
3131+- `app/pages/` - File-based routing with dynamic routes for GitHub orgs and repos
3232+- `app/components/` - Vue components including Form.vue and AppLogo.vue
3333+- `app/composables/` - Composables for GitHub API integration
3434+- `vendor/npmx/` - Third-party vendor code (npmx components and functionality)
3535+3636+### Key Components & Composables
3737+3838+#### GitHub Integration (`app/composables/useGithub.ts`)
3939+- `useAuthenticatedUser(token)` - Authenticates and returns GitHub username
4040+- `useGithubOrg(org)` - Fetches organization data with caching
4141+- `useGithubRepo(owner, repo)` - Fetches repository data with caching
4242+- Uses Nuxt's `useAsyncData` for automatic caching and SSR compatibility
4343+- Token management through cookies (`github_token`)
4444+4545+#### Routing Structure
4646+- `/` - Landing page with user authentication display
4747+- `/[org]` - Organization overview page
4848+- `/[org]/[repo]` - Repository details page
4949+5050+### Configuration Files
5151+- `nuxt.config.ts` - Nuxt configuration with UI module and routing rules
5252+- `app.config.ts` - UI theme configuration (green primary, slate neutral)
5353+- `.oxlintrc.json` / `.oxfmtrc.json` - Code quality tool configurations
5454+- `tsconfig.json` - TypeScript configuration using Nuxt's reference setup
5555+5656+## Development Guidelines
5757+5858+### Reference Implementation
5959+Use `vendor/npmx/` as a reference implementation for:
6060+- Nuxt-specific layout patterns and component organization
6161+- Frontend design concepts and UI patterns
6262+- Component architecture and composition techniques
6363+- Best practices for Nuxt UI framework usage
6464+6565+### GitHub API Usage
6666+- Authentication tokens should be stored in cookies as `github_token`
6767+- All GitHub API calls go through the `useGithub.ts` composables
6868+- Use the provided caching patterns with `useAsyncData` for performance
6969+- Handle loading, error, and success states in components
7070+7171+### UI and Styling
7272+- Follow Nuxt UI component patterns and conventions
7373+- Use the configured color scheme (green primary, slate neutral)
7474+- Leverage Tailwind CSS classes and Nuxt UI's design system
7575+- Maintain responsive design principles
7676+7777+#### Typography
7878+- **Body text**: Mona Sans (`font-sans`) - A strong and versatile typeface designed with Degarism, inspired by industrial-era grotesques
7979+- **Headings**: Hubot Sans (`font-heading`) - Mona Sans's robotic sidekick with geometric accents for technical feel
8080+- **Code/Monospace**: Monaspace Krypton (`font-mono`) - For code blocks, inline code, and technical content
8181+8282+### Code Quality
8383+- Run `pnpm lint` and `pnpm typecheck` before committing
8484+- Use Valibot for form validation schemas
8585+- Follow TypeScript strict mode practices
8686+- Maintain clean component composition with proper setup scripts
8787+8888+### Component Architecture
8989+- Use `<script setup lang="ts">` for all Vue components
9090+- Import types explicitly when needed
9191+- Utilize Nuxt's auto-imports for composables and utilities
9292+- Keep components focused and maintain clear separation of concerns
9393+9494+## CI/CD Pipeline
9595+The project uses GitHub Actions with the following checks:
9696+- Code linting with oxlint
9797+- TypeScript type checking
9898+- Node.js 22 on Ubuntu latest
9999+- pnpm package management
+21
LICENSE
···11+MIT License
22+33+Copyright (c) 2025 Nuxt UI Templates
44+55+Permission is hereby granted, free of charge, to any person obtaining a copy
66+of this software and associated documentation files (the "Software"), to deal
77+in the Software without restriction, including without limitation the rights
88+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
99+copies of the Software, and to permit persons to whom the Software is
1010+furnished to do so, subject to the following conditions:
1111+1212+The above copyright notice and this permission notice shall be included in all
1313+copies or substantial portions of the Software.
1414+1515+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1616+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1717+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1818+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1919+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2020+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121+SOFTWARE.
+60
README.md
···11+# Nuxt Starter Template
22+33+[](https://ui.nuxt.com)
44+55+Use this template to get started with [Nuxt UI](https://ui.nuxt.com) quickly.
66+77+- [Live demo](https://starter-template.nuxt.dev/)
88+- [Documentation](https://ui.nuxt.com/docs/getting-started/installation/nuxt)
99+1010+<a href="https://starter-template.nuxt.dev/" target="_blank">
1111+ <picture>
1212+ <source media="(prefers-color-scheme: dark)" srcset="https://ui.nuxt.com/assets/templates/nuxt/starter-dark.png">
1313+ <source media="(prefers-color-scheme: light)" srcset="https://ui.nuxt.com/assets/templates/nuxt/starter-light.png">
1414+ <img alt="Nuxt Starter Template" src="https://ui.nuxt.com/assets/templates/nuxt/starter-light.png">
1515+ </picture>
1616+</a>
1717+1818+> The starter template for Vue is on https://github.com/nuxt-ui-templates/starter-vue.
1919+2020+## Quick Start
2121+2222+```bash [Terminal]
2323+npm create nuxt@latest -- -t github:nuxt-ui-templates/starter
2424+```
2525+2626+## Deploy your own
2727+2828+[](https://vercel.com/new/clone?repository-name=starter&repository-url=https%3A%2F%2Fgithub.com%2Fnuxt-ui-templates%2Fstarter&demo-image=https%3A%2F%2Fui.nuxt.com%2Fassets%2Ftemplates%2Fnuxt%2Fstarter-dark.png&demo-url=https%3A%2F%2Fstarter-template.nuxt.dev%2F&demo-title=Nuxt%20Starter%20Template&demo-description=A%20minimal%20template%20to%20get%20started%20with%20Nuxt%20UI.)
2929+3030+## Setup
3131+3232+Make sure to install the dependencies:
3333+3434+```bash
3535+pnpm install
3636+```
3737+3838+## Development Server
3939+4040+Start the development server on `http://localhost:3000`:
4141+4242+```bash
4343+pnpm dev
4444+```
4545+4646+## Production
4747+4848+Build the application for production:
4949+5050+```bash
5151+pnpm build
5252+```
5353+5454+Locally preview production build:
5555+5656+```bash
5757+pnpm preview
5858+```
5959+6060+Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.