A professional, mobile-friendly website for event planners built with Next.js and Sanity CMS. This website serves as a digital business card, portfolio showcase, and client acquisition tool.
- Home Page: Hero section, services preview, portfolio preview, testimonials
- About Page: Brand story, mission, founder/team bio with stats
- Services Page: Dynamic list of services from Sanity CMS
- Portfolio Page: Image gallery with lightbox functionality
- Testimonials Page: Client feedback with rating system
- Booking Page: Contact form for event bookings
- Contact Page: Contact information, social links, WhatsApp integration
- Booking Management: Store and manage client inquiries
- Service Management: Add/edit services with images and pricing
- Portfolio Management: Upload event photos and details
- Testimonial System: Collect and display client reviews
- Site Settings: Manage brand information, contact details, social links
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Backend: Sanity CMS (headless)
- UI Components: Radix UI, Lucide Icons
- Forms: React Hook Form with Zod validation
- Image Gallery: Yet Another React Lightbox
- Deployment: Vercel (frontend), Sanity Studio (backend)
- Node.js 18+
- npm or yarn
- Sanity account (free)
-
Clone the repository
git clone <repository-url> cd event-planner-website
-
Install dependencies
npm install
-
Set up Sanity
a. Create a new Sanity project at sanity.io
b. Get your project ID and dataset name
c. Create environment variables:
# Create .env.local file NEXT_PUBLIC_SANITY_PROJECT_ID=your-project-id NEXT_PUBLIC_SANITY_DATASET=production NEXT_PUBLIC_SANITY_API_VERSION=2023-12-01 SANITY_API_READ_TOKEN=your-read-token NEXT_PUBLIC_SITE_URL=http://localhost:3000 -
Deploy Sanity schemas
npx sanity deploy
-
Start the development server
npm run dev
-
Access Sanity Studio
npx sanity manage
- Access Sanity Studio at your project URL
- Create Site Settings - Add brand name, tagline, contact info, social links
- Add Services - Create your event planning services
- Upload Portfolio - Add event photos and details
- Collect Testimonials - Add client reviews and ratings
src/
├── app/ # Next.js 14 App Router pages
│ ├── about/ # About page
│ ├── booking/ # Booking form page
│ ├── contact/ # Contact page
│ ├── portfolio/ # Portfolio gallery
│ ├── services/ # Services page
│ ├── testimonials/ # Testimonials page
│ └── api/ # API routes
├── components/ # React components
│ ├── ui/ # Reusable UI components
│ ├── Header.tsx # Site header
│ ├── Footer.tsx # Site footer
│ └── ... # Page-specific components
├── lib/ # Utilities and configurations
│ ├── sanity.ts # Sanity client and queries
│ └── utils.ts # Helper functions
├── types/ # TypeScript type definitions
└── styles/ # Global styles
sanity/
└── schemaTypes/ # Sanity CMS schemas
├── booking.ts # Booking form data
├── service.ts # Services content
├── portfolio.ts # Portfolio items
├── testimonial.ts # Client testimonials
├── contactInquiry.ts # Contact form data
└── siteSettings.ts # Site configuration
- Update colors in
tailwind.config.tsandglobals.css - Replace logo and favicon in
/publicfolder - Modify site settings in Sanity Studio
- All content is managed through Sanity CMS
- No code changes needed for content updates
- Images are automatically optimized
- Built with Tailwind CSS for easy customization
- Mobile-first responsive design
- Elegant color scheme (amber/gold accent)
- Connect your GitHub repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Deploy Sanity Studio:
npx sanity deploy - Access at
https://your-project.sanity.studio
# Required
NEXT_PUBLIC_SANITY_PROJECT_ID=your-project-id
NEXT_PUBLIC_SANITY_DATASET=production
NEXT_PUBLIC_SANITY_API_VERSION=2023-12-01
# Optional
SANITY_API_READ_TOKEN=your-read-token
NEXT_PUBLIC_SITE_URL=https://yourdomain.com- Image optimization with Next.js Image component
- Lazy loading for portfolio images
- Responsive images with Sanity CDN
- Fast page loads with static generation
- SEO-optimized meta tags
- Modern browsers (Chrome, Firefox, Safari, Edge)
- Mobile responsive design
- Touch-friendly interface
- Accessibility features included
For questions or issues:
- Check the documentation
- Review Sanity CMS guides
- Contact the development team
This project is created for professional event planning businesses. Please customize branding and content for your specific use case.
Built with ❤️ for unforgettable events