Files
websitedev/proto
Do SikiandClaude Sonnet 5 a661739844 fix(cms): resolve double-root-layout conflict between the site and Payload admin
Next.js 16 requires either one shared root layout for every route, or
each top-level route group to be fully self-contained (no ancestor
layout.tsx above it). MITHOME-86 added (payload)/layout.tsx — which
itself renders Payload's own <html>/<body> via <RootLayout> — while
src/app/layout.tsx still existed as a shared ancestor and did the same.
The result was two React trees fighting over <html>/<body>/<head>,
surfacing in the browser as hydration failures and "You are mounting a
new html component" errors on /admin (invisible to curl-based checks
in the MITHOME-86 verification, since they only exercise SSR, not
client hydration — that verification's "confirmed live" claim was
therefore incomplete; caught now with an actual browser).

Fix, per Payload's documented multi-root pattern: move every existing
site route (page.tsx, globals.css, kapcsolat/szolgaltatasok/rolunk/
adatvedelem/felhasznalasi-feltetelek) into a new (frontend) route
group with its own layout.tsx (renamed from src/app/layout.tsx, with
relative imports adjusted one level deeper), as a sibling of (payload).
No shared layout.tsx remains directly under src/app/.

Verified in a real browser (not just curl): /admin/login and the
dashboard now render and hydrate cleanly, and all site routes
(/, /rolunk, /szolgaltatasok, /kapcsolat, /adatvedelem,
/felhasznalasi-feltetelek) are unaffected — same output, just moved.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 03:40:00 +02:00
..
2026-08-23 12:11:59 +02:00

mozdIT Bt. Website - Next.js Application

Modern Next.js 15 website for mozdIT Bt. - Hungarian IT services company.

🚀 Quick Start

# Install dependencies
npm install

# Development server (with Turbopack)
npm run dev

# Production build
npm run build

# Run tests
npm test

Open http://localhost:3000 to view the site.

📁 Project Structure

src/
├── app/                 # Next.js App Router
│   ├── page.tsx        # Homepage
│   ├── rolunk/         # About page
│   ├── szolgaltatasok/ # Services page
│   ├── kapcsolat/      # Contact page
│   ├── api/            # API routes
│   └── globals.css     # Design system & styles
├── components/         # React components
│   ├── Header.tsx      # Navigation header
│   ├── Footer.tsx      # Site footer
│   └── ThemeProvider.tsx # Dark mode provider
├── content/            # JSON content management
│   ├── types.ts        # Content type definitions
│   ├── index.ts        # Content loader
│   ├── common.json     # Shared texts
│   └── pages/          # Page-specific content
├── config/             # Site configuration
├── lib/                # Utilities
└── types/              # TypeScript definitions

🎨 Design System

The project uses a comprehensive design system defined in globals.css:

CSS Variables

  • Brand colors (--color-primary-*)
  • Semantic colors (--color-background, --color-foreground)
  • Shadows, transitions, border radius

Dark Mode

  • Automatic system preference detection
  • Manual toggle via ThemeProvider
  • Uses data-theme="dark" attribute

Animations

  • animate-fade-in-up - Fade in with upward motion
  • animate-float - Floating effect
  • animate-pulse-slow - Slow pulsing
  • hover-lift, hover-scale, hover-glow - Hover effects

Utility Classes

  • .card - Card component styling
  • .btn, .btn-primary, .btn-secondary - Button styles
  • .icon-container - Icon wrapper styling

📝 Content Management

All page content is managed through JSON files in src/content/:

import { content, getPageContent } from '@/content'

// Access specific page content
const aboutContent = content.pages.about

// Or use the helper function
const servicesContent = getPageContent('services')

Content Files

File Description
common.json Shared texts (buttons, labels, validation)
pages/home.json Homepage CTA section
pages/about.json About page (hero, story, mission, team, CTA)
pages/services.json Services (hero, details, support, CTA)
pages/contact.json Contact (form labels, FAQ, info)

🧪 Testing

# Unit tests
npm test

# Watch mode
npm run test:watch

# Coverage report
npm run test:coverage

# All test suites
npm run test:all

🐳 Docker Development

For full-stack development with MongoDB and monitoring:

# From project root
docker-compose -f docker-compose.dev.yml up -d

Services:

📚 Learn More