This portfolio is more than a collection of work samples; it is a demonstration of modern full-stack architecture and inclusive design principles, designed to showcase my work to clients and companies.
As a Senior Software Engineer, I approached this project with the same rigor used in enterprise-grade applications. Every architectural decisionβfrom the modular component structure to the specific animation librariesβwas made to solve concrete engineering challenges regarding performance, maintainability, and user experience.
The result is a codebase that showcases:
- Declarative Architecture: A clean separation of concerns using domain-specific components.
- Performance First: Zero-layout-shift rendering and consistent 60fps animations via
requestAnimationFrame. - Accessibility as Standard: Deep ARIA integration and
prefers-reduced-motionsupport deeply woven into the interaction model. - Bilingual Experience: Full English/Spanish internationalization with seamless language switching.
- Adaptive Theming: Professional Dark/Light mode with smooth transitions and system preference detection.
A carefully selected stack that balances developer experience with production performance.
| Category | Technology | Rationale |
|---|---|---|
| Core Framework | Next.js 14 | Leverages React Server Components to minimize client-side bundle size and improve SEO. |
| Language | TypeScript 5 | Ensures type safety and facilitates large-scale refactoring with confidence. |
| Styling | Tailwind CSS 3.4 | Provides a constrained design system token set for visual consistency and rapid iteration. |
| Animations | Framer Motion + GSAP | Handles complex, physics-based interactions (springs, layout transitions) and timeline-based sequences. |
| 3D Effects | Three.js + React Three Fiber | Powers the interactive canvas reveal effect in the Approach section. |
| Internationalization | next-i18next | Robust standard for managing multilingual content (EN/ES) without hydration mismatches. |
| Theming | next-themes | System-level Dark/Light mode synchronization with CSS custom properties. |
| Contact | EmailJS | Serverless email delivery for the contact form without backend infrastructure. |
| CI/CD | Vercel | Seamless preview deployments and edge caching strategy. |
The codebase follows a Feature-Driven Architecture prioritizing modularity and separation of concerns.
graph TD
User[User / Client] -->|Interacts| Page[Single Page App]
subgraph "Sections"
Page --> Profile[Profile / Hero]
Page --> About[About Me]
Page --> Services[Services]
Page --> Projects[Projects Showcase]
Page --> Timeline[Career Timeline]
Page --> Approach[My Approach]
Page --> Contact[Contact Form]
end
subgraph "Core Systems"
Theme[next-themes] -->|CSS Vars| Page
I18n[next-i18next] -->|EN/ES| Page
Anim[Framer Motion] -->|Animations| Page
end
src/pages: Application routes and layouts.src/components: 30+ reusable UI components organized by domain feature.projects/: Specialized components (ProjectCard,TechBadge,SpotlightEffect,useSpotlight).ui/: Visual effect components (canvas-reveal-effect).core/: Layout primitives (ConstrainedBox,ResponsiveBox).magicui/: Text animation components (letter-pullup).
src/styles: Global styles, CSS custom properties, and Tailwind configuration.public/locales: Translation files (EN/ES) organized by section namespace.
Multi-layered strategy to ensure optimal performance metrics (Lighthouse 95+).
- Server-Side Rendering: SSR with
getStaticPropsfor i18n translations and optimal SEO. - Memoization: Heavy components use
React.memoand strictly memoized props to prevent unnecessary re-renders. - Dynamic Imports: Client-only components (cursor, water wave) loaded dynamically to avoid SSR issues.
- requestAnimationFrame: High-frequency events (mouse tracking for spotlight) bypass React state for direct DOM manipulation.
- Hardware Acceleration: Animations use CSS
transformandopacityto trigger GPU compositing layers. - Intersection Observer: Scroll-triggered animations only activate when elements enter the viewport.
- Next.js Image: Automatic format optimization (WebP/AVIF) and responsive size generation.
- Lazy Loading: Images below the fold loaded lazily; critical LCP images use
priority.
- Profile / Hero: Dynamic introduction with name, tagline, CTA buttons, CV download, and social links.
- About Me: Professional biography, experience statistics, and comprehensive tech stack (Frontend, Backend, AI/ML, Architecture).
- Services: 6 service cards β Frontend, Backend, Database, Full-Stack, CMS Development, and AI & Audio.
- Projects Showcase: 6 featured projects with live demos, GitHub repos, tech stacks, and interactive spotlight effect.
- Career Timeline: Interactive expandable timeline with career milestones and education.
- My Approach: 3-step methodology cards with Three.js canvas reveal animation on hover.
- Contact Form: Functional email form powered by EmailJS with validation and toast notifications.
- Dark/Light Mode: Professional theme system with CSS custom properties, smooth transitions, and system preference detection.
- Bilingual (EN/ES): Complete internationalization with 11 translation namespaces per language and instant switching.
- Premium Design: Glassmorphism aesthetic with grain texture overlay and refined micro-interactions.
- Responsive & Adaptive: Spotlight effect on desktop, touch-optimized glow on mobile.
- Custom Cursor: Animated cursor with magnetic interaction wrappers (desktop only).
- Smooth Scrolling: react-scroll navigation with scroll-reveal entrance animations.
- Optimized Spotlight: Custom
useSpotlighthook usingrAFto track cursor without triggering React render cycles. - Canvas Reveal Effect: Three.js dot matrix animation with React Three Fiber integration.
- CSS Custom Properties Theming: 15+ CSS variables that cascade across all components for consistent theming.
- Modular Component Architecture: 30+ specialized components organized by feature domain.
- Scroll-Triggered Animations: Intersection Observer-based reveal animations for all sections.
Follow these instructions to set up the project locally for development or inspection.
- Node.js: Version 18.17 or higher.
- Package Manager: npm, pnpm, or yarn.
-
Clone the repository
git clone https://github.com/juliandeveloper05/mi-portfolio-2024.git cd mi-portfolio-2024 -
Install dependencies
npm install # or pnpm install -
Start the development server
npm run dev
-
View the application Open http://localhost:3000 in your browser.
For the contact form to work, configure these in a .env.local file:
NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id
NEXT_PUBLIC_EMAILJS_USER_ID=your_user_id
- Hydration Errors: If you see hydration warnings related to extensions, view in Incognito mode or disable browser extensions.
- Node Version: Verify Node v18+ with
node -v.
This project maintains professional standards for collaboration. While primarily a personal portfolio, architectural improvements and bug fixes are welcome.
- TypeScript Strict Mode: No
any. Use interfaces for all prop definitions. - Component Colocation: Keep related logic, types, and sub-components within the same feature directory.
We follow Conventional Commits:
feat:New featuresfix:Bug fixesdocs:Documentation changeschore:Maintenance tasks
- Fork the repository
- Create your feature branch (
git checkout -b feat/amazing-feature) - Commit your changes
- Push to the branch
- Open a Pull Request
The project is optimized for deployment on Vercel, the creators of Next.js.
- Push to Main: Commits to the
mainbranch trigger a production build. - Preview Deployments: Pull Requests automatically generate a unique preview URL for QA.
- Edge Caching: Static assets are automatically cached at the edge for global performance.
Production variables (EmailJS keys) are managed securely in the Vercel Dashboard.
Phase A (Q3 2024): System Theme Synchronization (Dark/Light mode preference).β Implemented withnext-themes, CSS custom properties, and smooth transitions.Phase B (Q4 2024): Bilingual Support (English/Spanish).β Full i18n withnext-i18next, 11 namespaces per language.Phase C (Q4 2024): Contact Form Integration.β EmailJS-powered contact form with validation and toast notifications.Phase D (Q4 2024): Interactive Animations & Visual Effects.β Framer Motion, GSAP, Three.js canvas reveal, custom cursor, spotlight effect, scroll reveals.Phase E (Q1 2025): Services & Career Timeline Sections.β 6 service cards and interactive expandable timeline.Phase F (Q1 2025): Premium Design System.β Glassmorphism, grain texture, CSS custom properties theming, responsive typography withclamp().Phase G (Q1 2026): End-to-End Testing Suite.β Playwright with TypeScript, 9 test suites covering all sections (Navbar, Profile, About, Services, Projects, Timeline, Contact, Footer, Full Page), i18n testing (EN/ES), responsive layout tests (desktop/mobile), theme toggle, form validation, and CI-ready configuration.Phase I (Q1 2026): Client Testimonials Section.β Swiper carousel with client reviews, star ratings, glassmorphism cards, Framer Motion animations, full EN/ES i18n, and E2E test coverage.Phase M (Q1 2026): Project Filtering & Search.β Category filter pills (Web, Mobile, AI/ML, Consulting), text search across titles/descriptions/technologies, AnimatePresence animated transitions, full EN/ES i18n, and E2E test coverage.Phase K (Q1 2026): Analytics Dashboard Integration.β Track visitor engagement, popular projects, and contact form conversion rates.Phase L (Q1 2026): PDF Resume Generator.β Auto-generate a downloadable PDF resume from portfolio data.Phase O (Q1 2026): Micro-Animations Polish.β Loading skeleton screens, page transition animations, and staggered content reveals.
- Phase H: Automated Accessibility Regression Testing in CI (axe-core + Lighthouse CI).
- Phase J: Case Studies Page β Detailed project breakdowns showing process, challenges, solutions, and results (replaces the need for a blog).
- Phase N: Performance Monitoring β Integrate Web Vitals tracking and automated Lighthouse CI scores per deploy.
This project operates under a Dual License model:
- Source Code: MIT License (Open for study and adaptation).
- Content & Assets: Copyright Β© 2024 Julian Soto (Reserved).
See LICENSE for full details.