A modern, animated web application for collecting RSVPs for a surprise birthday lunch. The application features a beautiful UI with animations, email notifications, and data storage capabilities.
- Interactive RSVP Form - Elegantly designed form with smooth animations
- Email Confirmations - Professional, styled confirmation emails sent to guests
- Admin Notifications - Email notifications sent to the organizer for each RSVP
- Data Storage - Optional Google Sheets integration for tracking responses
- Mobile Responsive - Looks great on all devices
- Animated UI - Engaging animations and confetti effect on submission
- Frontend: Next.js, React, Tailwind CSS, Framer Motion
- Backend: Next.js API Routes
- Email Service: Nodemailer
- Data Storage: Google Sheets API (optional implementation)
- Node.js 18+ installed
- npm or yarn
- Clone this repository
git clone <repository-url>
cd birthday-rsvp- Install dependencies
npm install
# or
yarn- Set up environment variables
Create a
.env.localfile in the root directory and add:
# Email Configuration
EMAIL_FROM=your-email@example.com
EMAIL_ADMIN=organizer@example.com
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=username
SMTP_PASS=password
# Party Details
EVENT_DATE="Saturday, June 15, 2024"
EVENT_TIME="7:00 PM"
EVENT_LOCATION="123 Party Avenue, Celebration City"
EVENT_MAP_LINK="https://maps.google.com/?q=123+Party+Avenue,+Celebration+City"
# Optional: Google Sheets (if implementing spreadsheet storage)
GOOGLE_SHEETS_ID=your-sheet-id
- Run the development server
npm run dev
# or
yarn dev- Open http://localhost:3000 in your browser to see the application
Email templates can be modified in the src/app/api/submit-rsvp/route.ts file. Look for the sendConfirmationEmail and sendAdminNotification functions.
The RSVP form component is located at src/app/components/RSVPForm.tsx. You can modify the form fields, styling, and animations here.
Global styles are in src/app/globals.css, and component-specific styles are defined using Tailwind CSS classes.
This application can be deployed on Vercel, Netlify, or any other hosting platform that supports Next.js applications.
# Build the application
npm run build
# Start the production server
npm startTo enable Google Sheets integration:
- Set up a Google Cloud project
- Enable the Google Sheets API
- Create a service account and download the credentials JSON file
- Share your Google Sheet with the service account email
- Uncomment the related code in
src/app/api/submit-rsvp/route.ts
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React Framework
- Tailwind CSS - For styling
- Framer Motion - For animations
- React Confetti - For the celebration effect
- React Hook Form - For form handling
- Nodemailer - For sending emails
- Google Sheets API - For data storage