A beautiful, simple, and efficient wedding website builder that allows couples to create stunning single-page wedding sites with RSVP management. Built with Astro, React, Tailwind CSS, and Prisma.
- π¨ Visual Builder - Single-page builder with intuitive section-based editing
- π Customization - Global color palette and font selection
- πΈ Media Management - Image and audio upload via Cloudinary
- π΅ Background Music - Upload custom music for guest pages
- π« RSVP Management - View, track, and export guest responses
- π Password Protection - Optional password for guest access
- π Unique URLs - Each wedding gets a custom shareable link
- π± Mobile-First Design - Optimized for all devices
- π Envelope Animation - Beautiful entrance with envelope opening
- π΅ Background Music - Automatic music playback on interaction
- π Event Details - Clear display of ceremony and reception info
- π Google Maps Integration - Easy location navigation
- π RSVP Form - Simple form with dietary restrictions
- πΌοΈ Photo Gallery - Carousel display of couple's photos
- β€οΈ Love Story - Share your journey with guests
- π Gift Registry - Links to registries or bank details
- Framework: Astro 5.14 - Ultra-fast static site generator
- UI Library: React 19 - For interactive components
- Styling: Tailwind CSS 4.1 - Utility-first CSS
- Database: Prisma 6.18 with PostgreSQL
- Animations: Framer Motion - Smooth animations
- Form Management: React Hook Form + Zod
- Media Upload: Cloudinary - Image and audio storage
- UI Components: Radix UI - Accessible component primitives
- Icons: Lucide React - Beautiful icon set
- Node.js 18+ or Bun
- PostgreSQL database
- Cloudinary account (for image/audio uploads)
- Clone the repository
git clone https://github.com/dannycahyo/weddingly-builder.git
cd weddingly-builder- Install dependencies
npm install
# or
bun install- Set up environment variables
Create a .env file in the root directory:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/weddingly"
# Cloudinary
CLOUDINARY_CLOUD_NAME="your_cloud_name"
CLOUDINARY_API_KEY="your_api_key"
CLOUDINARY_API_SECRET="your_api_secret"- Set up the database
npx prisma migrate dev
# or
bunx prisma migrate dev- Seed the database (optional)
npx prisma db seed
# or
bunx prisma db seedStart the development server:
npm run dev
# or
bun run devThe app will be available at http://localhost:4321
Build for production:
npm run build
# or
bun run buildPreview the production build:
npm run preview
# or
bun run previewnpx prisma migrate devnpx prisma studionpx prisma generateweddingly-builder/
βββ src/
β βββ components/
β β βββ guest/ # Guest-facing components
β β β βββ EnvelopeInvitation.tsx
β β β βββ GuestPage.tsx
β β β βββ MusicPlayer.tsx
β β β βββ ...
β β βββ sections/ # Admin builder sections
β β β βββ HeroSection.tsx
β β β βββ MusicSection.tsx
β β β βββ ...
β β βββ ui/ # Reusable UI components
β β βββ AudioUpload.tsx # Audio file uploader
β β βββ BuilderForm.tsx # Main admin form
β β βββ ...
β βββ layouts/
β β βββ main.astro # Main layout
β βββ lib/
β β βββ prisma.ts # Prisma client
β β βββ utils.ts # Utility functions
β β βββ validations.ts # Zod schemas
β βββ pages/
β β βββ api/ # API endpoints
β β β βββ upload.ts # Cloudinary upload
β β β βββ wedding/ # Wedding CRUD
β β β βββ rsvp.ts # RSVP submission
β β βββ builder.astro # Admin builder page
β β βββ [slug].astro # Dynamic wedding pages
β β βββ index.astro # Landing page
β βββ styles/
β βββ global.css # Global styles
βββ prisma/
β βββ schema.prisma # Database schema
βββ public/ # Static assets
βββ docs/
β βββ PRD.md # Product Requirements
βββ astro.config.mjs # Astro configuration
βββ tailwind.config.js # Tailwind configuration
βββ package.json
- Upload audio files (MP3, WAV, M4A, OGG) via Cloudinary
- Automatic playback on user interaction (envelope opening)
- Floating music player with play/pause and mute controls
- Displays song title and artist
- Beautiful entrance animation for guest pages
- Personalized greeting with guest name
- Smooth transition to main content
- Framer Motion powered animations
- Guest form with name, attendance, and dietary restrictions
- Admin dashboard to view all responses
- Quick stats (attending, declined)
- CSV export functionality
- Choose from 10 color palettes
- Select heading and body fonts
- Toggle sections on/off
- Upload unlimited photos to gallery
- Password-protected wedding sites (optional)
- Server-side validation with Zod
- Secure file uploads via Cloudinary
- PostgreSQL with Prisma for data safety
This project can be deployed to any Node.js hosting platform:
- Vercel (Recommended)
- Netlify
- Railway
- Render
Make sure to:
- Set up environment variables
- Configure PostgreSQL database
- Run migrations before deployment
For detailed product requirements, see PRD.md
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for your own wedding or commercial purposes.
Built with β€οΈ for couples around the world.
The Evermore - Because every love story deserves a beautiful beginning.