A fully responsive catering business website built with Next.js 15, Tailwind CSS, and Supabase.
- Modern Design: Clean, professional design similar to Babul Caterer
- Responsive Layout: Mobile-first design that works on all devices
- Interactive Elements: Smooth animations and hover effects using Framer Motion
- Contact Form: Integrated with Supabase for storing form submissions
- Admin Dashboard: View and manage contact form submissions
- SEO Optimized: Proper metadata and Next.js optimizations
- Performance: Optimized images and fast loading times
- Frontend: Next.js 15 (App Router), React 18, TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide React
- Backend: Supabase (Database & API)
- Deployment: Vercel (recommended)
- Home: Hero section, about, services, testimonials, CTA
- About: Company story, values, team
- Services: Detailed service offerings with pricing
- Gallery: Filterable image gallery of events
- Contact: Contact form with Google Maps integration
- Admin: Dashboard for viewing contact submissions
- Node.js 18+
- npm or yarn
- Supabase account
-
Clone the repository
git clone <repository-url> cd new-subham-caterer
-
Install dependencies
npm install
-
Set up Supabase
- Create a new Supabase project
- Create a
contactstable with the following columns:id: uuid (primary key) name: text (not null) email: text (not null) phone: text message: text (not null) created_at: timestamp with time zone (default: now())
-
Environment Variables Create a
.env.localfile in the root directory:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url_here NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key_here
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
new-subham-caterer/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes
│ ├── about/ # About page
│ ├── services/ # Services page
│ ├── gallery/ # Gallery page
│ ├── contact/ # Contact page
│ ├── admin/ # Admin dashboard
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/ # Reusable components
│ ├── Header.tsx # Navigation header
│ └── Footer.tsx # Footer component
├── lib/ # Utility libraries
│ └── supabase.ts # Supabase client
├── public/ # Static assets
└── package.json # Dependencies and scripts
The primary color scheme can be modified in tailwind.config.js:
colors: {
primary: {
50: '#fef7f0',
100: '#fdecd8',
// ... other shades
500: '#f27524', // Main brand color
}
}- Update text content in each page component
- Replace placeholder images with your own
- Modify contact information in Footer and Contact components
- Go to your Supabase dashboard
- Create a new table called
contacts - Add the required columns as specified above
- Set up Row Level Security (RLS) policies if needed
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy
The app can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
| Variable | Description | Required |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Your Supabase project URL | Yes |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Your Supabase anonymous key | Yes |
POST /api/contact- Submit contact formGET /api/admin/submissions- Fetch contact submissions (admin)
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For support or questions, please contact the development team.
Note: This is a template website. Replace all placeholder content, images, and contact information with your actual business details before going live.