βIf you can dream it, you can park it here.β
π Live at β himanshudhiman.website
A dark, cinematic showcase of the worldβs most insane cars β built with the latest web tech so itβs fast, beautiful, and actually impressive to show your friends.
This is a personal car showcase website. You scroll through a grid of hypercars, supercars, F1 machines, and luxury tanks. Thereβs:
And yes, the Eeco has infinite horsepower. Non-negotiable.
| Tech | What it does |
|---|---|
| Next.js 16 | The framework β handles routing, server rendering, and builds |
| React 19 | The UI library β components, hooks, all that |
| TypeScript | JavaScript but smarter β catches bugs before you even run the code |
| Tailwind CSS v4 | Utility CSS classes right in your JSX β no more writing CSS files for everything |
| Vercel | Hosting + Analytics + Speed Insights β all in one dashboard |
App Router is the new way Next.js works. Your files in /app become routes automatically. Server Components (most of the page) run on the server and ship zero JavaScript to the browser β which means your site loads faster. Only the interactive bits (cursor, filters, cards) ship JS.
Because guessing sucks. TypeScript tells you exactly what properties an object has. If you try to access car.horsepwer (note the typo), TypeScript yells at you before the app even starts. Once you get used to it, youβll never go back.
Prerequisites: Node.js 18+ installed
# 1. Install dependencies
npm install
# 2. Start the dev server on port 6217
npm run dev
Then open http://localhost:6217 in your browser. Or just hit F5 in VS Code β it starts the server and opens the browser automatically.
Other commands:
npm run build # Build for production npm run start # Run the production build locally npm run lint # Check for code problems
himanshu/
β
βββ app/ β Next.js App Router
β βββ layout.tsx β Root HTML shell (fonts, metadata, analytics)
β βββ page.tsx β Home page (Server Component)
β βββ globals.css β Tailwind + custom animations
β
βββ components/ β Reusable UI pieces
β βββ Preloader.tsx β Loading screen (fades after 3.5s)
β βββ CustomCursor.tsx β The pink dot + ring cursor
β βββ Hero.tsx β Full-screen title section
β βββ GarageSection.tsx β Owns filter state (wraps Nav + GarageGrid)
β βββ Nav.tsx β Category filter pill bar
β βββ GarageGrid.tsx β The car card grid
β βββ CarCard.tsx β Individual car card with 3D tilt
β βββ Footer.tsx β Visitor counter footer
β
βββ data/
β βββ cars.json β β β ADD CARS HERE
β
βββ public/
β βββ images/ β Car images (served at /images/filename.jpg)
β
βββ types/
β βββ index.ts β TypeScript types (Car, Filter, etc.)
β
βββ vercel.json β Vercel deployment + cache + security headers
βββ tsconfig.json β TypeScript config
Open data/cars.json and add a new entry to the cars array. Hereβs the template:
{
"name": "Your Car Name",
"category": "supercar",
"image": "/images/your-image.jpg",
"alt": "Description of what's in the image",
"description": "A sentence or two about the car.",
"specs": {
"horsepower": "500 hp",
"topSpeed": "200 mph / 322 km/h"
}
}
Category must be one of:
"supercar" β Lambos, Ferraris, etc."hypercar" β Bugattis, Pagani, track monsters"suv-luxury" β Rolls, Hummers, Range Rovers"concept-racing" β F1 cars, concepts, prototypesFor the image:
public/images/ folder"/images/your-filename.jpg" in the JSON"https://...")Tip: Use WebP format for images β theyβre ~30% smaller than JPG and look identical.
The site uses two Vercel tools to track performance. Both are already wired up in app/layout.tsx β you just need to enable them in your dashboard.
Go to vercel.com β your project β Analytics tab β Enable
Youβll see:
Go to vercel.com β your project β Speed Insights tab β Enable
Youβll see Core Web Vitals measured from REAL users: | Metric | What it means | |βββ|βββββ| | LCP | How fast the main content loads | | FID | How quickly the page responds to clicks | | CLS | Whether things jump around as the page loads | | FCP | When the first thing appears on screen | | TTFB | How fast your server responds |
Both tools only collect data on the live Vercel deployment β theyβre completely silent when running locally.
The site is live at himanshudhiman.website β already deployed!
Every time you push to main, Vercel automatically rebuilds and redeploys. Zero manual steps.
yourproject.vercel.app in ~60 secondsPress F5 (or click the play button in the Run & Debug panel) to:
npm run dev in the backgroundhttp://localhost:6217 in Microsoft Edge automaticallyIf you prefer Chrome, open .vscode/launch.json and change "msedge" to "chrome".
/cars/[name]next/image instead of <img> for automatic WebP conversionDo whatever you want with this. Itβs your project. Show it off.
Got questions, collabs, or just want to talk cars?
βοΈ contact@himanshudhiman.website
Built by Himanshu. Live at himanshudhiman.website.