This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
A static link tree site for the Keycapsss mechanical keyboard shop, built with Astro and Tailwind CSS. Simple single-page application with social media links.
npm run dev- Start dev server at http://localhost:4321/ with hot reloadnpm run preview- Preview production build locally
npm run build- Create production build todist/
npm run analyze- Run Prettier + ESLint checks (no fixes)npm run analyze:prettier- Check formatting onlynpm run analyze:eslint- Check linting onlynpm run fix- Auto-fix all formatting and linting issuesnpm run fix:prettier- Auto-format with Prettiernpm run fix:eslint- Auto-fix ESLint violations
- Fully static site generation (SSG) - no server-side rendering
- Build output goes to
dist/containing pre-rendered HTML/CSS/JS - Deployed via GitHub Actions to
distbranch, then served via Nginx in Coolify - Vite bundler with Terser minification (configured in astro.config.mjs)
src/
├── layouts/Layout.astro - Base layout with <head>, Tailwind setup, footer
├── pages/index.astro - Landing page with link list and metadata
public/ - Static assets (logo, favicons)
- Global styles defined in Layout.astro:59-63 using
<style is:global> - Tailwind directives (@tailwind base/components/utilities) defined manually (applyBaseStyles disabled in Astro config)
- Content paths configured in tailwind.config.js to scan
./src/**/*.{astro,html,...} - Uses @tailwindcss/forms plugin
- Props defined via TypeScript interfaces in frontmatter
- SEO metadata (OG tags, Twitter cards) set in page frontmatter
- Content injected via
<slot />in layouts
ESLint Configuration (eslint.config.js)
- Uses new flat config format (ESLint 9+)
eslint-plugin-astrofor.astrofiles withastro-eslint-parser@typescript-eslint/parserfor TypeScript in Astro frontmatter- Ignores:
dist/,.astro/,node_modules/
Prettier Configuration (.prettierrc.json)
- Print width: 100
- Double quotes (singleQuote: false)
- Tab width: 2
- ES5 trailing commas
- Uses
prettier-plugin-astrofor.astrofile formatting
GitHub Actions workflow (.github/workflows/deploy.yml) builds and deploys to dist branch on push to main:
- Checkout with full history
- Setup Node.js 22 with npm cache
- Install deps via
npm ci - Build via
npm run build - Deploy
dist/to orphandistbranch (no history)