I'll add SEO city pages across Haryana. This is best done with dynamic routes so every service × city combination gets its own page. Let me first read the existing files I'll reuse for styling and data.
Let me read the header so city pages can reuse the same nav and links.
I have full context now. I'll build a data-driven system: a locations/services data file plus a single dynamic route that generates an SEO page for every service-and-city combination (e.g. /packers-and-movers-rohtak, /car-transport-rohtak). Let me generate one missing image (pet transport) and create the data file in parallel.
Now I'll create the dynamic SEO route. Each combination renders at a top-level URL like /packers-and-movers-rohtak. Let me build the page component with metadata and static generation.
Now a /locations directory page that links to every service and city, so all pages are discoverable and crawlable.
Now let me add a "Cities We Serve" section to the homepage and a Locations link in the header/footer nav. First the homepage section component:
Now let me read the current homepage to add the ServiceAreas section.
Now let me add a "Locations" link to the header and footer navigation. The header nav uses hash anchors that only work on the homepage, so I'll point the new link to /locations.
Now let me update the footer to link services to their main city-service pages and add an Areas link. Let me update the footer's links and services to be navigable.
Now update the footer body to use Link, make services link to pages, and add popular cities. Let me read the current footer body.
Now let me add a "Popular Cities" row above the bottom bar in the footer. I'll insert it before the bottom border div.
Now let me add a sitemap so all these pages get indexed by search engines, then verify in the browser.
Let me verify the new pages render correctly in the browser.
There's a JSX syntax error in the footer — my edits left an extra closing div. Let me read the relevant section.
The bottom bar lost its inner flex div opening tag. Let me fix it.
The error still references line 118 but the title now loads correctly — this looks like a stale cached error. Let me re-read the footer to confirm the structure is balanced.
The markup is now balanced and correct. The browser showed a stale cached error (the page title already loaded correctly). Let me reload to confirm.
The page renders perfectly. The "Car Transport in Rohtak" page looks professional with the hero, content, cross-links to other services and cities, contact form, and footer — your number 8148705001 appears throughout. The earlier error was just a stale cache.
I've added a full SEO location system across Haryana. Here's what's now live:
/car-transport-rohtak or /pet-transport-rohtak.MovingCompany structured data (JSON-LD) with the city and your phone number for local search./locations directory page listing everything.To add more towns or services later, just edit the CITIES or SERVICES arrays in lib/locations.ts and every page, link, and sitemap entry updates automatically. Want me to update the sitemap base URL to your real domain, or add more specific localities (like sectors within Gurgaon)?
I'll add a photo gallery, a video showcase, and the IBA/ISO certification messaging in the headings. Let me generate gallery photos and read the relevant files in parallel.
I'll update the hero badge to highlight the IBA/ISO certification, then build a gallery section with photos and a video showcase. Let me first update the hero badge.
Now let me create the gallery + video showcase component. I'll use a reliable open video source for the showcase and the six generated photos.
Now let me add the Gallery to the homepage between Process and ServiceAreas.
Let me add a "Gallery" link to the header nav and verify everything renders.
Now let me verify everything renders correctly in the browser.
Everything renders beautifully. The new gallery section, video player, and IBA/ISO certification headings are all live and looking professional.
I've added a full "Our Work in Photos & Videos" section to your homepage with:
To use real footage, just replace the photos in public/images/gallery-*.png and swap the <source> URL in components/gallery.tsx with your own video (a hosted MP4 or a Vercel Blob upload). Want me to wire up a Vercel Blob uploader so you can manage these media files yourself?