mirror of
https://github.com/mmahdium/portfolio.git
synced 2026-02-07 00:07:08 +01:00
Adjust nuxt.config.ts to set the development server host and port, remove experimental content configuration, and add a type assertion for markdown configuration. Update replit.md with project details, recent changes, structure, and configuration. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 8164b8e9-c586-4079-b330-117351ac2d8d Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 8b879d4e-c3fb-423d-969c-a3c07d568949 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/9c9df2fc-1e25-49ec-be14-03588059631a/8164b8e9-c586-4079-b330-117351ac2d8d/uhFddP8
72 lines
2.7 KiB
Markdown
72 lines
2.7 KiB
Markdown
# 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
|