feat: Migrate to Next.js with complete mobile-optimized website
Some checks failed
build-website / build (push) Failing after 7s

- Replaced Vue/Nuxt with Next.js 15 for better performance and simpler architecture
- Implemented all website sections with responsive design:
  - Hero section with video background and mobile-optimized spacing
  - About section with feature highlights
  - Services showcase with 3 service cards
  - Contact section with CTAs and trust badges
  - Footer with branding
- Added Lucide React icons throughout
- Mobile optimizations:
  - Responsive text and button sizing
  - Touch-friendly CTAs
  - Proper spacing adjustments for mobile/desktop
  - Scroll indicator with bouncing chevron
- Archived Vue/Nuxt version in vue-archive folder
- Moved all assets to Next.js public folder

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Matt
2025-09-26 16:12:00 +02:00
parent 256f7eb069
commit d0f33f66f3
109 changed files with 3113 additions and 43 deletions

42
app/layout.tsx Normal file
View File

@@ -0,0 +1,42 @@
import type { Metadata, Viewport } from 'next'
import { Inter, Playfair_Display } from 'next/font/google'
import './globals.css'
const inter = Inter({
subsets: ['latin'],
variable: '--font-sans',
})
const playfair = Playfair_Display({
subsets: ['latin'],
variable: '--font-serif',
})
export const viewport: Viewport = {
width: 'device-width',
initialScale: 1,
viewportFit: 'cover', // Critical for iOS Safari safe areas
}
export const metadata: Metadata = {
title: 'Harbor Smith - Personalized Service Maintenance For Your Boat',
description: 'Reliable Care Above and Below the Waterline. Servicing the Bay Area and Beyond!',
appleWebApp: {
capable: true,
statusBarStyle: 'black-translucent',
},
}
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en" className={`${inter.variable} ${playfair.variable}`}>
<body className="font-sans">
{children}
</body>
</html>
)
}