This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the static marketing website for TigerApps, a Princeton University student organization. Built with Astro.js and TailwindCSS, it showcases current apps, team members, and serves as the main landing page.
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Check code formatting with Prettier
npm run format # Format code with Prettier (auto-fix)- Prettier configuration in
.prettierrcwith 4-space indentation - Pre-commit hook automatically runs
npm run formatbefore commits - Astro-specific formatting with
prettier-plugin-astro
- Astro 4.16.18 - Static site generator with component-based architecture
- TailwindCSS - Utility-first CSS with custom design system
- TypeScript - Type safety for component props and data structures
src/pages/- Route-based pages (index, archive, resources)src/components/landing/- Homepage-specific components with co-located datasrc/components/page/- Shared page components (header, footer)src/components/*/ui/- Reusable UI componentssrc/assets/- Images organized by category (apps/, members/, companies/, archive/)
All content data is separated into utility files as TypeScript objects:
- Apps data:
src/utils/apps.ts- Contains all current app sections with imports and metadata - Members data:
src/utils/members.ts- Contains current/past members and company logos - Type definitions:
src/utils/types.ts- TypeScript interfaces for data structures - Archive apps:
src/pages/archive.astro- Archive app data co-located in the page component
Custom TailwindCSS configuration in tailwind.config.mjs:
- Primary:
#3EE0BF(teal green) with hover variant#4BD9B0 - Secondary:
#2B3E50(dark blue-gray) with hover variant#34495E - On-primary/secondary text colors for accessibility
- Use
.contand.constrainedutility classes for consistent layouts
- Astro Components: Use
.astroextension with component scripts in frontmatter - Image Optimization: Import images as ES modules for Astro's built-in optimization
- TypeScript Integration: Type-safe props and data structures throughout
- UI Components: Reusable components in
ui/subdirectories with standardized props
- Use
.webpformat for all images - Import images as ES modules for Astro optimization
- Organize by category in
/src/assets/
- Add app data object to appropriate section in
src/utils/apps.ts - Add screenshot to
src/assets/apps/in.webpformat - Import image at top of
apps.tsfile
- Add member data to
currentMembersarray insrc/utils/members.ts - Add headshot to
src/assets/members/in.webpformat - Import image at top of
members.tsfile
- Move data from
src/utils/apps.tsto the archive array insrc/pages/archive.astro - Move screenshot from
assets/apps/toassets/archive/ - Update import paths in the archive page