Skip to main content
Back to Projects
Full Stack Web Development2025Live

Personal Portfolio Website

A modern, multilingual portfolio website with dark mode, interactive games, and blog functionality built with Next.js 16.

Technologies Used

Next.js 16TypeScriptTailwind CSSReact 19i18nextMDXResend

Personal Portfolio Website

๐ŸŽฏ Project Overview

This portfolio website is a comprehensive showcase of my skills, projects, and experience as a Computer Engineering student. Built with cutting-edge web technologies, it features multilingual support, dark mode, interactive algorithm visualizations, and a fully functional blog system.

Project Type: Full Stack Web Application
Duration: 2025 Status: Live at momili.me
Tech Stack: Next.js 16, TypeScript, Tailwind CSS 4


โœจ Key Features

๐ŸŒ Internationalization (i18n)

  • 3 Languages: English, French, and Arabic
  • RTL Support: Professional right-to-left layout for Arabic
  • Smart Text Handling: English brand names remain LTR in RTL context
  • Seamless Switching: Language selector with persistent preferences
  • SEO Optimized: Proper hreflang tags for multilingual SEO

๐ŸŽจ Modern UI/UX

  • Dark Mode: Smooth theme switching with next-themes
  • Responsive Design: Mobile-first approach, works on all devices
  • Smooth Animations: Framer Motion for delightful interactions
  • Accessibility: WCAG 2.1 compliant with keyboard navigation
  • Skip to Content: Quick navigation for screen readers

๐ŸŽฎ Interactive Features

  • Tic-Tac-Toe Game: Unbeatable AI using Minimax algorithm
  • Algorithm Visualizers: Coming soon (Pathfinding, Sorting)
  • Lazy Loading: Optimized performance with dynamic imports
  • Real-time Validation: Client-side form validation

๐Ÿ“ Blog System

  • MDX Support: Write blog posts with JSX components
  • Frontmatter: Metadata for posts (title, date, tags, author)
  • Syntax Highlighting: Code blocks with proper formatting
  • Tag System: Categorize and filter posts
  • Reading Time: Automatic calculation

๐Ÿ“ง Contact System

  • Email Integration: Resend API for reliable email delivery
  • Rate Limiting: 3 requests per 5 minutes per IP
  • Form Validation: Client and server-side validation
  • Error Handling: User-friendly error messages
  • Success Feedback: Clear confirmation of submission

๐Ÿ” SEO & Performance

  • Dynamic Sitemap: Auto-generated XML sitemap
  • Robots.txt: Search engine crawling configuration
  • Structured Data: JSON-LD for rich search results
  • Meta Tags: Open Graph and Twitter Card support
  • Lighthouse Score: 95+ on all metrics

๐Ÿ—๏ธ Technical Architecture

Project Structure

myportfolio/
โ”œโ”€โ”€ app/                          # Next.js 16 App Router
โ”‚   โ”œโ”€โ”€ [locale]/                 # Internationalized routes
โ”‚   โ”œโ”€โ”€ about/                    # About page
โ”‚   โ”œโ”€โ”€ project/                  # Projects listing
โ”‚   โ”‚   โ””โ”€โ”€ [slug]/              # Individual project pages
โ”‚   โ”œโ”€โ”€ blog/                     # Blog listing
โ”‚   โ”‚   โ””โ”€โ”€ [slug]/              # Individual blog posts
โ”‚   โ”œโ”€โ”€ games/                    # Interactive games
โ”‚   โ”‚   โ””โ”€โ”€ tictactoe/           # Tic-Tac-Toe game
โ”‚   โ”œโ”€โ”€ contact/                  # Contact form
โ”‚   โ”œโ”€โ”€ components/               # React components
โ”‚   โ”œโ”€โ”€ actions/                  # Server actions
โ”‚   โ”œโ”€โ”€ dictionaries/             # i18n translations
โ”‚   โ”œโ”€โ”€ layout.tsx                # Root layout
โ”‚   โ”œโ”€โ”€ page.tsx                  # Homepage
โ”‚   โ”œโ”€โ”€ error.tsx                 # Error boundary
โ”‚   โ”œโ”€โ”€ not-found.tsx             # 404 page
โ”‚   โ”œโ”€โ”€ sitemap.ts                # Dynamic sitemap
โ”‚   โ””โ”€โ”€ robots.ts                 # Robots.txt
โ”‚
โ”œโ”€โ”€ content/                      # MDX content
โ”‚   โ”œโ”€โ”€ blog/                     # Blog posts
โ”‚   โ””โ”€โ”€ projects/                 # Project case studies
โ”‚
โ”œโ”€โ”€ lib/                          # Utilities
โ”‚   โ”œโ”€โ”€ mdx.ts                    # MDX parser
โ”‚   โ”œโ”€โ”€ projects.ts               # Projects parser
โ”‚   โ”œโ”€โ”€ rateLimit.ts              # Rate limiting
โ”‚   โ””โ”€โ”€ resend.ts                 # Email client
โ”‚
โ”œโ”€โ”€ public/                       # Static assets
โ”‚   โ”œโ”€โ”€ logo.svg                  # Brand logo
โ”‚   โ””โ”€โ”€ profile.webp              # Profile image
โ”‚
โ””โ”€โ”€ tests/                        # E2E tests
    โ”œโ”€โ”€ home.spec.ts
    โ”œโ”€โ”€ navigation.spec.ts
    โ”œโ”€โ”€ contact.spec.ts
    โ””โ”€โ”€ games.spec.ts

Technology Stack

Frontend:

  • Next.js 16: React framework with App Router
  • React 19: Latest React with Server Components
  • TypeScript: Type-safe development
  • Tailwind CSS 4: Utility-first styling with CSS variables
  • next-themes: Dark mode implementation
  • react-i18next: Internationalization

Backend:

  • Next.js Server Actions: Type-safe server functions
  • Resend: Email API for contact form
  • Rate Limiting: In-memory rate limiter

Content:

  • MDX: Markdown with JSX components
  • gray-matter: Frontmatter parsing
  • next-mdx-remote: Server-side MDX rendering

Testing:

  • Playwright: E2E testing framework
  • TypeScript: Type checking

Deployment:

  • Vercel: Serverless deployment platform
  • Git: Version control

๐ŸŽ“ What I Learned

Next.js 16 & React 19:

  • App Router and file-based routing
  • Server Components vs Client Components
  • Server Actions for form handling
  • Metadata API for SEO
  • Dynamic route generation

TypeScript:

  • Advanced type definitions
  • Generic components
  • Type-safe API calls
  • Interface design

Tailwind CSS 4:

  • Utility-first CSS approach
  • Custom theme configuration
  • Dark mode implementation
  • RTL/LTR directional styling
  • Responsive design patterns

Internationalization:

  • i18n best practices
  • RTL layout challenges
  • Content translation workflows
  • SEO for multilingual sites

Performance Optimization:

  • Code splitting and lazy loading
  • Image optimization
  • Font loading strategies
  • Bundle size optimization

Testing:

  • E2E testing with Playwright
  • Test-driven development
  • Accessibility testing
  • Cross-browser compatibility


๐Ÿ† Conclusion

Building this portfolio website was an incredible learning experience that pushed me to master modern web development technologies. From implementing complex features like RTL support and AI algorithms to optimizing for performance and SEO, every aspect of this project taught me valuable lessons.

This website is not just a portfolioโ€”it's a testament to my growth as a developer and my commitment to building high-quality, user-centric applications.

This portfolio represents my journey as a Computer Engineering student and showcases my passion for creating beautiful, functional, and accessible web applications.