- Implemented InfiniteCanvas.vue for rendering an infinite canvas with drag and zoom capabilities.
- Created useInfiniteCanvas composable for managing canvas state and interactions.
- Added useImagePreloader composable for preloading images and videos.
- Introduced constants for physics, touch interactions, viewport settings, and zoom defaults.
- Developed utility functions for touch handling and media type detection.
- Defined TypeScript types for canvas items, grid items, and composables.
- Registered components and composables in the Nuxt module.
- Added screenshot generation functionality for content files.
- Updated package.json to include capture-website dependency.
- Created a new article on "Understanding AI Agents, LLMs, and RAG" detailing the synergy between AI agents, LLMs, and Retrieval-Augmented Generation.
- Added an introductory article on "What is Machine Learning?" covering types, model selection, workflow, and evaluation metrics.
chore: setup ESLint and Nuxt configuration
- Added ESLint configuration for code quality.
- Initialized Nuxt configuration with various modules and settings for the application.
chore: initialize package.json and TypeScript configuration
- Created package.json for dependency management and scripts.
- Added TypeScript configuration for the project.
feat: implement API endpoints for activity and stats
- Developed API endpoint to fetch user activity from Lanyard.
- Created a stats endpoint to retrieve Wakatime coding statistics with caching.
feat: add various assets and images
- Included multiple images and assets for articles and projects.
- Added placeholder files to maintain directory structure.
refactor: define types for chat, lanyard, time, and wakatime
- Created TypeScript types for chat messages, Lanyard activities, time formatting, and Wakatime statistics.