A Next.js marketing site for Rosario's, a modern Italian restaurant. Single-page layout with menu carousel, reservation form, hours, testimonials, and location.
- Hero — Full-screen landing with CTAs
- About — Story, stats, placeholder for client photo
- Menu — Swipeable category tabs (Antipasti, Primi, Secondi, Dolci) with dish detail modals, keyboard navigation
- Testimonials — Customer reviews with star ratings
- Hours & Location — Open/closed status (green/red), Google Maps embed
- Reservations — First/last name, email, date (with clear), preferred time, guests
- Dev tools —
/dev/uploadfor image uploads (development only) - SEO — Open Graph, Twitter cards, Schema.org structured data
- Accessibility — ARIA labels, keyboard nav, focus management, hidden scrollbar
npm install
npm run devOpen http://localhost:3000.
Copy .env.example to .env.local and fill in:
NEXT_PUBLIC_GOOGLE_MAPS_KEY— For embedded map (optional; falls back to link)NEXT_PUBLIC_SITE_URL— Canonical URL for SEO (default:https://rosarios.com)
- Next.js 16 (App Router)
- TypeScript
- Tailwind CSS
Reservations are stored as JSON files in data/reservations/ (replace with a database for production).