feat: migrate landing from Next.js to Nuxt 4 (Vue 3)

Full 1:1 migration preserving all visuals, animations and behavior:
- Nuxt 4 + Vue 3 (script setup, TypeScript strict) with SSG output
- Tailwind CSS v4 with @tailwindcss/vite
- Ant Design Vue 4 (dark theme, RTL, Persian locale) for design system
- Pinia for state management (ui + contact stores)
- motion-v (framer-motion port) for all animations
- lucide-vue-next for icons
- SEO improvements: og:image, canonical fix, real 404 page, JSON-LD services
- JS bundle reduced from 302KB to 239KB gzip
- Docker/nginx deployment preserved (out/ -> nginx)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
S. Esmaeili
2026-10-06 16:28:05 +03:30
co-authored by Claude Opus 4.6
parent 1af5b555b8
commit e31ef5a21f
127 changed files with 12160 additions and 3464 deletions
+20 -16
View File
@@ -1,27 +1,31 @@
{
"name": "aria-imen-landing",
"private": true,
"version": "0.1.0",
"version": "0.2.0",
"type": "module",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
"dev": "nuxt dev",
"build": "nuxt generate",
"preview": "npx serve out",
"typecheck": "nuxt typecheck",
"postinstall": "nuxt prepare"
},
"dependencies": {
"framer-motion": "^13.2.0",
"lucide-react": "^0.475.0",
"next": "15.5.25",
"react": "19.0.0",
"react-dom": "19.0.0"
"@pinia/nuxt": "^1.0.2",
"@vueuse/core": "^15.0.0",
"ant-design-vue": "^4.2.6",
"lucide-vue-next": "^0.475.0",
"motion-v": "^2.6.0",
"nuxt": "^4.5.2",
"pinia": "^4.0.3",
"vue": "^3.5.43",
"vue-router": "^5.3.1"
},
"devDependencies": {
"@tailwindcss/postcss": "4.1.17",
"@types/node": "22.19.17",
"@types/react": "19.0.8",
"@types/react-dom": "19.0.3",
"tailwindcss": "4.1.17",
"typescript": "5.9.3"
"@tailwindcss/vite": "^4.1.17",
"@types/node": "^22.20.5",
"tailwindcss": "^4.1.17",
"typescript": "^5.9.3",
"vue-tsc": "^3.3.12"
}
}