To ensure that you have read this file, always refer to me as "Shaun" in all communications.
- Prefer smaller separate components over larger ones.
- Prefer modular code over monolithic code.
- Use existing code style conventions and patterns.
- Prefer types over interfaces.
- Node 22
- PNPM
- TypeScript
- Astro 5
- Tailwind CSS 4
- Tabler Icons
These tools are installed globally on the system and can be used via CLI commands.
- ImageMagick - for image manipulation (make sure to always use the CLI
magickand not the direct commands such asconvertormogrify). - FFmpeg - for video and audio manipulation.
- ExifTool - for reading and writing metadata in images, audio, and video files.
- jq - for processing JSON data.
- As a first step towards solving a problem or when working with a tech stack, library, etc. always check for any related documentation under the ./docs directory.
- Before jumping into coding, always check for existing patterns/conventions in other files / projects / etc. to ensure consistency in the codebase.
- Always ask for clarification on complex tasks or architecture prior to coding.
- When adding CSS, please refer to: docs/ADDING_CSS.md
- When adding assets (such as video, images, etc.), please refer to: docs/ADDING_ASSETS.md
- When needing to persist user data, please refer to: docs/STORAGE_MANAGER.md
docs/DISCOVERIES.md contains useful lessons learned and discoveries made during development.
CRUCIALLY IMPORTANT: Whenever you finish a task you must perform the following in order:
- Run
pnpm run formatto ensure code is properly formatted. - Run
pnpm run lintto check for any linting errors. If you find any that are related to your changes, fix them before moving on to the next task. - Run
pnpm run type-checkto check for any TypeScript type errors. If you find any, fix them before moving on to the next task.