π‘ The Philosophy
Before adopting frameworks like Next.js or React, I wanted to prove I could build a professional, responsive, and highly performant website using only the core technologies of the web. This project is a testament to the power of simpler tools.
This site achieves 100/100 Lighthouse scores not because of complex optimizations, but because it lacks the bloat that necessitates them.
π§± Technical Deep Dive
1. Semantic Architecture
Instead of div soup, this site rigorously uses semantic tags:
<nav>,<main>,<article>,<aside>, and<footer>for layout.<picture>andsrcsetfor responsive image delivery.- Proper heading hierarchy (
h1throughh6) for SEO and accessibility.
2. Advanced CSS Layouts
I implemented complex layouts without a single CSS framework:
- CSS Grid: Used for the project gallery to handle diverse aspect ratios.
- Flexbox: Used for navigation bars and card internals.
- CSS Variables: A centralized
rootdeclaration for consistent theming (colors, spacing, typography).
:root {
--primary-color: #2563eb;
--text-main: #0f172a;
--spacing-unit: 8px;
/* Dark mode support via simple variable swaps */
}
3. Interaction Design
- Vanilla Timeline: A custom JavaScript intersection observer that animates timeline items as they scroll into view.
- Dark Mode: A simple toggle that persists preference via
localStorageand respectsprefers-color-scheme.
π Evolution
While I have since moved to Next.js for its powerful ecosystem (this current site!), com.jibanwebsite remains strictly online as a sandbox. It serves as a reminder that:
- Load time is a feature.
- Accessibility is structural, not an add-on.
- You don't always need a bundler.
π Reflections
If I were to refactor this today while keeping the "No Framework" constraint, I would:
- Adopt BEM methodology or CUBE CSS for better style organization.
- Implement Web Components for repeated elements like the project cards.
- Add a build step purely for image optimization (WebP conversion).