# Nuxt UI Portfolio - Replit Configuration ## Overview This is a modern, bilingual portfolio website built with Nuxt 4, featuring English and Persian (RTL) support with dark mode as default. The project has been configured to run in the Replit environment. ## Project Information - **Framework**: Nuxt 4 (Vue 3 + Vite) - **UI Library**: Nuxt UI 4 - **Styling**: Tailwind CSS 4 - **Language**: TypeScript - **i18n**: English & Persian with automatic RTL switching - **Package Manager**: pnpm (but npm works in Replit) ## Recent Changes (November 24, 2025) - Upgraded Node.js from 18 to 20 (required by Nuxt 4 and its dependencies) - Configured Nuxt dev server to run on port 5000 with host 0.0.0.0 for Replit compatibility - Configured Nitro dev proxy to bind to 0.0.0.0 - Set up workflow for automatic dev server startup - Configured deployment for static site generation (SSG) with build command and output directory - Removed obsolete experimental content configuration options - Fixed LSP errors in nuxt.config.ts ## Project Structure ``` app/ # Source directory (srcDir) ├── app.vue # Root component ├── app.config.ts # Nuxt UI theme tokens ├── components/ # Auto-imported components ├── composables/ # Auto-imported composables ├── data/ # Static content (EN/FA) ├── layouts/ # Layout components ├── pages/ # File-based routing └── assets/css/ # Tailwind & global styles server/ # Server-side code └── api/ # API endpoints content/ # Nuxt Content markdown files (blog posts) public/ # Static assets ├── favicon/ ├── fonts/ # Local fonts (Roobert, Vazirmatn) └── img/ # Images ``` ## Replit-Specific Configuration ### Dev Server - **Port**: 5000 (required for Replit webview) - **Host**: 0.0.0.0 (allows external connections) - **HMR**: Configured to use clientPort 5000 ### Environment Variables No required environment variables for development. Optional: - `NUXT_PUBLIC_LOAD_PLAUSIBLE` - Enable/disable Plausible analytics - `NUXT_PUBLIC_SITE_URL` - Site URL for sitemap and RSS ## Features - Bilingual content (English/Persian) - Dark mode by default - Responsive design - Blog with markdown content - Optimized images - SEO-friendly (sitemap, RSS feeds) - View transitions API support ## Development Notes - Dependencies are auto-installed via npm on Replit - The dev server automatically restarts when files change - Content is served from the `content/` directory for blog posts - Translations are in `i18n/locales/` directory