66 lines
1.9 KiB
Markdown
66 lines
1.9 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Development Commands
|
|
|
|
**Start development server:**
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
**Build for production:**
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
**Type checking and linting:**
|
|
|
|
```bash
|
|
npm run check # Type check with svelte-check
|
|
npm run lint # Check formatting and linting
|
|
npm run format # Auto-format code with prettier
|
|
```
|
|
|
|
**Preview production build:**
|
|
|
|
```bash
|
|
npm run preview
|
|
```
|
|
|
|
## Architecture Overview
|
|
|
|
This is a SvelteKit personal portfolio site for @jedmund that integrates with multiple external APIs to display real-time data about music listening habits and gaming activity.
|
|
|
|
### Key Architecture Components
|
|
|
|
**API Integration Layer** (`src/routes/api/`)
|
|
|
|
- **Redis caching**: Shared Redis client (`redis-client.ts`) used across API routes for caching external API responses
|
|
- **External APIs**: Last.fm (music), Steam (games), PSN (PlayStation games), Giant Bomb (game metadata)
|
|
- **Data enrichment**: Last.fm data is enhanced with iTunes artwork and Giant Bomb metadata
|
|
|
|
**Frontend Structure**
|
|
|
|
- **Component-based**: Reusable Svelte components in `$lib/components/`
|
|
- **Page composition**: Main page (`+page.svelte`) composed of multiple `Page` components with different content sections
|
|
- **Data loading**: Server-side data fetching in `+page.ts` with error handling
|
|
|
|
**Styling System**
|
|
|
|
- **SCSS-based**: Global variables, fonts, themes automatically imported via Vite config
|
|
- **Asset management**: SVG icons and illustrations with automatic processing and alias imports
|
|
|
|
### Key Aliases (svelte.config.js)
|
|
|
|
- `$components` → `src/lib/components`
|
|
- `$icons` → `src/assets/icons`
|
|
- `$illos` → `src/assets/illos`
|
|
- `$styles` → `src/styles`
|
|
|
|
### Environment Dependencies
|
|
|
|
- Requires `LASTFM_API_KEY` and `REDIS_URL` environment variables
|
|
- Uses Node.js adapter for deployment
|