How mohammad-nadil/portfolio works
Nadil Portfolio is a visitor-facing developer portfolio. A visitor opens the Next.js root page, which presents a hero and profile followed by skills, filterable projects, FAQ, and contact content; a shared provider layer supplies navigation, theme, loading, motion, and visual effects around that page. Project and skills content is represented in local data rather than a backend. The README documents these capabilities; where section source was not sampled, the graph shows the documented role without asserting internal wiring.
Main entry points: Providers.jsx App providers · page.jsx Portfolio page · layout.jsx Root layout · Projects.jsx Projects
Components 20
Page entry
- Root layout
app/layout.jsx - Portfolio page
app/page.jsx
Portfolio content
Shared presentation
- App providers
app/Providers.jsx - Navigation
app/components/Navbar.jsx - Footer
app/components/Footer.jsx - Theme controls
app/components/Themes.jsx - Loading screen
app/components/Loader.jsx - Smooth scrolling
app/components/LenisProvider.jsx - Particle backdrop
app/components/ParticlesBackground.jsx - Mouse effects
app/components/MouseTracker.jsx - Theme toggle
app/components/ThemeToggle.jsx
Portfolio data
- Project catalog
temp/temp.js - Contact links
lib/data.js
Other components
- Visitor
Connections 19
- Visitor → Root layout: opens site
- Root layout → App providers: wraps page
- App providers → Loading screen: shows while loading
- App providers → Navigation: renders
- App providers → Smooth scrolling: wraps content
- App providers → Particle backdrop: renders
- App providers → Mouse effects: renders desktop
- App providers → Theme controls: renders
- App providers → Footer: renders
- App providers → Portfolio page: renders children
- Portfolio page → Hero: renders
- Portfolio page → About: renders
- Portfolio page → Skills: renders
- Portfolio page → Projects: renders
- Portfolio page → FAQ: renders
- Portfolio page → Contact: renders
- Projects → Project catalog: filters and displays
- Contact → Contact links: uses contact links
- Theme controls → Theme toggle: includes control