Installation Guide
This comprehensive guide covers all requirements, dependencies, environment configuration, and troubleshooting for running Guigolo locally or deploying to production.System Requirements
Node.js Version
Guigolo requires Node.js 20 or higher to run Next.js 16 and React 19.Package Manager Options
Guigolo works with any modern package manager:| Package Manager | Version | Notes |
|---|---|---|
| npm | 9.0+ | Included with Node.js |
| yarn | 1.22+ or 3.0+ | Faster installs, workspace support |
| pnpm | 8.0+ | Disk space efficient, strict dependencies |
package-lock.json file, indicating npm was used for development. However, you can use any package manager you prefer.
Core Dependencies
Framework & Runtime
From package.json (package.json:11-17):- Next.js 16.1.1 - App Router with React Server Components, built-in optimization
- React 19.2.3 - Latest React with improved compiler and hooks
- React DOM 19.2.3 - DOM rendering for React 19
UI & Interaction Libraries
- Embla Carousel - Lightweight, extensible carousel for project galleries
- Autoplay plugin - Automatic slideshow functionality
Embla Carousel is used in the Projects section to showcase case studies with smooth transitions and touch support.
Analytics & Monitoring
- Vercel Analytics - Privacy-friendly analytics with Web Vitals tracking (app/layout.tsx:135)
- Google Analytics - GA4 tracking (production only)
- Hotjar - Heatmaps and session recordings (production only)
Development Dependencies
From package.json (package.json:19-30):- TypeScript 5 - Type safety and IntelliSense
- ESLint 9 - Code linting with Next.js preset
- Tailwind CSS 3.4.17 - Utility-first styling
- PostCSS & Autoprefixer - CSS processing and vendor prefixes
Environment Variables
Guigolo uses environment variables for analytics and feature flags. While the repository doesn’t include.env files (no .env files found in source), you can create them for local development or production deployment.
Optional Analytics Configuration
Create a.env.local file in the project root:
.env.local
Environment Variable Reference
Environment Variable Reference
From app/layout.tsx (app/layout.tsx:81-85):
VERCEL_ENV- Set to"production"to enable analytics in production onlyNEXT_PUBLIC_GA_ID- Google Analytics 4 Measurement ID (format:G-XXXXXXXXXX)NEXT_PUBLIC_HJ_ID- Hotjar Site ID (numeric)NEXT_PUBLIC_HJ_SV- Hotjar Snippet Version (default:"6")
VERCEL_ENV === "production" (app/layout.tsx:94-133). This prevents analytics from running during local development.None of these environment variables are required for local development. The app runs fine without them - you just won’t have analytics tracking.
Formspree Configuration
The contact form uses a hardcoded Formspree endpoint (components/Contact.tsx:14):- Create your own Formspree account at https://formspree.io
- Set up a new form and get your unique endpoint
- Replace the endpoint in
components/Contact.tsx
Installation Steps
1. Clone the Repository
2. Install Dependencies
3. (Optional) Configure Environment Variables
If you want analytics in development:4. Run Development Server
5. Build for Production
Test the production build locally:- Compile TypeScript to JavaScript
- Generate optimized React bundles
- Process and minify CSS with Tailwind
- Optimize images and static assets
- Generate static pages where possible
Tailwind CSS Configuration
Guigolo uses a custom Tailwind configuration with design tokens (tailwind.config.js:1):Custom Color Palette
Custom Typography Scale
Responsive Breakpoints
The extended breakpoints (3xl, 4xl) ensure the portfolio looks great on ultra-wide monitors and 4K displays.
Troubleshooting
Common Installation Issues
npm ERR! peer dependencies
npm ERR! peer dependencies
React 19 and Next.js 16 may show peer dependency warnings with some packages. These are usually safe to ignore if using npm 7+:Or upgrade to the latest npm:
Type errors with React 19
Type errors with React 19
Ensure you have the correct TypeScript definitions:If errors persist, delete the
.next build folder:Tailwind styles not applying
Tailwind styles not applying
Ensure Expected output:
globals.css is imported in app/layout.tsx and that your PostCSS config is valid:'use client' directive errors
'use client' directive errors
Next.js 16 uses React Server Components by default. Components with client-side features (useState, useEffect, event handlers) must have Most interactive components in
'use client' at the top:components/ already have this directive.Embla Carousel not working
Embla Carousel not working
Ensure both carousel packages are installed:If missing:
Analytics not tracking in development
Analytics not tracking in development
This is intentional! Analytics only load when Remember to revert this change before committing.
VERCEL_ENV === "production" (app/layout.tsx:81-133).To test analytics locally, temporarily modify the condition:Build Errors
Module parse failed: Unexpected token
Module parse failed: Unexpected token
This usually indicates a syntax error in TypeScript/JSX. Check:
- All imports are correct
- JSX is in
.tsxfiles, not.ts - No mixing of CommonJS (
require) and ESM (import)
Image optimization errors
Image optimization errors
Next.js optimizes images automatically. If you encounter errors:
- Ensure images are in
public/directory - Use relative paths from
public/(e.g.,/og/cover-social.png) - Images must be valid formats (JPEG, PNG, WebP, AVIF, SVG)
public/ and imported as strings, not optimized.Out of memory during build
Out of memory during build
Increase Node.js memory limit:Or add to
package.json scripts:Deployment
Vercel (Recommended)
Guigolo is optimized for Vercel deployment:- Push your code to GitHub
- Import the repository in Vercel dashboard
- Configure environment variables (GA_ID, HJ_ID, etc.)
- Deploy
- Build command:
next build - Output directory:
.next - Install command:
npm install
Other Platforms
For platforms like Netlify, Railway, or DigitalOcean:- Build command:
npm run build - Start command:
npm run start - Node version: 20+
- Environment variables: Set
VERCEL_ENV=productionand any analytics keys
Next Steps
With Guigolo installed and running:- Explore the component architecture in
components/ - Customize the gamification system in
components/gamification/ - Update project data in
components/projects/project.data.ts - Modify color schemes in
tailwind.config.js - Add new routes in the
app/directory