Files
Dash/frontend/AGENTS.md
T
Tomas Dvorak 17a579880f refactor(frontend): restructure project layout and update API schema
Relocate frontend source code from `next-app/` to `frontend/` to align with the new project structure. This includes removing the old Next.js boilerplate files and establishing a cleaner workspace.

Additionally, updates the OpenAPI specification to include support for the `immich` widget type and its corresponding configuration schema.

- Move frontend files to `frontend/`
- Delete obsolete `next-app/` directory and its configuration
- Add `immich` widget type to `openapi.yaml`
- Update `FrontendPlan.md` with dashboard refactor and UX direction
2026-05-04 12:31:34 +02:00

39 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Dash Frontend Agent Rules
## Scope
- This agent may edit: `/frontend`
- This agent must not edit `/backend`, `/db`, or `/openapi`
## Tech Stack
- Next.js 15 App Router + React 19 + TypeScript strict
- Tailwind CSS v4 + shadcn/ui (new-york style)
- `@tanstack/react-query` for server state
- `@dnd-kit` for drag-and-drop
- `openapi-typescript` + `openapi-fetch` for API client (generated from `../openapi/openapi.yaml`)
## Commands
- `npm run dev` — start dev server (Turbopack)
- `npm run build` — production build
- `npm run typecheck``tsc --noEmit`
- `npm run lint` — Next.js lint
- `npm run api:generate` — regenerate API types from OpenAPI spec
## Design
- Dark-first, Vercel-inspired aesthetic
- 3 themes: light, dark, casaos (glassmorphism)
- Geist Sans + Geist Mono fonts
- Shadow-as-border technique (no visible borders, use box-shadow)
- See `../Design.md` for full design system
## API Contract
- All types come from `../openapi/openapi.yaml`
- Do not invent contract fields outside OpenAPI
- API base URL: `NEXT_PUBLIC_API_BASE_URL` (default `http://localhost:8080`)
## Component Rules
- Use shadcn/ui primitives, do not rebuild from scratch
- All interactive elements must have focus rings
- Prefer `font-mono uppercase tracking-wide` for labels/badges
- Service cards are square aspect-ratio, icon + name + URL badges
- Groups are collapsible sections with chevron toggle