Creative Technologist and Frontend Developer
deploythis.co
This is the personal portfolio website for Victor Hernandez, a Creative Technologist and Frontend Developer with 30+ years of experience. The site showcases professional experience, technical expertise, and serves as a bridge between creative vision and technical execution.
Live Site: deploythis.co
- Gatsby 5.7.0 - Static site generator with React
- React 18.2.0 - Component-based UI framework
- Node.js - JavaScript runtime environment
- gatsby-plugin-mdx 5.7.0 - MDX support for markdown with JSX
- gatsby-plugin-sass 6.7.0 - Sass/SCSS styling support
- gatsby-source-filesystem 5.7.0 - File system sourcing
- gatsby-plugin-image 3.7.0 - Optimized image processing
- framer-motion 12.23.12 - Animation library
- gh-pages 5.0.0 - GitHub Pages deployment
-
Clone and install dependencies
git clone https://github.com/Deploythis/deploythis.github.io.git cd deploythis.github.io npm install -
Start developing
npm run develop
Your site is now running at
http://localhost:8000! -
View GraphQL data layer Open
http://localhost:8000/___graphqlto explore the site's data structure.
src/
├── components/ # Reusable React components
│ ├── _head.js # SEO head component
│ └── BeeLogo.js # Logo component with animation
├── images/ # Static image assets
│ ├── icon.png # Site icon/favicon
│ └── logo.png # Brand logo
├── pages/ # Gatsby page components
│ ├── 404.js # Error page
│ ├── index.js # Home page
│ └── cv.js # Experience page
└── styles/ # CSS styling
├── fonts.css # Typography
└── global.css # Global styles
This project is undergoing migration from hardcoded content to a markdown-based content management system:
- Content is hardcoded within React components
- Direct JSX text embedding in page files
- Static contact information and experience data
content/
├── site/
│ └── metadata.md # Site-level SEO and configuration
├── pages/
│ ├── home.md # Homepage content (hero, about, skills)
│ └── cv.md # Experience and education content
└── contact/
└── info.md # Contact details and social links
- Separation of Concerns: Content separate from presentation layer
- Easy Updates: Non-technical content updates via markdown files
- GraphQL Integration: Leverage Gatsby's built-in content optimization
- Scalability: Foundation for future content types (blog, portfolio)
npm run develop # Development server (http://localhost:8000)
npm run build # Production build
npm run serve # Serve built site locally
npm run clean # Clean Gatsby cache and public folder- ES6+ Syntax: Arrow functions, template literals
- React Patterns: Functional components with hooks
- File Naming: kebab-case for files, PascalCase for components
- CSS Classes: BEM-like naming (
hero-title,contact-section) - Global Styles: Shared via
global.css - Sass/SCSS: Available for enhanced styling capabilities
- Gatsby Image: Automatic image optimization and lazy loading
- Static Generation: Pre-built pages for fast loading
- SEO Components: Centralized metadata management via
_head.js - Sitemap: Automatic sitemap generation
- Manifest: PWA configuration for mobile experience
This repository uses GitHub Actions to build and publish the Gatsby site to GitHub Pages (user site deploythis.github.io). The main branch contains only source code (no built public/ directory committed). On every push to main a workflow builds the site and deploys the generated public folder.
- Added
.github/workflows/deploy.ymlwith build + deploy jobs. - Ensured
.gitignoreexcludespublic/and build artifacts. - (After renaming) Set
mainas the default branch in repo settings. - In GitHub Pages settings: Source = GitHub Actions.
- Develop locally with
npm run develop. - Commit & push to
main. - GitHub Actions builds the site and publishes it. Deployment status appears in the PR / commit checks.
Previously the built site lived on master / main. That branch can be deleted once Pages serves from Actions successfully:
git push origin :master
This site uses the custom domain deploythis.co. The file static/CNAME contains that domain so Gatsby copies it into each build output (public/CNAME). If you change domains, update that single file.
npm run build && npm run serve
npm run clean
Original Gatsby starter instructions retained below for reference.