Professional website for Creedence Clearwater Industrial - industrial cleaning, hydro excavation, vacuum truck services, and specialized industrial solutions.
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Deployment: Vercel (recommended)
- Primary Orange:
#f66400 - Secondary Black:
#000000 - Background:
#ffffff - Muted:
#f5f5f5
├── app/
│ ├── layout.tsx # Root layout with header/footer
│ ├── page.tsx # Home page
│ ├── about/ # About page
│ ├── services/ # Services listing & individual service pages
│ ├── gallery/ # Photo gallery
│ ├── careers/ # Careers & job application
│ └── contact/ # Contact form & info
├── components/
│ ├── layout/ # Header, Footer, Container
│ ├── ui/ # Button, Card, Input components
│ ├── sections/ # Hero, ServicesGrid, CTABanner
│ └── forms/ # ContactForm, CareerForm
└── lib/
└── services.ts # Service data & utilities
npm installnpm run devOpen http://localhost:3000 in your browser.
npm run buildnpm start- Push your code to GitHub (already done)
- Go to vercel.com
- Sign in with GitHub
- Click "Add New Project"
- Import your
ccirepository - Vercel will auto-detect Next.js settings
- Click "Deploy"
That's it! Your site will be live in ~2 minutes.
npm i -g vercel
vercel login
vercelFollow the prompts to deploy.
Edit components/layout/Footer.tsx and app/contact/page.tsx:
- Phone number
- Email address
- Physical address
- Business hours
- Add logo image to
/public/images/logo.png - Update
components/layout/Header.tsxto use the image:
<Image src="/images/logo.png" alt="CCI" width={150} height={50} />- Add images to
/public/images/gallery/ - Update
app/gallery/page.tsxto reference your images:
import Image from "next/image";
<Image
src="/images/gallery/project1.jpg"
alt="Project description"
width={800}
height={600}
className="rounded-lg"
/>Edit lib/services.ts to modify:
- Service descriptions
- Benefits lists
- Icons (using emoji or replace with custom icons)
The contact and career forms currently log to console. To connect them to email:
- Option A: Use a form service (Formspree, Web3Forms, etc.)
- Option B: Add API routes in
app/api/contact/route.tswith email service (Resend, SendGrid, etc.)
Example with Resend:
// app/api/contact/route.ts
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
export async function POST(request: Request) {
const data = await request.json();
await resend.emails.send({
from: 'website@yourcompany.com',
to: 'info@ccind.com',
subject: 'New Contact Form Submission',
html: `<p>Name: ${data.name}</p>...`
});
return Response.json({ success: true });
}Replace the map placeholder in app/contact/page.tsx:
<iframe
src="https://www.google.com/maps/embed?pb=YOUR_EMBED_CODE"
width="100%"
height="400"
style={{ border: 0 }}
allowFullScreen
loading="lazy"
/>- Home (
/) - Hero, services grid, why choose us, CTA - Services (
/services) - All services with cards linking to details - Service Details (
/services/[slug]) - Individual service pages (6 total) - About (
/about) - Company story, mission, values - Gallery (
/gallery) - Photo gallery with placeholder structure - Careers (
/careers) - Job listings and application form - Contact (
/contact) - Contact form and company information
Create .env.local for API keys:
# Email service (if using Resend, SendGrid, etc.)
RESEND_API_KEY=your_key_here
# Analytics (if using Google Analytics, etc.)
NEXT_PUBLIC_GA_ID=your_ga_idEach page has optimized metadata including:
- Title tags
- Meta descriptions
- Keywords
To add more SEO features:
- Add a sitemap:
app/sitemap.ts - Add robots.txt:
app/robots.ts - Add Google Analytics: Update
app/layout.tsx
- ✅ Website deployed to Vercel
- Add your actual logo and images
- Update contact information with real details
- Connect forms to email service
- Add Google Maps embed
- Set up Google Analytics (optional)
- Add actual gallery photos
- Test all forms and links
- Set up custom domain on Vercel
For questions about the website, refer to:
Built with ❤️ for Creedence Clearwater Industrial