Scott Hetrick's Personal Portfolio Monorepo
A comprehensive showcase of web development projects built over 5 years, demonstrating full-stack capabilities, modern tooling, and diverse technical skills.
π§ Status: Currently undergoing modernization to industry-standard monorepo architecture. See INFRASTRUCTURE_AUDIT.md for details.
Dreadfolio is a meta-portfolio - a working demonstration of software engineering capabilities that proves skills by being itself. It hosts 12+ interactive web applications ranging from games to productivity tools to social platforms.
Live Portfolio: scottjhetrick.com
This repository currently uses git submodules for individual apps that were built independently over time, with a shared package infrastructure managed via pnpm workspaces.
dreadfolio/
βββ apps/ # Individual applications (currently git submodules)
β βββ minesweeper/ # Classic Minesweeper with achievements
β βββ fallcrate/ # Dropbox-inspired cloud storage
β βββ su-done-ku/ # Sudoku solver with step-by-step logic
β βββ pathfinder-visualizer/ # Algorithm visualizations
β βββ shareme/ # Pinterest-inspired social platform
β βββ home-page/ # Portfolio landing page
β βββ portfolio/ # Full portfolio site (deployed to EC2)
β βββ ... # + 5 more apps
βββ packages/ # Shared infrastructure (true monorepo)
β βββ dread-ui/ # Custom React component library
β βββ utils/ # Shared utilities
β βββ assets/ # Shared images/icons
β βββ typescript-config/ # Shared TS configs
βββ infra/ # Docker/nginx configuration
Migrating to: True monorepo with unified git history and workspace management (industry standard, 2026)
Why the change?
- Better developer experience
- Type safety across app boundaries
- Atomic commits and refactoring
- Matches industry standards (Google, Meta, Vercel)
- Improved CI/CD simplicity
- Minesweeper - Classic game with achievements system, drag-and-drop windows
- Pathfinding Visualizer - Dijkstra's, BFS, A* algorithm visualizations
- Su-Done-Ku - Sudoku solver with logical step-by-step explanations
- Enlight - Raycasting light simulation
- Fallcrate - Cloud storage app with Firebase backend
- ShareMe - Social media platform for image sharing
- Gifster - Giphy API integration for GIF discovery
- Quipster - Vocabulary and word list management
- Sketches - Collection of creative coding experiments
- ASCII Video - Real-time video to ASCII art converter
- Steering Text - Text animation with steering behaviors
Frontend: React, TypeScript, Vite, Tailwind CSS
Backend: Node.js, AWS Lambda, Firebase
Monorepo: pnpm workspaces, Turborepo
Infrastructure: AWS (Amplify, Lambda, CloudFront, Route 53, API Gateway)
CI/CD: AWS Amplify (Git-based), AWS SAM
Tools: ESLint, Prettier, Sass
- Node.js >= 18
- pnpm >= 8.15.1
- Git
# Clone the repository
git clone https://github.com/yourusername/dreadfolio.git
cd dreadfolio
# Pull git submodules (temporary - will be removed during modernization)
pnpm run pull-submodules
# Install all dependencies
pnpm install
# Copy environment variables
cp .env.example .env
# Edit .env with your API keys
# Start all apps in development mode
pnpm dev
# Build all apps
pnpm buildSee .env.example for required environment variables. You'll need:
- Vercel token (for Turborepo remote caching)
- Giphy API key (for Gifster app)
- Firebase credentials (for Fallcrate, ShareMe)
# Development
pnpm dev # Start all apps in dev mode
pnpm dev --filter=minesweeper # Start specific app
# Building
pnpm build # Build all apps
pnpm build-low-mem # Build with limited concurrency
pnpm build-more-mem # Build with high concurrency
# Linting & Formatting
pnpm lint # Lint all packages
pnpm format # Format code with Prettier
# Testing
pnpm test # Run all tests
# Submodule Management (temporary)
pnpm run pull-submodules # Update all submodulesDreadfolio uses a modern, cloud-native deployment architecture with independent app deployments:
Static Apps (15 apps) β AWS Amplify Hosting + CloudFront CDN
Backend API β AWS Lambda + API Gateway
DNS β Route 53 with staging and production environments
GitHub Repository
βββ Push to staging branch β Deploys to staging.scottjhetrick.com/*
βββ Push to main branch β Deploys to scottjhetrick.com/*
- Independent Deployments: Update one app without rebuilding all 15 apps
- Zero Downtime: Rolling deployments with instant rollback
- Global CDN: CloudFront edge locations for <100ms TTFB worldwide
- Cost Effective: ~$31/month (same as previous EC2, but faster & more reliable)
- Staging Environment: Test changes before production
See comprehensive documentation:
- DEPLOYMENT.md - Complete deployment guide (8 phases)
- MIGRATION_CHECKLIST.md - Step-by-step migration checklist
- infrastructure/README.md - Infrastructure details
Quick deployment:
# Deploy Lambda API
cd infrastructure/lambda/sudoku-api
npm install && npm run build
sam deploy --guided
# Create Amplify apps (automated)
./infrastructure/scripts/create-amplify-apps.sh
# Configure DNS
./infrastructure/scripts/setup-route53.sh
# Push to staging for testing
git checkout staging
git push origin staging
# Deploy to production
git checkout main
git merge staging
git push origin mainPrevious EC2/Docker deployment has been replaced. See DEPLOYMENT.md for migration guide.
- Deployment Guide - Complete AWS Amplify + Lambda deployment guide
- Migration Checklist - Step-by-step migration checklist
- Infrastructure README - Infrastructure as code documentation
- Infrastructure Audit - Historical technical debt analysis (2026)
- Individual App READMEs - Each app has its own documentation
This monorepo represents 5 years of learning and building:
- 2019: Early projects (enlight, ascii-video)
- 2020-2021: Game implementations (minesweeper, pathfinder-visualizer)
- 2022-2023: Full-stack applications (fallcrate, shareme, su-done-ku)
- 2024: Component library and design system (dread-ui)
- 2025-2026: Monorepo consolidation and modernization
Each project captures the skills and knowledge at that point in time. The ongoing modernization effort demonstrates continued growth and commitment to best practices.
Active Modernization (2026): Currently implementing industry-standard monorepo patterns and resolving technical debt identified in infrastructure audit.
Recent improvements (2026):
- β Deployment: Migrated to AWS Amplify + Lambda architecture
- β Infrastructure: Independent app deployments with zero downtime
- β Performance: Global CDN with <100ms TTFB worldwide
- β DevOps: Staging environment for testing before production
- β Documentation: Comprehensive deployment guides and checklists
- β Security: Fixed hardcoded API keys, improved secret management
- π§ Architecture: Migrating from git submodules to true monorepo
- π§ Dependencies: Standardizing versions across all packages
See INFRASTRUCTURE_AUDIT.md for complete improvement roadmap.
This is a personal portfolio project, but suggestions and feedback are welcome! Feel free to:
- Open issues for bugs or suggestions
- Review the infrastructure audit and provide feedback
- Share ideas for architectural improvements
Individual projects may have different licenses. See each app's directory for details.
Scott Hetrick
- Tech Lead experience (Broadlume, 2022-2024)
- Senior Full Stack Engineer (Stash, 2021-2022)
- Portfolio
This repository itself demonstrates:
- Full-stack development: Frontend, backend, infrastructure
- Modern tooling: Monorepo management, CI/CD, containerization
- Diverse skills: Games, algorithms, social platforms, cloud storage
- Continuous improvement: Active refactoring and modernization
- Production readiness: Real apps with real traffic (5K+ requests/day)
The best portfolio proves skills by being itself.