Production Readiness Checklist
Production Readiness Checklist
Use this checklist before deploying to production.
Final pass (Mar 2025)
- 404 page: “Back home” link now uses
relative_urlfor baseurl compatibility - Portfolio footer: LinkedIn link uses
georgenyakundifor config consistency - Build: ✓ passes with
bundle exec jekyll build - Sass deprecation warnings: From Minima theme (darken/lighten in gem). Non-blocking; consider upgrading Minima when a fix is released
✅ Completed
SEO
- jekyll-seo-tag plugin (meta tags, Open Graph, Twitter Cards)
- jekyll-sitemap plugin (auto-generates sitemap.xml)
- robots.txt (allows crawlers, references sitemap)
- Page-specific meta descriptions (index, about, portfolio, project pages)
- Canonical URLs (handled by jekyll-seo-tag)
- Author config for structured data
Technical
- Custom domain (CNAME: www.georgenyakundi.com)
- GitHub Actions workflow for build & deploy
- Mobile responsive design
- Light/dark mode support
- Semantic HTML (headings, sections, nav)
⚠️ Needs Attention
1. Install New Dependencies
bundle install
Required for jekyll-sitemap. Run before deploying.
2. GitHub Pages Settings
- Repository → Settings → Pages: Source = “GitHub Actions”
- Custom domain: Set to
www.georgenyakundi.com(or apexgeorgenyakundi.com) - Enforce HTTPS: Enable
3. Default OG Image
- Current default:
/assets/christ-in-song-screenshot.png - Recommendation: Create a dedicated OG image (1200×630px) for cleaner social previews when sharing the homepage
- Place at
assets/og-image.pngand update_config.yml:image: /assets/og-image.png
4. Image Optimization
christ-in-song-screenshot.png(~938 KB) could be compressed- Consider: WebP format, or resize for web (max 1200px wide)
- Tools: Squoosh,
cwebp
5. Analytics (Optional)
- Add Google Analytics 4: set
google_analytics: G-XXXXXXXin_config.yml - Minima includes the GA snippet when configured
6. 404 Page
- Custom 404 exists; ensure GitHub Pages uses it
- Test: https://georgenyakundi.com/nonexistent-page
7. Favicon
- Add
favicon.icoorapple-touch-icon.pngtoassets/ - Add to head:
<link rel="icon" href="/assets/favicon.ico">
8. Performance
- Fonts: Source Sans 3 loads from Google Fonts (add
&display=swapif not present) - Consider self-hosting fonts for privacy and faster load
9. Accessibility
- Run Lighthouse audit
- Verify: sufficient color contrast, focus states on links, alt text on images
10. Links Verification
- All internal links work
- External links (LinkedIn, GitHub, App Store) valid
- No broken mailto: links (email hidden as requested)
Pre-Deploy Quick Test
bundle install
bundle exec jekyll build
bundle exec jekyll serve
Then verify:
- Homepage loads, hero and featured work display
- About → timeline renders
- Portfolio → card links to Christ In Song detail
- Footer: social links, description, no email
- Mobile view: nav, footer, cards stack correctly
- Dark mode: toggle OS preference, styles adapt
Post-Deploy Verification
- https://georgenyakundi.com loads
- https://georgenyakundi.com/sitemap.xml exists
- https://georgenyakundi.com/robots.txt exists
- Google Search Console: Add property, submit sitemap
- Facebook Debugger: Check OG preview
- Twitter Card Validator: Check card preview