This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is udgibil-front, the frontend for Udgibil RSS reader - a Vue 3 application for reading and managing RSS feeds. The app supports user authentication, feed management, article reading, bookmarking, article publishing, and multi-language support.
npm run dev- Start development server (runs on port 8080 with host 0.0.0.0)npm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint with auto-fix
- Uses Vite as the build tool
- API URL configured via
VITE_API_URLenvironment variable - Development server runs with increased memory allocation (4GB)
- Vue 3 with Composition API
- Pinia for state management with persistence
- Vue Router for routing with authentication guards
- Tailwind CSS for styling with dark mode support
- Editor.js for rich text editing in publishing features
- Axios for HTTP requests with Bearer token authentication
- Vue i18n for internationalization (9 languages supported)
The app uses Pinia stores for different domains:
session.js- Authentication, theme, language, onboarding stateuser.js- User profile and preferencesfeeds.js- RSS feeds managementarticles.js- Article data and interactionsbookmarks.js- Bookmarked articlescollections.js- User-created feed collectionsmyfeeds.js- User's published feedstickets.js- Support ticket system
Complex nested routing structure with layout components:
- Main Layout (
SkeletonPage) - Three-column layout (left sidebar, center content, right sidebar) - Bookmark Layout (
SkeletonBookmarkPage) - Similar three-column for bookmarks - Publishing Layout (
PubSkeletonPage) - Layout for user publishing features - Settings - Full-page layout for settings
Authentication guards redirect unauthenticated users appropriately and handle onboarding flow.
/components/feeds/- Feed browsing and management/components/articles/- Article display and interaction/components/bookmarks/- Bookmark functionality/components/pub/- Publishing features (user-generated content)/components/search/- Search for feeds and articles/components/support/- Help desk system/components/shared/- Reusable UI components/components/icons/- SVG icon components/pages/- Top-level page components
HTTP client in /composables/networks.js provides:
useGet()andusePost()composables with automatic Bearer token injection- Environment-based API URL configuration
- Centralized error handling
The app includes a full publishing platform where users can:
- Create and manage their own RSS feeds
- Write articles using Editor.js rich text editor
- Publish content with preview functionality
- User authentication via
/author/auth/google - Token stored in Pinia with persistence
- Onboarding flow for new users (
/onboard) - Route guards protect authenticated areas
- Supports light/dark/system themes
- Theme state managed in session store
- Tailwind CSS classes toggled on document root
Full i18n support with JSON language files in /src/languages/ for:
English, Russian, Ukrainian, Spanish, German, French, Italian, Portuguese, Chinese
- Composition API with
<script setup> - Reactive state management with Pinia
- Component props and emits for parent-child communication
- Vue Router navigation guards for route protection
- Tailwind utility classes for styling