A modern, conversion-focused single-page portfolio for engineering leadership coaching.
Live Site: https://agusgonzaleznic.github.io
- 🎨 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
- 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
- Tailwind CSS 3.4.18 - Utility-first CSS framework
- shadcn/ui - High-quality React components
- Radix UI - Accessible component primitives
- Lucide React 0.553.0 - Icon library
- React Icons 5.5.0 - Simple Icons for brand logos (LinkedIn, GitHub)
- React Hook Form 7.66.0 - Form state management
- Zod 3.25.76 - Schema validation
- 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
- Node.js 20.x or higher
- npm (comes with Node.js)
Install Node.js via nvm (recommended):
nvm install 20
nvm use 20# 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 devThe site will be available at http://localhost:8080
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 ESLintThis 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,.jsxfiles - 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-verifyThis project uses reusable GitHub Actions workflows for automated CI/CD:
-
Deploy Workflow (
.github/workflows/deploy.yml)- Triggers on push to
mainbranch - Runs linting and build
- Deploys to GitHub Pages automatically
- Uses reusable workflow from
agusgonzaleznic/github-reusable-workflows
- Triggers on push to
-
CI Workflow (
.github/workflows/ci.yml)- Runs on pull requests to
main - Validates code quality with ESLint
- Ensures build succeeds
- Runs on pull requests to
- Go to Repository → Settings → Pages
- Under "Source", select GitHub Actions
- Push to
mainbranch to trigger deployment - Site will be live at:
https://agusgonzaleznic.github.io
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 providerTo use a custom domain:
-
Add a
CNAMEfile topublic/with your domain:echo "yourdomain.com" > public/CNAME
-
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
- Add CNAME record pointing to
- For apex domain (
.
├── .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
- 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
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Run linting:
npm run lint - Commit your changes (pre-commit hooks will run automatically)
- Push to your fork:
git push origin feature/your-feature - Open a Pull Request
This project is private and proprietary.
Agustin Gonzalez Nicolini
- Website: https://agusgonzaleznic.github.io
- GitHub: @agusgonzaleznic