A minimalist, production-ready resume website for software engineers. Built with HTML, CSS, and vanilla JavaScript—no frameworks, no build step.
- Fast & Lightweight: No dependencies, minimal JavaScript, optimized SVGs
- Responsive: Mobile-first design that looks great on all devices
- Accessible: Semantic HTML, keyboard navigation, skip links, ARIA labels
- Dark Mode: Automatic (system preference) + manual toggle
- SEO Ready: Open Graph tags, Twitter cards, JSON-LD structured data, sitemap
- Easy to Customize: All content marked with "EDIT HERE" comments
-
Clone or download this repository
-
Open a terminal in the project directory
-
Start a local server:
# Python 3 python -m http.server 8000 # Python 2 python -m SimpleHTTPServer 8000 # Node.js (if you have npx) npx serve # PHP php -S localhost:8000
-
Open http://localhost:8000 in your browser
Search for EDIT HERE comments throughout the codebase. Key files to edit:
- Line ~10-12: Page title and meta description
- Line ~15: Canonical URL (your domain)
- Line ~18-24: Open Graph tags
- Line ~37-46: JSON-LD structured data (name, email, social links)
- Line ~71: Your name
- Line ~74: Your title/role
- Line ~77-80: Your value proposition/tagline
- Line ~84-85: Status badge (open to work, location)
- Line ~90-101: Primary links (email, GitHub, LinkedIn)
- Lines ~110+: Projects section
- Lines ~180+: Experience section
- Lines ~250+: Skills section
- Lines ~310+: Writing/Open Source section
- Lines ~350+: Contact section
- Update the case study content with your actual project details
- Duplicate this file for additional project writeups
- Update the name and tagline in the SVG
- Update the domain at the bottom
- Replace
yourdomain.comwith your actual domain
Replace the placeholder resume.pdf with your actual resume:
- Export your resume as a PDF
- Name it
resume.pdf - Place it in the root directory (same level as
index.html)
Uncomment the headshot line in index.html (~line 67) and either:
- Replace
assets/headshot-placeholder.svgwith your photo - Update the
srcto point to your image file
Edit assets/favicon.svg to change the initials or colors.
Edit assets/og-image.svg or replace with a 1200x630 PNG/JPG for better social media previews.
Edit the CSS custom properties in styles.css (lines 10-40) to change:
- Primary color (
--color-primary) - Background colors
- Text colors
- Border colors
mathews-devsite/
├── index.html # Main page with all sections
├── styles.css # All styles including dark mode
├── script.js # Theme toggle, year update
├── 404.html # Error page
├── robots.txt # Search engine directives
├── sitemap.xml # Sitemap for SEO
├── resume.pdf # Your resume (replace placeholder)
├── README.md # This file
├── assets/
│ ├── favicon.svg # Browser tab icon
│ ├── og-image.svg # Social sharing image
│ ├── headshot-placeholder.svg
│ └── project-placeholder.svg
└── writeups/
└── project-1.html # Sample case study
- Create a new repository on GitHub
- Push your code:
git init git add . git commit -m "Initial commit" git branch -M main git remote add origin git@github.com:USERNAME/REPO.git git push -u origin main
- Go to repository Settings → Pages
- Under "Source", select main branch
- Your site will be live at
https://USERNAME.github.io/REPO/
Note: If deploying to a subpath (like /REPO/), the relative paths (./) should work correctly.
- In your DNS provider, add:
- A record:
185.199.108.153(and .109, .110, .111) - Or CNAME:
USERNAME.github.io
- A record:
- In repository Settings → Pages, enter your custom domain
- Check "Enforce HTTPS"
- Update all URLs in
index.html,sitemap.xml, androbots.txt
- Connect your GitHub repository to Netlify
- Deploy settings:
- Build command: (leave empty)
- Publish directory:
.or/
- Your site deploys automatically on push
Custom Domain: Add in Netlify dashboard under Domain settings
- Import your repository to Vercel
- Framework Preset: Other
- No build settings needed
- Deploy
Custom Domain: Add in Vercel dashboard under Domains
- Connect your repository
- Build settings:
- Build command: (leave empty)
- Build output directory:
/
- Deploy
This site is already optimized, but here are additional tips:
- Images: If you add photos, compress them with Squoosh or use WebP format
- Fonts: The site uses system fonts for instant loading
- CSS: Consider using a tool like PurgeCSS if you remove sections
- Caching: Most static hosts handle this automatically
- Skip to main content link
- Semantic HTML structure (
header,main,nav,section,article,footer) - ARIA labels on interactive elements
- Keyboard-navigable (tab through all links and buttons)
- Focus indicators on all interactive elements
- Respects
prefers-reduced-motionfor animations - Sufficient color contrast in both light and dark modes
Works in all modern browsers:
- Chrome/Edge (last 2 versions)
- Firefox (last 2 versions)
- Safari (last 2 versions)
This template is free to use for personal and commercial projects. Attribution is appreciated but not required.
Built with HTML, CSS, and a little vanilla JS. No frameworks, no build step, no nonsense.