Pinkvilla Shubhangi Clone
A fundamentals exercise built as part of a hiring assignment. Rebuilt a content-heavy entertainment portal pixel-by-pixel using only HTML, CSS, Bootstrap and vanilla JavaScript — no frameworks, no shortcuts. Grid, typography, and responsive layout from scratch.
View live✦ The Brief
Where it started
Early on, I wanted to prove to myself that I could rebuild a real, content-heavy, image-first website pixel by pixel using only the fundamentals — no React, no framework shortcuts. Pinkvilla was the perfect target: dense grids, image cards everywhere, a navigation bar that has to behave on every screen size, and typography that has to stay readable inside a busy visual layout. If I could match that with vanilla tools, I'd trust myself with anything more abstract.
✦ The Thinking
Decisions before code
This was a discipline exercise, not a creative one. The decision was deliberate: spend a week with HTML, CSS, Bootstrap and vanilla JavaScript before I got too comfortable in modern tooling. I studied the original site's layout grid, screenshotted it at different breakpoints, and built a personal style guide before writing a single line of code. The thinking was less 'how do I make this look good' and more 'how do I match what already exists, exactly.'
✦ Building it
From sketch to ship
Pure HTML, CSS and JavaScript with Bootstrap for the responsive grid. The hardest part was the hero carousel and the nested category navigation — I built both from scratch with vanilla JS to really understand the moving parts. I spent more time on responsive breakpoints than anything else; entertainment portals look easy until you try to keep them readable on a 360px phone.
Stack
Screenshots

✦ What I'm proud of
The detail that mattered
Building the responsive grid system before reaching for the framework. I implemented the layout in plain CSS first, only switching to Bootstrap utilities once I understood why each rule was there. That muscle memory — knowing what's actually happening underneath utility classes — has stayed with me through every React project since.
✦ What I'd do differently
The honest reflection
I'd rebuild it in React with proper component composition. The current version has a lot of repeated markup that a small ArticleCard component would have collapsed into ten lines. I'd also lazy-load the images properly — the page loads heavy because every image fires at once. Both fixes are easy now; they just weren't where my attention was at the time.