Skip to content

DominDev/DominDev-Momentum

Repository files navigation

DominDev Momentum

High-Performance Portfolio Landing Page — Where engineering excellence meets conversion-focused design. Not another template. A machine built to perform.

Live Demo GitHub License Lighthouse


Quick Stats

Metric Value Industry Avg Improvement
Performance 97/100 ~70 +39%
Load Time < 1s 3-5s 5x faster
Bundle Size ~56KB CSS 200KB+ 72% smaller
Accessibility 100/100 ~80 +25%

📸 Preview

Desktop Preview

💡 Tip: Experience the Matrix effect live: domindev.com


About

DominDev Momentum isn't just another portfolio website cobbled together from templates. It's an engineering showcase that demonstrates what happens when obsessive attention to performance meets thoughtful design. Every byte is justified. Every millisecond matters.

This project exists to prove a point: you don't need bloated frameworks to build fast, beautiful, accessible websites. You need engineering discipline.


✨ Key Features

Feature Description Impact
🎨 Matrix Canvas Animation Custom canvas-based falling character effect with auto-pause via Intersection Observer ✨ Unique visual identity
📱 Adaptive Image Loading Network-aware system (2G/3G/4G detection) adjusting quality dynamically ⚡ Optimal UX on any connection
ES Modules Architecture modulepreload hints reducing critical path by 192ms 🚀 Sub-second interactivity
🤖 On-Demand Chatbot Lazy-loaded AI module (~200KB saved from initial payload) 📈 Faster first paint
🔤 Self-Hosted Typography Outfit + Space Grotesk with font-display swap 🛡️ Zero CDN dependencies
WCAG 2.1 AA Compliance Keyboard nav, focus management, 4.5:1 contrast ✅ Accessible to everyone
🖼️ Multi-Format Images AVIF → WebP → JPEG fallback chain with responsive srcset 📦 50%+ smaller images
🔍 Schema.org Structured Data Rich JSON-LD @graph for enhanced SERP visibility 🏆 Better search presence

What Makes This Different?

Typical Portfolio Sites

  • Bloated frameworks (React+deps = 140KB+)
  • Slow load times (3-5 seconds)
  • Generic Bootstrap/Tailwind templates
  • Mediocre accessibility (if any)
  • No performance consideration
  • CDN dependencies everywhere

DominDev Momentum

  • Vanilla JS — zero framework overhead
  • < 1s load time — obsessively optimized
  • Custom design — Matrix cyberpunk aesthetic
  • WCAG 2.1 AA — accessible by design
  • 97+ Lighthouse — performance is a feature
  • Self-hosted everything — no external dependencies

Tech Stack

Frontend

HTML5 CSS3 JavaScript Canvas API

Build Tools

Node.js npm Sharp

Optimization

Terser WebP Gzip


Stack Comparison

Category This Project Typical Alternative Why Better?
JavaScript Vanilla JS (0 KB overhead) React + deps (140 KB) 140 KB smaller, instant TTI
CSS Custom Grid/Flexbox (56 KB) Bootstrap (180 KB) 70% smaller, no unused code
Images AVIF/WebP pipeline PNG/JPG only 50%+ file size reduction
Fonts Self-hosted WOFF2 Google Fonts CDN No external requests, GDPR-safe
Build Simple npm scripts Complex webpack config Easy to understand and maintain

Why This Stack?

Philosophy: Every byte counts. Every millisecond matters. Every user deserves fast.

This project prioritizes performance and simplicity over trendy frameworks:

  • Vanilla JS — Zero framework overhead, direct browser APIs, future-proof
  • CSS Grid/Flexbox — Modern layouts without library bloat
  • Static HTML — Instant TTI, perfect SEO, no hydration delays
  • Custom Build Scripts — Full control, no black-box bundlers

Performance & Quality

Lighthouse Scores

Category Score Industry Avg Status
Performance 97/100 ~70 Excellent
Accessibility 100/100 ~80 Perfect
Best Practices 100/100 ~85 Perfect
SEO 100/100 ~75 Perfect

Core Web Vitals

┌──────────────────────────────────────────────────────────────┐
│  Metric  │  This Project  │   Target   │  Industry Avg  │
├──────────┼────────────────┼────────────┼────────────────┤
│   FCP    │    ~0.6s       │   < 1.8s   │     2.5s       │
│   LCP    │    ~1.2s       │   < 2.5s   │     4.0s       │
│   CLS    │    ~0.03       │   < 0.1    │     0.25       │
│   TTI    │    ~1.9s       │   < 3.8s   │     5.3s       │
│   TBT    │    ~50ms       │   < 300ms  │     420ms      │
└──────────────────────────────────────────────────────────────┘

Result: This project is 3-5x faster than industry average.


Optimizations Applied

Code

  • Minified CSS (86KB → 56KB, -35%)
  • ES modules with modulepreload
  • Lazy-loaded non-critical modules
  • Deferred script execution
  • Memory leak prevention

Assets

  • AVIF/WebP/JPEG pipeline
  • Responsive srcset images
  • loading="lazy" everywhere
  • Network-aware quality
  • Self-hosted WOFF2 fonts

Delivery

  • Font-display swap (600ms saved)
  • Module preloading (-192ms chain)
  • Async font loading trick
  • Critical path optimization
  • Zero render-blocking CSS

Accessibility

WCAG 2.1 Level AA Compliant

Principle Status Implementation
Perceivable Pass 4.5:1+ contrast, alt text, semantic markup
Operable Pass Full keyboard nav, focus management, skip links
Understandable Pass Clear language, consistent navigation
Robust Pass Valid HTML5, ARIA landmarks, screen reader tested

Accessibility Features

  • Color Contrast — All text exceeds 4.5:1 ratio (WCAG AA)
  • Keyboard Navigation — Every interactive element reachable via Tab
  • Focus Indicators — Clear, visible focus rings on all controls
  • Screen Readers — Proper ARIA labels and landmark regions
  • Reduced Motion — Respects prefers-reduced-motion preference
  • Text Scaling — Works perfectly at 200% browser zoom
  • Skip Links — Jump to main content for keyboard users

Commitment: Building for everyone, not just some users.


Getting Started

Prerequisites

# Required
Node.js 18+        # JavaScript runtime for build tools
Modern Browser     # Chrome 90+, Firefox 88+, Safari 14+, Edge 90+

# Optional
Git               # Version control
VS Code           # Recommended IDE with extensions

Quick Start (3 Steps)

# 1. Clone the repository
git clone https://github.com/DominDev/DominDev-Momentum.git
cd DominDev-Momentum

# 2. Install dependencies
npm install

# 3. Open in browser (no server needed for static files)
# Or use VS Code Live Server, or any local server

# Build for production
npm run build

Available Scripts

Command Description
npm run build Full production build (images + CSS minification)
npm run minify Minify CSS files only
npm run optimize:images Generate AVIF/WebP/JPEG variants via Sharp
npm run watch Watch for file changes during development
npm run help Display available commands

Development Workflow

  1. CSS Development: Edit style.css → run npm run minify → generates style.min.css
  2. Image Optimization: Place originals in assets/images/*/originals/ → run npm run optimize:images
  3. Git Hooks: Pre-commit hooks auto-minify CSS (setup via _scripts/setup-git-hooks.js)

Project Structure

domindev-momentum/
├── index.html              # Entry point (semantic HTML5, Schema.org JSON-LD)
├── 404.html                # Custom error page with Matrix theme
├── style.css               # Source styles (4900+ lines, CSS custom properties)
├── style.min.css           # Production minified CSS (~56KB)
├── style-404.css           # Error page styles
│
├── js/
│   ├── main.js             # Entry point (ES module)
│   ├── config.js           # Runtime configuration
│   ├── core/
│   │   ├── matrix.js       # Canvas animation engine
│   │   └── ui.js           # UI interactions, custom cursor
│   └── modules/
│       ├── adaptive-images.js  # Network-aware image loading
│       ├── chatbot.js          # Lazy-loaded AI chat assistant
│       ├── contact.js          # Form handling & validation
│       ├── hud.js              # HUD overlay effects
│       ├── maintenance.js      # Maintenance mode controller
│       └── portfolio.js        # Gallery interactions
│
├── assets/
│   ├── fonts/              # Self-hosted: Outfit, Space Grotesk, Font Awesome
│   └── images/
│       ├── about/          # Profile images (AVIF/WebP/JPEG variants)
│       ├── portfolio/      # Project screenshots
│       ├── social/         # OG images for social sharing
│       └── icons/          # Favicons (multiple sizes)
│
├── data/
│   └── chatbot-db.json     # Chatbot knowledge base
│
├── _scripts/               # Build automation (Node.js)
│   ├── minify-css.js       # CSS minification
│   ├── minify-js.js        # JS minification
│   ├── optimize-images.js  # Sharp-based AVIF/WebP/JPEG pipeline
│   ├── optimize-video.js   # Video optimization
│   ├── auto-minify-css.js  # Auto-minify on file change
│   ├── watch.js            # Development file watcher
│   └── setup-git-hooks.js  # Pre-commit hook installer
│
├── _docs/                  # Project documentation & audit reports
├── sitemap.xml             # SEO sitemap
└── robots.txt              # Crawler directives

Files with .min extension are auto-generated. Edit source files only.


Browser Support

Browser Version Status
Chrome 90+ Fully supported
Firefox 88+ Fully supported
Safari 14+ Fully supported
Edge 90+ Fully supported
Opera 76+ Fully supported
Mobile Safari iOS 14+ Fully supported
Chrome Android 90+ Fully supported

Deployment

GitHub Pages (Current)

The project is configured for automatic GitHub Pages deployment:

  1. Push changes to main branch
  2. GitHub Actions deploys to https://[username].github.io/DominDev-Momentum/
  3. Conditional base tag handles localhost vs production URLs automatically

Other Platforms

Platform Best For Deploy Time
Netlify Static sites, CI/CD < 1 min
Vercel JAMstack projects < 1 min
GitHub Pages Open source < 5 min
Cloudflare Pages Global CDN < 2 min
# Build for any platform
npm run build

# Upload the entire directory to your hosting provider
# Configure caching headers for optimal performance

Roadmap

Planned Features

Priority Feature Status
High Dark/Light mode toggle Planned
High Internationalization (EN/PL) Planned
Medium Blog section (markdown-based) Considering
Medium Service Worker (offline) Considering
Low A/B testing framework Future

Recently Completed

  • Initial release with core features
  • Performance optimization (97+ Lighthouse)
  • WCAG 2.1 AA compliance
  • Responsive design (320px to 4K)
  • CSS refactoring & consolidation
  • Network-aware adaptive images

Have a feature request? Open an issue


Lessons Learned

Key insights from building this project.

What Worked Well

  1. Vanilla JS approach — No framework overhead = faster load, easier debugging
  2. Performance-first mindset — Optimizing from day one prevented technical debt
  3. Mobile-first CSS — Starting small made desktop styling natural
  4. ES Modules — Clean code organization without bundler complexity

Challenges Overcome

  1. Cross-browser Canvas — Solution: Careful feature detection and fallbacks
  2. Font loading flash — Solution: Media query async loading trick (600ms saved)
  3. Image format support — Solution: Picture element with AVIF → WebP → JPEG chain

License

This project uses a dual-license structure:

Component License Usage
Code (HTML, CSS, JS) MIT License Free to use, modify, distribute
Assets (images, logos, content) All Rights Reserved Requires explicit permission

What You CAN Do

  • Learn from the code architecture and techniques
  • Fork for personal projects and experimentation
  • Reference in educational content
  • Use code as inspiration for your own projects

What REQUIRES Permission

  • Using DominDev brand assets, logos, or trademarks
  • Copying visual design 1:1 for commercial purposes
  • Redistributing images or graphics

See LICENSE for full legal terms.


Author

Typing SVG

Building digital experiences that convert.

Website Email LinkedIn GitHub


Areas of Expertise

Skill Description
Frontend HTML5, CSS3, Vanilla JS — Performance-focused development
Performance Core Web Vitals optimization, Lighthouse 90+ scores
Accessibility WCAG 2.1 AA compliance, inclusive design
WordPress Custom themes, WooCommerce, ACF Pro, PageSpeed optimization
SEO Semantic HTML, structured data, meta optimization

If this project inspired you, give it a star!

Made with precision and obsessive attention to detail by DominDev

About

Source code for DominDev.com – 2025 version (Momentum Design).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •