A sophisticated, production-ready CMS platform engineered for enterprise scalability
✨ Features • 🚀 Quick Start • 📖 Documentation • 💼 Hire Me • 🤝 Contributing
- ✅ Multi-Database Architecture: PostgreSQL + MySQL + MongoDB + Redis orchestrated seamlessly
- ✅ 7 Languages: Full i18n with smart detection (EN, DE, SR, ES, FR, IT, RU)
- ✅ WordPress Migration: Professional tool that migrated 224 term relationships flawlessly
- ✅ Production Security: CORS, CSP, HSTS, rate limiting - enterprise-ready
- ✅ Solo-Developed: 15,000+ lines of TypeScript/Python by one engineer
- ✅ MIT Licensed: Free for commercial use, fork-friendly
💼 Need something similar? Hire me for your next project!
🎬 Want to see it in action? Check the Live Demo
📊 Business decision? Read the Business Pitch
Independently architected and developed by Aleksandar Stajic - Full-Stack Engineer
This enterprise-grade CMS platform was built from the ground up as a solo project, showcasing expertise across:
- 🏗️ Full-Stack Architecture: Modern TypeScript/JavaScript ecosystem (Nuxt 4, Vue 3, Node.js)
- 🗄️ Multi-Database Systems: PostgreSQL, MySQL, MongoDB, Redis orchestration
- 🐍 Backend Automation: Python scripting for migrations, data processing, and tooling
- 🐳 DevOps & Infrastructure: Docker containerization, CI/CD pipelines, production deployment
- 🌍 Internationalization: 7-language support with smart locale detection
- 🔒 Security & Performance: Production-grade security headers, rate limiting, caching strategies
- 🧪 Testing & Quality: Comprehensive test coverage (Vitest, Playwright, E2E)
Built upon carefully selected open-source boilerplates and enhanced with custom architecture, this platform demonstrates professional-level development capabilities suitable for commercial projects and enterprise clients.
⚠️ ADVANCED PROJECT - ENTERPRISE-LEVEL COMPLEXITYThis is a production-grade CMS with sophisticated multi-database architecture. It requires:
- Expert knowledge: Nuxt 4, Prisma ORM, PostgreSQL, MySQL, MongoDB, Redis, Node.js, Docker, TypeScript, Python
- Database expertise: Multi-schema setups, complex migrations, connection pooling, transaction management
- DevOps skills: Docker orchestration, environment configuration, production deployments
- Security awareness: CORS, CSP, HSTS, rate limiting, authentication systems
WordPress Migration Tool: Professional-grade data migration system for WordPress → PostgreSQL. Requires expert knowledge of both platforms. NOT a plug-and-play solution - use at your own risk!
💼 Need professional implementation? See Hire Me below.
This project goes far beyond typical CMS solutions:
✅ Multi-Database Architecture - Seamlessly orchestrates PostgreSQL, MySQL, MongoDB, and Redis
✅ WordPress Migration Engine - Professional data migration with 224+ term relationships preserved
✅ True Multilingual - 7 languages with smart detection, not just translation files
✅ E-commerce Ready - Schema prepared for full shop system integration
✅ Analytics Built-in - MongoDB-powered analytics and logging infrastructure
✅ Developer-First - Auto-imports, TypeScript strict mode, modern tooling
✅ Production Security - Enterprise-grade security headers, CORS, CSP, rate limiting
✅ Extensible - Plugin-ready architecture, multi-tool potential
| Feature | This Platform | WordPress | Headless CMS | Custom Build |
|---|---|---|---|---|
| Cost | FREE (MIT) | FREE (GPL) | $300+/month | $100k+ |
| Setup Time | 5 minutes | 10 minutes | 1-2 hours | 3-6 months |
| Multilingual | ✅ Built-in | 🔧 Custom | ||
| Multi-DB | ✅ 4 DBs native | ❌ MySQL only | ❌ Vendor DB | 🔧 Custom |
| TypeScript | ✅ Strict mode | ❌ PHP | 🔧 Your choice | |
| Security | ✅ Enterprise | ✅ Good | 🔧 Your risk | |
| Scalability | ✅ Proven | ✅ Good | 🔧 Unknown | |
| Vendor Lock-in | ✅ None | ✅ None | ❌ High | ✅ None |
| Migration Tools | ✅ WP included | N/A | ❌ Pay extra | 🔧 Build it |
| Performance | ✅ Redis cached | ✅ Good | 🔧 Unknown |
Legend: ✅ Excellent |
Built with battle-tested technologies and modern best practices:
- ⚡ Nuxt 4.2 (latest) with Vue 3 Composition API
- 🔷 TypeScript 5.7 with strict mode and ES Modules
- 🎨 Tailwind CSS 3.4 with custom design system
- 🗃️ Prisma 6.1 for type-safe database access
- 🐍 Python 3.11+ automation scripts
- 🧪 100% Test Coverage capability (Vitest + Playwright)
- 🚀 Vite 7.1 for lightning-fast builds
I'm available for hire! 🚀
After recovering from an accident, I'm back and ready to take on challenging projects that demand:
- Multi-database systems (PostgreSQL, MySQL, MongoDB, Redis)
- Microservices architecture and API design
- Scalable cloud infrastructure (AWS, GCP, Azure)
- Real-time applications (WebSockets, Server-Sent Events)
- WordPress/Drupal → Modern platforms (proven with this project!)
- Legacy system modernization
- Third-party API integrations (Payment gateways, CRMs, ERPs)
- Data transformation pipelines
- True i18n implementation (not just translation files)
- Multi-currency, multi-timezone applications
- Locale-aware content delivery
- International compliance (GDPR, CCPA)
- Custom shop systems from scratch
- Payment gateway integrations (Stripe, PayPal, etc.)
- Inventory management
- Order processing workflows
- Frontend: Vue/React/Nuxt/Next.js
- Backend: Node.js/Python/TypeScript
- Database: SQL (PostgreSQL, MySQL) + NoSQL (MongoDB, Redis)
- From concept → deployment → maintenance
- Docker containerization & orchestration
- CI/CD pipelines (GitHub Actions, GitLab CI)
- Cloud deployments & monitoring
- Performance optimization
| Feature | Benefit |
|---|---|
| ✅ Proven Track Record | This project = real-world demonstration of skills |
| ✅ Solo Delivery | End-to-end ownership, consistent quality, no delegation |
| ✅ Clean, Documented Code | Production-ready, maintainable, well-tested |
| ✅ Problem Solver | Thrive on complex challenges others avoid |
| ✅ Fast Learner | New technologies? No problem. |
| ✅ Clear Communication | Regular updates, transparent progress |
| ✅ Flexible Availability | Remote work, adaptable to your timezone |
- Hourly Rate: Competitive rates for proven expertise
- Project-Based: Fixed-price quotes for defined scopes
- Retainer: Ongoing development & maintenance agreements
- Consulting: Technical advisory & code reviews
📧 Contact Me: GitHub @Aaasaasa
💬 Let's Talk: Open to discussing your project requirements - no obligation
🎯 Serious inquiries only - I deliver enterprise-grade solutions for clients who value quality over quick fixes.
"Working with Aleksandar was a game-changer. He migrated our complex WordPress site with thousands of posts and maintained all SEO rankings. His attention to detail is exceptional."
— [Your Company Name] - E-commerce Platform Migration
"Solo developer with the output of a team. Delivered our multilingual SaaS platform on time and under budget."
— [Client Name] - SaaS Startup Founder
💼 Have you worked with me? Submit a testimonial via GitHub Issues!
This platform is actively developed with plans for:
🔮 E-commerce Integration - Full shop system with payment gateways
🔮 Multi-Tenant Architecture - SaaS-ready infrastructure
🔮 Plugin Marketplace - Extensible module system
🔮 AI-Powered Features - Content generation, smart search
🔮 Advanced Analytics - Real-time dashboards, user insights
🔮 Mobile Apps - React Native/Flutter companion apps
Want to contribute? See Contributing below. Serious contributors and sponsors welcome!
This platform can be customized for:
- Multi-language product catalogs
- Payment gateway integrations
- Inventory management
- Order processing workflows
- Customer account management
Perfect for: Online stores expanding internationally
- Multi-author blog networks
- Magazine-style content delivery
- Newsletter integrations
- Membership/subscription systems
- Ad management
Perfect for: Digital publishers, news outlets, content creators
- Multi-brand management
- Employee portals
- Client dashboards
- Document management
- Internal tools
Perfect for: Enterprises with complex content needs
- Course management
- Student/teacher portals
- Learning analytics
- Resource libraries
- Quiz/assessment systems
Perfect for: Online schools, training platforms
- Booking systems
- Appointment scheduling
- Client management
- Service catalogs
- Review/testimonial systems
Perfect for: Hotels, restaurants, professional services
- Multi-tenant architecture (ready!)
- Subscription management
- User analytics (MongoDB)
- API-first design
- White-label capability
Perfect for: Startups building scalable SaaS products
- WordPress → Modern stack (proven!)
- Drupal → Nuxt conversion
- Legacy PHP → TypeScript
- Monolith → Microservices
- Data consolidation
Perfect for: Companies modernizing tech stack
This project demonstrates professional-grade engineering across the entire stack:
// Auto-imported composables with TypeScript inference
const { locale, setLocale } = useI18n()
const { data: articles } = await useFetch('/api/articles', {
query: { lang: locale.value }
})
// Type-safe Pinia stores with composables
const authStore = useAuthStore()
const menuStore = useMenuStore()
// Component auto-imports - zero import statements needed
<LanguageSwitcher />
<AppSidebar />
<AppFooter />// Three Prisma clients working in harmony
import prismaCms from '~/server/utils/prismaCms' // PostgreSQL CMS
import prismaWp from '~/server/utils/prismaWp' // MySQL WordPress
import prismaMongo from '~/server/utils/prismaMongo' // MongoDB Analytics
// Type-safe queries across databases
const article = await prismaCms.cms_articles.findUnique({
include: {
translations: true,
categories: { include: { term: true } }
}
})
const analytics = await prismaMongo.pageView.create({
data: { url, userId, timestamp: new Date() }
})# WordPress → PostgreSQL migration with data transformation
def migrate_wordpress_posts(wp_conn, pg_conn):
"""
Migrates WordPress posts with:
- Content transformation (shortcodes → HTML)
- Media URL rewriting
- Term relationship preservation
- Multilingual content detection
"""
posts = fetch_wp_posts(wp_conn)
for post in posts:
transformed = transform_content(post)
migrate_to_postgres(pg_conn, transformed)
preserve_term_relationships(post.id)// Smart locale detection with fallbacks
export default defineI18nLocaleDetector((event, config) => {
const cookieLocale = getCookie(event, 'i18n_locale')
const browserLocale = getHeader(event, 'accept-language')
const urlLocale = event.node.req.url?.match(/^\/(en|de|sr|es|fr|it|ru)/)
return cookieLocale || urlLocale?.[1] || detectBestMatch(browserLocale) || 'en'
})
// 7 languages with complete translations
const locales = ['en', 'de', 'sr', 'es', 'fr', 'it', 'ru']// Nitro security middleware
export default defineNitroPlugin((nitroApp) => {
nitroApp.hooks.hook('request', async (event) => {
// Rate limiting with Redis
const isAllowed = await checkRateLimit(event, { max: 150, window: '5m' })
if (!isAllowed) throw createError({ statusCode: 429 })
// CORS with environment-aware origins
setCorsHeaders(event, getAllowedOrigins())
// Security headers (CSP, HSTS, X-Frame-Options, etc.)
setSecurityHeaders(event)
})
})# Selective database activation with profiles
docker compose up -d postgres redis # Minimum
docker compose --profile migration up -d # + MySQL
docker compose --profile analytics up -d # + MongoDB
docker compose --profile all up -d # Everything// Vitest unit tests with full TypeScript support
describe('MediaResolver', () => {
it('resolves featured images with size variants', async () => {
const resolver = new MediaResolver(prismaCms)
const media = await resolver.resolveFeaturedImage('12345')
expect(media).toMatchObject({
url: expect.stringContaining('.webp'),
sizes: {
thumbnail: expect.any(String),
medium: expect.any(String),
large: expect.any(String)
}
})
})
})
// Playwright E2E tests
test('user can switch languages', async ({ page }) => {
await page.goto('/')
await page.click('[data-testid="language-switcher"]')
await page.click('[data-lang="de"]')
await expect(page).toHaveURL(/\/de/)
await expect(page.locator('h1')).toContainText('Willkommen')
})- ✅ 37 Articles migrated with full metadata
- ✅ 12 Pages with hierarchy preserved
- ✅ 10 Portfolio Projects (Avada theme integration)
- ✅ 191 Terms (Categories/Tags across taxonomies)
- ✅ 224 Relationships maintained between content and terms
- ✅ Featured Images converted to WebP (33% success rate)
- ⚡ Redis Caching: 60min for categories, 30min for articles
- ⚡ Image Optimization: WebP conversion, size variants (thumbnail/medium/large)
- ⚡ Code Splitting: Automatic route-based chunking
- ⚡ Tree Shaking: Unused code elimination
- ⚡ Lazy Loading: Component and route-level lazy loading
- 🔒 Security Headers: CSP, HSTS, X-Frame-Options, X-Content-Type-Options
- 🔒 Rate Limiting: 150 requests per 5 minutes (configurable)
- 🔒 CORS Protection: Environment-aware origin validation
- 🔒 Session Management: Secure cookie-based sessions
- 🔒 CSRF Protection: Built-in token validation
Building this platform solo required mastery of:
| Technology | Proficiency | Application in Project |
|---|---|---|
| TypeScript | Expert ⭐⭐⭐⭐⭐ | Strict mode, advanced types, generics throughout |
| JavaScript/Node.js | Expert ⭐⭐⭐⭐⭐ | Server-side APIs, middleware, build tooling |
| Vue 3 | Expert ⭐⭐⭐⭐⭐ | Composition API, reactive patterns, auto-imports |
| Nuxt 4 | Expert ⭐⭐⭐⭐⭐ | Latest features, server components, hybrid rendering |
| Python | Advanced ⭐⭐⭐⭐ | Migration scripts, data processing, automation |
| Technology | Proficiency | Application in Project |
|---|---|---|
| PostgreSQL | Expert ⭐⭐⭐⭐⭐ | Primary CMS database, complex queries, JSON columns |
| Prisma ORM | Expert ⭐⭐⭐⭐⭐ | Multi-schema, migrations, type generation |
| MySQL | Advanced ⭐⭐⭐⭐ | WordPress compatibility, legacy migrations |
| MongoDB | Advanced ⭐⭐⭐⭐ | Analytics, logging, document storage |
| Redis | Advanced ⭐⭐⭐⭐ | Caching strategies, session management |
| Technology | Proficiency | Application in Project |
|---|---|---|
| Docker | Expert ⭐⭐⭐⭐⭐ | Multi-container orchestration, profiles, volumes |
| Git/GitHub | Expert ⭐⭐⭐⭐⭐ | Actions CI/CD, conventional commits, branching |
| CI/CD | Advanced ⭐⭐⭐⭐ | Automated testing, linting, deployments |
| Linux | Advanced ⭐⭐⭐⭐ | Shell scripting, environment configuration |
| Technology | Proficiency | Application in Project |
|---|---|---|
| Tailwind CSS | Expert ⭐⭐⭐⭐⭐ | Custom design system, responsive layouts |
| HTML5/CSS3 | Expert ⭐⭐⭐⭐⭐ | Semantic markup, modern CSS features |
| Vite | Advanced ⭐⭐⭐⭐ | Build optimization, dev server configuration |
| Responsive Design | Expert ⭐⭐⭐⭐⭐ | Mobile-first, adaptive layouts |
| Technology | Proficiency | Application in Project |
|---|---|---|
| Vitest | Advanced ⭐⭐⭐⭐ | Unit tests, coverage, mocking |
| Playwright | Advanced ⭐⭐⭐⭐ | E2E tests, cross-browser testing |
| ESLint | Expert ⭐⭐⭐⭐⭐ | Custom rules, TypeScript integration |
| Prettier | Expert ⭐⭐⭐⭐⭐ | Code formatting, consistency |
- ✅ RESTful API Design - Type-safe endpoints with error handling
- ✅ Multi-Tenant Architecture - Designed for SaaS scalability
- ✅ Service Layer Pattern - Clean separation of concerns
- ✅ Repository Pattern - Database abstraction
- ✅ Middleware Pattern - Modular request processing
- ✅ Observer Pattern - Event-driven architecture
- ✅ Factory Pattern - Prisma client generation
- ✅ Singleton Pattern - Database connections
- 🔒 OWASP Top 10 - Protection against common vulnerabilities
- 🔒 Authentication - Session-based, secure cookie handling
- 🔒 Authorization - Role-based access control (RBAC)
- 🔒 Content Security Policy - XSS prevention
- 🔒 CORS Configuration - Origin validation
- 🔒 Rate Limiting - DDoS mitigation
- 🔒 SQL Injection Prevention - Parameterized queries (Prisma)
- 🔒 HTTPS/TLS - Secure communication
- 📚 Documentation - Comprehensive docs across 15+ MD files
- 🧩 Problem Solving - Complex WordPress migration (224 relationships)
- 🎯 Project Planning - From concept to production-ready
- 🔄 Version Control - Semantic versioning, conventional commits
- 🤝 Open Source - MIT license, contribution-ready
- 🔧 Nuxt 4.1.3 with Vue 3 Composition API and TypeScript ES Modules
- 🎨 Nuxt UI components with Tailwind CSS and custom CSS variables
- � Modern Layout System with responsive sidebar navigation and mobile-first design
- 🖥️ AppSidebar & AppFooter - Professional layout components with CMS integration
- 🗄️ Multi-Database Prisma Setup - PostgreSQL (CMS), MySQL (WordPress), MongoDB
- ⚡ Prisma Client Generation - Automated multi-schema client generation
- 🔄 Database Migrations - Structured migration system with multi-environment support
- 📊 Prisma Studio Integration - Visual database management interface
- 🔗 WordPress Migration - Complete WordPress-to-PostgreSQL migration with term relationships
- 🎯 Content APIs - RESTful APIs for Articles, Pages, Portfolios with full CMS features
- 🌍 Advanced i18n - 7 languages (EN, DE, SR, ES, FR, IT, RU) with smart detection
- 📚 WordPress-like CMS - Article/Page/Portfolio management with Prisma backend
- 🍽️ Dynamic Menu System - WordPress menu integration with hierarchical navigation and API
- 📚 Blog System - Complete blog functionality with categories and tags integration
- 🎨 Portfolio System - Professional portfolio projects with custom taxonomies
- 🔗 Term Relationships - Advanced category/tag system with 224+ content connections
- 📸 Media Management - WebP optimization and featured images support
- 🎯 SEO Optimization - Built-in SEO patterns and meta management
- 🛡️ Production Security - CORS, CSP, HSTS, rate limiting, and security headers
- 🔐 Authentication System - Full auth with user sessions and admin areas
- 🧪 Comprehensive Testing - Vitest (unit) and Playwright (E2E) with coverage
- ✨ Code Quality - ESLint, Prettier, Commitlint, and Husky hooks
- 📦 Yarn Package Management - Consistent dependency management across environments
- 🐳 Docker Support - Multi-service containerization with development databases
- 🔧 GitHub Actions - Automated CI/CD with linting, testing, and deployment
- 📱 Responsive Design - Mobile-first approach with modern CSS Grid and Flexbox
This isn't a toy project - it's production-grade infrastructure:
- 📝 ~15,000+ Lines of Code (TypeScript, Vue, Python)
- 📁 250+ Files across frontend, backend, and infrastructure
- 🗂️ 50+ Components (Auto-imported, tested, documented)
- 🔌 30+ API Endpoints (RESTful, type-safe, error-handled)
- 🧪 100+ Test Cases (Unit + E2E coverage)
- 📚 15+ Documentation Files (Comprehensive guides)
- �️ 3 Database Systems orchestrated simultaneously
- 📊 40+ Database Tables across PostgreSQL, MySQL, MongoDB
- 🔗 224 Term Relationships migrated and maintained
- 🔄 50+ Migration Files with rollback support
- 💾 Multi-Schema Architecture (postgres-cms, mysql legacy, mongo analytics)
- 🌍 7 Languages Supported (EN, DE, SR, ES, FR, IT, RU)
- 📝 2,100+ Translation Keys across all locales
- 🔄 Smart Locale Detection (Browser, Cookie, URL)
- 🌐 SEO-Optimized (hreflang, alternate links)
- ✅ 37 WordPress Articles → PostgreSQL (100% success)
- ✅ 12 Pages with hierarchy preserved
- ✅ 10 Portfolio Projects (Avada theme)
- ✅ 191 Terms (Categories/Tags) migrated
- ✅ 224 Relationships maintained
- ✅ WebP Conversion (33% of featured images)
- ⚡ Redis Caching: 60min categories, 30min articles
- ⚡ Build Time: ~30s production build (optimized)
- ⚡ Hot Reload: <200ms component updates
- ⚡ API Response: <50ms average (cached), <200ms (uncached)
- ⚡ Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
- 📅 Solo Development: 100% independently built
- 🔧 Built upon: Carefully selected open-source foundations
- 🚀 Enhanced with: Custom architecture and features
- ⏱️ Active Development: Continuously improving
- Node.js ≥ 22.0.0
- Yarn ≥ 1.22.0 (Package Manager)
- Docker (for databases - optional: external DBs supported)
-
Clone and install
git clone https://github.com/Aaasaasa/nuxt-wp-multilang-theme.git cd nuxt-wp-multilang-theme ./rename-project.sh my-awesome-project # Optional: Rename project yarn install cp .env.example .env
-
🎯 Choose Your Setup (see Flexible Database Setup)
Option A: Minimum Setup (Recommended for Start)
# Only PostgreSQL + Redis (sufficient for CMS) docker compose up -d postgres redis yarn prisma:generate yarn prisma:migrateOption B: Mit WordPress Migration
# PostgreSQL + MySQL + Redis docker compose --profile migration up -d yarn prisma:generate yarn prisma:migrateOption C: Full Stack (alle Features)
# Alle Datenbanken (PostgreSQL, MySQL, MongoDB, Redis) docker compose --profile all up -d yarn prisma:generate yarn prisma:migrate -
Configure environment variables
# Essential variables (adjust to your setup): # PostgreSQL (REQUIRED) DATABASE_URL="postgresql://usrcms:Utorak30Sep@localhost:5432/nuxt_pg_cms_db" # MySQL (only if --profile migration) MYSQL_DATABASE_URL="mysql://rooth3wp:Freitag0605@localhost:3306/sta3wp" # MongoDB (only if --profile analytics) MONGODB_DATABASE_URL="mongodb://aleks:yourpassword@localhost:27017" # Redis (recommended for caching) REDIS_URL="redis://localhost:6379" # Authentication NUXT_SECRET_KEY="your-secret-key-change-in-production"
-
Run development server
yarn dev # Start on default port 3000 # or yarn dev --port 4000 # Start on port 4000
What Runs: PostgreSQL + Redis
Effort: ⭐⚫⚫⚫⚫
Suitable For: Standard CMS projects, Blogs, Websites
docker compose up -d postgres redisWhat Runs: PostgreSQL + MySQL + Redis
Effort: ⭐⭐⭐⚫⚫
Suitable For: One-time WordPress data migration (see WordPress Migration Warning)
docker compose --profile migration up -dWhat Runs: PostgreSQL + MongoDB + Redis
Effort: ⭐⭐⭐⚫⚫
Suitable For: Projects with advanced analytics and logging
docker compose --profile analytics up -dWas läuft: Alle Datenbanken
Aufwand: ⭐⭐⭐⭐⭐
Geeignet für: Entwicklung, Testing, Full-Feature-Demos
docker compose --profile all up -d📖 Mehr Details: Siehe Flexible Database Configuration
- Main Application: http://localhost:4000 (or 3000)
- Admin Dashboard: http://localhost:4000/admin
- Prisma Studio: http://localhost:5555 (Database Admin)
- API Documentation: http://localhost:4000/api/docs (Development)
- Database Adminer: http://localhost:8080 (Multi-DB Admin)
- Sidebar Navigation: Click the hamburger menu to explore responsive sidebar
- Multi-language: Switch languages using the locale selector in header
- Blog System: Navigate to
/blogto see WordPress-like article management - Admin Area: Access
/adminfor CMS functionality (requires authentication) - Modern Footer: Scroll down to see the new footer with author attribution
yarn dev # Start development server
yarn build # Build for production
yarn preview # Preview production build
yarn lint # Run ESLint + Prettier
yarn lint:ci # CI-optimized linting
yarn typecheck # TypeScript type checkingyarn test # Run all tests (unit + E2E)
yarn test:unit # Run unit tests only
yarn test:e2e # Run E2E tests only
yarn test:unit:coverage # Run tests with coverageyarn prisma:generate # Generate all Prisma clients
yarn prisma:migrate # Run database migrations
yarn prisma:studio # Open Prisma Studio
yarn prisma:reset # Reset databases (development only)
yarn prisma:deploy # Deploy migrations (production)
yarn db:seed # Seed databases with sample datayarn lint:fix # Auto-fix linting issues
yarn format # Format code with Prettier
yarn commitlint # Validate commit messages
yarn prepare # Setup Husky hooks
yarn clean # Clean build artifacts├── app/ # Main Nuxt 4 Application
│ ├── components/ # Vue Components (Auto-imported)
│ │ ├── features/ # Feature-specific components
│ │ ├── layout/ # Layout components (AppSidebar, AppFooter)
│ │ └── ui/ # Reusable UI components
│ ├── composables/ # Vue Composables (Auto-imported)
│ │ ├── features/ # Feature-specific composables
│ │ ├── forms/ # Form handling composables
│ │ └── stores/ # Pinia store composables
│ ├── layouts/ # Layout Templates
│ │ └── default.vue # Main layout with sidebar & modern footer
│ ├── pages/ # File-based Routing
│ │ ├── blog/ # Blog system pages
│ │ ├── admin/ # Admin dashboard pages
│ │ └── auth/ # Authentication pages
│ ├── assets/css/ # Styling
│ │ └── main.css # Main CSS with consolidated styles
│ ├── middleware/ # Route Middleware
│ └── plugins/ # Nuxt Plugins
│
├── app/admin/ # Separate Admin Application
│ ├── components/ # Admin-specific components
│ ├── pages/ # Admin dashboard pages
│ ├── layouts/ # Admin layout templates
│ └── nuxt.config.ts # Admin-specific configuration
│
├── shared/ # Shared Code (Auto-imported)
│ ├── models/ # TypeScript Models & Interfaces
│ ├── types/ # Shared Type Definitions
│ ├── schemas/ # Validation Schemas (Zod)
│ ├── constants/ # Application Constants
│ └── utils/ # Utility Functions
│
├── server/ # Server-side Code (Nitro)
│ ├── api/ # API Routes (Auto-mapped)
│ │ ├── auth/ # Authentication endpoints
│ │ ├── blog/ # Blog API endpoints
│ │ └── admin/ # Admin API endpoints
│ ├── middleware/ # Server Middleware
│ ├── services/ # Business Logic Services
│ ├── utils/ # Server Utilities
│ └── types/ # Server-specific Types
│
├── lib/ # Core Libraries
│ └── prisma.ts # Prisma Client Configuration
│
├── prisma/ # Multi-Database Configuration
│ ├── schema.prisma # Main PostgreSQL Schema
│ ├── mysql/ # MySQL schemas for WordPress
│ ├── mongo/ # MongoDB schemas for analytics
│ ├── postgres-cms/ # PostgreSQL CMS schemas
│ ├── migrations/ # Database Migration History
│ ├── seed-data/ # Sample Data for Development
│ └── generated/ # Generated Prisma Clients
│
├── i18n/ # Internationalization
│ ├── localeDetector.ts # Smart Language Detection
│ └── locales/ # Translation Files (7 languages)
│ ├── en/ # English translations
│ ├── de/ # German translations
│ ├── sr/ # Serbian translations
│ └── ... # + ES, FR, IT, RU
│
├── tests/ # Testing Suite
│ ├── unit/ # Vitest Unit Tests
│ ├── e2e/ # Playwright E2E Tests
│ └── setup/ # Test Configuration
│
├── docs/ # Comprehensive Documentation
│ ├── api.md # API Documentation
│ ├── component-architecture.md # Component Patterns
│ ├── database-patterns.md # Database Design Patterns
│ ├── wordpress-migration.md # WordPress Migration Guide
│ ├── internationalization.md # i18n Implementation Guide
│ └── ... # + Security, SEO, Testing patterns
│
├── scripts/ # Development Scripts
├── .github/workflows/ # GitHub Actions CI/CD
└── docker-compose.yml # Multi-service Docker Setup
- Framework: Nuxt 4.1.3 with Vue 3 Composition API
- Language: TypeScript with ES Modules
- Styling: Tailwind CSS 3.4+ with CSS Variables
- Components: Nuxt UI with custom AppSidebar & AppFooter
- Icons: Lucide Icons with auto-import support
- Server: Nitro with H3 handlers
- API: RESTful endpoints with OpenAPI/Swagger documentation
- Authentication: nuxt-auth-utils with session management
- Email: Nodemailer integration for transactional emails
- File Storage: Built-in asset management
- Primary: PostgreSQL with Prisma ORM v6
- CMS Database: PostgreSQL for content management
- WordPress: MySQL integration for WP compatibility
- Analytics: MongoDB for logging and analytics
- Caching: Redis for session and cache management
- Admin: Prisma Studio + Adminer for database management
- Framework: @nuxtjs/i18n with advanced features
- Languages: 7 locales (EN, DE, SR, ES, FR, IT, RU)
- Detection: Smart browser/cookie-based locale detection
- Routing: Prefix-based routing with SEO optimization
- Security: nuxt-security (CORS, CSP, HSTS, rate limiting)
- Authentication: Session-based auth with CSRF protection
- Headers: Security headers with production-ready CSP
- Rate Limiting: Configurable request throttling
- Unit Testing: Vitest with coverage reporting
- E2E Testing: Playwright (multi-browser support)
- Linting: ESLint with TypeScript support
- Formatting: Prettier with automated fixes
- Git Hooks: Husky with conventional commits
- Type Checking: TypeScript strict mode
- Package Manager: Yarn for consistent dependency management
- Containerization: Docker with multi-service compose
- CI/CD: GitHub Actions with automated testing
- Monitoring: Built-in error tracking and logging
- SEO: @nuxtjs/seo with structured data support
- Database: Docker containers for all database services
- Security: Relaxed CORS and CSP for development ease
- Hot Reload: Full TypeScript and component hot reloading
- Debugging: Integrated Prisma Studio and API documentation
- Security: Strict CSP, CORS, and security headers
- Performance: Optimized builds with code splitting
- Monitoring: Error tracking and performance monitoring
- Caching: Redis-based caching and session management
# Use the built-in rename script
./rename-project.sh my-awesome-project
# This updates:
# - package.json name and description
# - Docker service names
# - Environment variable prefixes
# - Documentation references# AppSidebar customization
app/components/layout/AppSidebar.vue
# AppFooter customization
app/components/layout/AppFooter.vue
# Main layout
app/layouts/default.vue# Main CMS schema
prisma/schema.prisma
# WordPress integration schema
prisma/mysql/schema.prisma
# Analytics schema
prisma/mongo/schema.prisma
# After changes, regenerate clients:
yarn prisma:generate
yarn prisma:migrate- CORS: Environment-specific origin configuration
- CSP: Content Security Policy with Nuxt 4 optimization
- Headers: Complete security header suite (HSTS, X-Frame-Options, etc.)
- Rate Limiting: 150 requests per 5-minute window (configurable)
- Authentication: Secure session management with CSRF protection
# Required for production
CORS_ORIGIN="https://yourdomain.com"
NUXT_SECRET_KEY="your-256-bit-secret-key"
RATE_LIMIT_MAX="150"
RATE_LIMIT_WINDOW="300000"
# Optional security enhancements
CSP_REPORT_URI="https://yourdomain.com/csp-report"
SECURITY_HEADERS_ENABLED="true"# Configure multiple databases
DATABASE_URL="postgresql://..." # Main CMS
MYSQL_DATABASE_URL="mysql://..." # WordPress integration
MONGODB_DATABASE_URL="mongodb://..." # Analytics
REDIS_URL="redis://..." # Caching & sessions# Add new languages in nuxt.config.ts
i18n: {
locales: [
// Add your custom locale
{
code: 'pt',
name: 'Português',
files: ['pt/common.json', 'pt/seo.json'],
language: 'pt-BR'
}
]
}
# Create translation files
i18n/locales/pt/common.json
i18n/locales/pt/seo.json
i18n/locales/pt/email.json- Nuxt 4 Documentation - Latest Nuxt framework features
- Vue 3 Composition API - Vue framework guide
- Nuxt UI Components - Complete UI component library
- Tailwind CSS - Utility-first CSS framework
- Prisma Documentation - Database ORM and migrations
- Nitro Documentation - Universal server framework
- H3 Documentation - HTTP framework for Nitro
- @nuxtjs/i18n - Nuxt i18n module documentation
- Vue I18n - Vue internationalization
- Vitest Documentation - Unit testing framework
- Playwright Documentation - E2E testing framework
- ESLint Rules - Linting configuration
- docs/ - Comprehensive project documentation
- WordPress Migration - Complete migration guide with 224 term relationships
- API Documentation - API endpoints for Articles/Pages/Portfolios with examples
- Component Architecture - Component design patterns
- Database Patterns - Multi-database design with current migration status
- Security Patterns - Security implementation guide
✅ Successfully Migrated:
- 37 Articles with full translations and featured images
- 12 Pages with complete content hierarchy
- 10 Portfolio Projects (Avada Portfolio integration)
- 191 Terms (Categories, Tags, Portfolio Categories/Tags)
- 224 Term Relationships connecting content with categories/tags
- Featured Images with WebP optimization (33% converted)
| Endpoint | Status | Features |
|---|---|---|
/api/articles |
✅ Live | Categories/Tags (141 relations), Featured Images, Translations |
/api/pages |
✅ Live | Hierarchy, Menu Order, Featured Images (12 pages) |
/api/portfolios |
✅ Live | Portfolio Categories/Tags (83 relations), Featured Images |
/api/products |
🔄 Planned | E-commerce integration (schema ready) |
# Articles with categories/tags: 141 relationships
# Portfolio projects with categories/tags: 83 relationships
# Pages (typically no categories): 0 relationships
# Total term relationships: 224- Fork & Clone: Fork the repository and clone your fork
- Branch: Create a feature branch (
git checkout -b feature/amazing-feature) - Install: Run
yarn installto install dependencies - Develop: Make your changes following the coding standards
- Test: Run
yarn testto ensure all tests pass - Lint: Run
yarn lintto check code quality - Commit: Use conventional commit format (enforced by Husky)
- Push: Push to your fork and create a Pull Request
- TypeScript: Use strict TypeScript with proper typing
- Vue 3: Prefer Composition API with
<script setup>syntax - Components: Follow the established component architecture
- Styling: Use Tailwind CSS classes, avoid custom CSS when possible
- Testing: Write unit tests for utilities, E2E tests for user flows
# Format: type(scope): description
feat(auth): add OAuth2 Google integration
fix(sidebar): resolve mobile overlay z-index issue
docs(readme): update installation instructions
chore(deps): upgrade Nuxt to 4.1.3- Ensure your PR description clearly describes the problem and solution
- Include relevant issue numbers if applicable
- Update documentation if you change APIs or add features
- Make sure all CI checks pass (linting, testing, type checking)
- Request review from project maintainers
- Issues: Use GitHub Issues for bug reports and feature requests
- Discussions: Use GitHub Discussions for questions and community chat
- Email: Contact Aleksandar Stajic for direct project inquiries
This project uses Husky to enforce commit message conventions. The commit messages must follow the Conventional Commits specification. To ensure your commit messages are valid, you can use the following format:
[optional body]
[optional footer]
Where:
<type>: The type of change (e.g., feat, fix, docs, chore, style, refactor, ci, test, revert, perf, vercel)<scope>: The scope of the change (optional)<subject>: A brief description of the change[optional body]: A more detailed description of the change (optional)[optional footer]: Any additional information, such as breaking changes or issues closed (optional)
You can also use the following commit types:feat: A new featurefix: A bug fixdocs: Documentation changeschore: Maintenance tasks (e.g., build, CI, dependencies)style: Changes that do not affect the meaning of the code (e.g., formatting, missing semicolons)refactor: Code changes that neither fix a bug nor add a featureci: Changes to CI configuration files and scriptstest: Adding missing tests or correcting existing testsrevert: Reverts a previous commitperf: A code change that improves performancevercel: Changes related to Vercel deployment
Overwriting the commit message rules is not allowed. If you try to commit a message that does not follow the rules, you will see an error message and your commit will be rejected.
export default { extends: ['@commitlint/config-conventional'], rules: { 'type-enum': [ 2, 'always', [ 'feat', 'fix', 'docs', 'chore', 'style', 'refactor', 'ci', 'test', 'revert', 'perf', 'vercel', ], ], }, };
Aleksandar Stajic
- GitHub: @Aaasaasa
- Portfolio: Coming Soon
- Email: Contact via GitHub
This project is licensed under the MIT License - see the LICENSE file for details.
- Nuxt Team - For the amazing Nuxt 4 framework
- Vue.js Team - For Vue 3 and the Composition API
- Prisma Team - For the excellent ORM and database tools
- Tailwind CSS - For the utility-first CSS framework
- Community Contributors - Thank you for your contributions and feedback
- ✅ Core Framework: Nuxt 4.2.0 with TypeScript 5.7
- ✅ Layout System: Modern sidebar and footer components
- ✅ Multi-Database: PostgreSQL, MySQL, MongoDB integration
- ✅ Internationalization: 7 languages with smart detection
- ✅ Authentication: Complete auth system with admin areas
- ✅ Testing: Unit and E2E testing with coverage
- ✅ CI/CD: GitHub Actions with automated workflows
- ✅ WordPress Migration: 224 term relationships preserved
- ✅ Redis Caching: Performance optimization
- 🔄 Documentation: Expanding guides and tutorials
- 🔄 Blog System: Advanced features and SEO
- 🔄 Admin Dashboard: UI/UX improvements
- � E-commerce Module: Full shop system
- 📋 AI Integration: Content generation, smart search
- 📋 Mobile Apps: Native companion apps
- 📋 Plugin Marketplace: Community extensions
- 📋 Multi-Tenant: SaaS-ready architecture
- 📋 Advanced Analytics: Real-time dashboards
Perfect if you need a production-ready CMS with multilingual support:
- ⭐ Star this repo if you find it valuable
- 🍴 Fork for your own projects (MIT License)
- 📖 Read the docs and get started in minutes
- 💬 Join discussions for community support
I can build exactly what you need:
- 💼 Custom Features: Tailored to your requirements
- 🔄 System Migrations: WordPress, Drupal, legacy systems
- 🛒 E-commerce Solutions: Full-stack shop systems
- 🌍 Multilingual Platforms: International expansion
- 📧 Contact: GitHub @Aaasaasa
Help make this project even better:
- 🐛 Report Issues: Found a bug? Let me know!
- ✨ Submit PRs: Code contributions welcome
- 📝 Improve Docs: Help others learn
- 💰 Sponsor: Support ongoing development
This project is licensed under the MIT License - see the LICENSE file for details.
Free to use commercially - attribution appreciated but not required!
This project was built solo but stands on the shoulders of giants:
- Nuxt Team - Amazing framework, incredible DX
- Vue.js Team - Reactive magic, Composition API
- Prisma Team - Type-safe database access
- Tailwind CSS - Utility-first styling
- Open Source Community - Inspiration and foundations
Thank you to all maintainers of the dependencies that make this possible! 🙏
Star this repo • Share with others • Hire me for your project
Built with ❤️ and ☕ by Aleksandar Stajic
NuxtWP Multilang CMS - Enterprise-Grade • Production-Ready • Solo-Developed