A modern, mobile-friendly event landing page built with Next.js, TailwindCSS, and Resend integration for collecting RSVPs and managing contacts.
- ✅ Responsive Design: Mobile-first approach with TailwindCSS
- ✅ Resend Integration: Contact management and email sending
- ✅ Form Validation: Client and server-side validation with Nigerian phone validation
- ✅ SEO Optimized: Meta tags, Open Graph, and Twitter Cards
- ✅ Modern UI: Clean, professional design with Google Fonts
- ✅ Error Handling: Comprehensive error states and user feedback
- ✅ Video Background: Immersive full-screen video experience
- Framework: Next.js 14 (App Router)
- Styling: TailwindCSS
- Email Service: Resend API
- Fonts: Google Fonts (Inter & Sora)
- Language: TypeScript
# Clone the repository
git clone <your-repo-url>
cd shinetw-event-landing
# Install dependencies
npm install# Copy the example environment file
cp env.example .env.local
# Edit .env.local with your Resend API key
nano .env.local- Go to Resend and create an account
- Navigate to API Keys section
- Create a new API key
- Copy the key to your
.env.localfile
npm run devVisit http://localhost:3000 to see your landing page.
# Install Vercel CLI (if not already installed)
npm i -g vercel
# Deploy
vercelOr connect your GitHub repository to Vercel for automatic deployments.
- Go to your Vercel project dashboard
- Navigate to Settings → Environment Variables
- Add the following variable:
RESEND_API_KEY
When your shinetw.com domain is renewed:
- Go to Vercel project dashboard → Settings → Domains
- Add your custom domain:
shinetw.com - Update your DNS records as instructed by Vercel
- Update the
urlinapp/layout.tsxmetadata
├── app/
│ ├── actions.ts # Server actions for Resend API
│ ├── email-service.ts # Email service using Resend
│ ├── components/
│ │ └── RSVPForm.tsx # RSVP form component
│ ├── globals.css # Global styles and TailwindCSS
│ ├── layout.tsx # Root layout with metadata
│ └── page.tsx # Main landing page