Skip to content

agusgonzaleznic/agusgonzaleznic.github.io

Repository files navigation

Agustin Gonzalez Nicolini — Leadership & Engineering Coaching

A modern, conversion-focused single-page portfolio for engineering leadership coaching.

Live Site: https://agusgonzaleznic.github.io

Features

  • 🎨 Premium Design System: Minimal grayscale palette with electric coral accent
  • Performance Optimized: Vite-powered builds with optimized assets
  • 🔍 SEO-Ready: Complete meta tags, JSON-LD schema, sitemap, and robots.txt
  • 📱 Fully Responsive: Mobile-first design with adaptive layouts
  • Accessible: WCAG 2.1 AA compliant with semantic HTML and Radix UI primitives
  • 🎭 Smooth Animations: Tasteful transitions with reduced-motion support
  • 🔒 Type-Safe: Built with TypeScript for reliability
  • Quality Assured: ESLint with pre-commit hooks via Husky
  • 🚀 CI/CD Ready: Automated deployments with GitHub Actions

Tech Stack

Core

  • Vite 7.2.2 - Next-generation build tool and dev server
  • React 18.3.1 - UI library
  • TypeScript 5.9.3 - Type safety
  • React Router 6.30.1 - Client-side routing

Styling & UI

Forms & Validation

Development Tools

  • ESLint 9.39.1 - Code linting
  • Husky 9.1.7 - Git hooks
  • lint-staged 16.2.6 - Pre-commit linting
  • SWC - Fast TypeScript/JavaScript compiler

Getting Started

Prerequisites

  • Node.js 20.x or higher
  • npm (comes with Node.js)

Install Node.js via nvm (recommended):

nvm install 20
nvm use 20

Installation

# Clone the repository
git clone [email protected]:agusgonzaleznic/agusgonzaleznic.github.io.git

# Navigate to project directory
cd agusgonzaleznic.github.io

# Install dependencies
npm install

# Start development server
npm run dev

The site will be available at http://localhost:8080

Available Scripts

npm run dev          # Start development server (port 8080)
npm run build        # Build for production
npm run build:dev    # Build in development mode
npm run preview      # Preview production build locally
npm run lint         # Run ESLint

Pre-commit Hooks

This project uses Husky to automatically run linting on staged files before each commit:

  • Auto-configured: Hooks are set up automatically when you run npm install
  • What runs: ESLint on all staged .ts, .tsx, .js, .jsx files
  • Auto-fix: Fixable issues are automatically corrected
  • Blocks commits: Commits are blocked if there are unfixable linting errors

To bypass hooks (not recommended):

git commit --no-verify

Deployment

Automatic Deployment (GitHub Actions)

This project uses reusable GitHub Actions workflows for automated CI/CD:

  • Deploy Workflow (.github/workflows/deploy.yml)

  • CI Workflow (.github/workflows/ci.yml)

    • Runs on pull requests to main
    • Validates code quality with ESLint
    • Ensures build succeeds

GitHub Pages Setup

  1. Go to Repository → Settings → Pages
  2. Under "Source", select GitHub Actions
  3. Push to main branch to trigger deployment
  4. Site will be live at: https://agusgonzaleznic.github.io

Manual Deployment

Build and deploy to any static hosting service:

# Build for production
npm run build

# The dist/ directory contains the production build
# Upload dist/ to your hosting provider

Custom Domain

To use a custom domain:

  1. Add a CNAME file to public/ with your domain:

    echo "yourdomain.com" > public/CNAME
  2. Configure DNS:

    • For apex domain (example.com):
      • Add A records pointing to GitHub Pages IPs
    • For subdomain (www.example.com):
      • Add CNAME record pointing to agusgonzaleznic.github.io
  3. See: GitHub Pages Custom Domain Documentation

Project Structure

.
├── .github/
│   └── workflows/          # GitHub Actions CI/CD
├── .husky/                 # Git hooks
├── public/                 # Static assets
│   ├── .nojekyll          # Disable Jekyll processing
│   ├── favicon.ico
│   ├── robots.txt
│   └── sitemap.xml
├── src/
│   ├── components/         # React components
│   │   └── ui/            # shadcn/ui components
│   ├── hooks/             # Custom React hooks
│   ├── lib/               # Utility functions
│   ├── pages/             # Page components
│   ├── assets/            # Images and media
│   ├── App.tsx            # Root component
│   ├── main.tsx           # Entry point
│   └── index.css          # Global styles
├── index.html             # HTML template (Vite entry point)
├── vite.config.ts         # Vite configuration
├── tailwind.config.ts     # Tailwind CSS configuration
├── tsconfig.json          # TypeScript configuration
└── package.json           # Dependencies and scripts

Code Quality

  • Linting: ESLint with TypeScript support
  • Type Checking: Strict TypeScript configuration
  • Pre-commit Hooks: Automatic linting via Husky + lint-staged
  • CI/CD: Automated checks on every PR and push

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature
  3. Make your changes
  4. Run linting: npm run lint
  5. Commit your changes (pre-commit hooks will run automatically)
  6. Push to your fork: git push origin feature/your-feature
  7. Open a Pull Request

License

This project is private and proprietary.

Contact

Agustin Gonzalez Nicolini

About

Documentation for my YouTube Videos/ Complete with nice examples!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published