Modern, responsive portfolio website built with React and Vite, deployed on AWS with serverless architecture.
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:5173
# Create production build
npm run build
# Preview production build
npm run previewmy_personal_website/
├── src/ # React components and source code
├── public/ # Static assets (favicon, images)
├── lambda/ # AWS Lambda functions
│ ├── visitor-counter/ # Visitor counter Lambda
│ └── contact-form/ # Contact form Lambda
├── infrastructure/ # CloudFormation IaC templates
├── scripts/ # Deployment and setup scripts
├── docs/ # Project documentation
├── dist/ # Build output (gitignored)
├── deploy.sh # Main deployment script
└── .env.example # Environment variables template
-
Copy
.env.exampleto.envand fill in your AWS values:cp .env.example .env
-
Configure AWS CLI with your profile:
aws configure --profile your-profile-name
# Make deploy script executable (first time only)
chmod +x deploy.sh
# Build and deploy
./deploy.shThis will:
- Build the React app
- Upload to S3
- Invalidate CloudFront cache
- Site live in 1-2 minutes
- .env.example - Environment variables template
- docs/DEPLOYMENT.md - Detailed deployment guide
- docs/PORTFOLIO_RECOMMENDATIONS.md - Portfolio enhancement suggestions
- infrastructure/ - CloudFormation templates for AWS resources
- Frontend: React 19, Vite
- Styling: CSS3, Custom animations
- Backend: AWS Lambda, API Gateway, DynamoDB
- Hosting: AWS S3 + CloudFront CDN
- Infrastructure: CloudFormation (IaC)
- Edit components in
src/components/ - Test locally with
npm run dev - Build with
npm run build
- Never commit
.envfiles - Environment variables for API endpoints
- HTTPS enforced
© 2025 AJ Williams