{"id":50738156,"url":"https://github.com/dannycahyo/weddingly-builder","last_synced_at":"2026-06-10T15:31:46.761Z","repository":{"id":319974148,"uuid":"1080282924","full_name":"dannycahyo/weddingly-builder","owner":"dannycahyo","description":"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.","archived":false,"fork":false,"pushed_at":"2025-12-28T02:57:48.000Z","size":552,"stargazers_count":17,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-30T08:51:23.202Z","etag":null,"topics":["astrojs","cloudinary","postgresql","prisma","react","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dannycahyo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-21T06:28:47.000Z","updated_at":"2025-12-28T02:57:51.000Z","dependencies_parsed_at":"2025-10-21T09:11:57.458Z","dependency_job_id":"3a25f85e-6840-419d-a926-b5ac1278bd2e","html_url":"https://github.com/dannycahyo/weddingly-builder","commit_stats":null,"previous_names":["dannycahyo/weddingly-builder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dannycahyo/weddingly-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannycahyo%2Fweddingly-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannycahyo%2Fweddingly-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannycahyo%2Fweddingly-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannycahyo%2Fweddingly-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dannycahyo","download_url":"https://codeload.github.com/dannycahyo/weddingly-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannycahyo%2Fweddingly-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34159249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astrojs","cloudinary","postgresql","prisma","react","typescript"],"created_at":"2026-06-10T15:31:45.768Z","updated_at":"2026-06-10T15:31:46.755Z","avatar_url":"https://github.com/dannycahyo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Evermore - Wedding Website Builder\n\nA 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.\n\n## ✨ Features\n\n### For Couples (Admin Dashboard)\n\n- 🎨 **Visual Builder** - Single-page builder with intuitive section-based editing\n- 🎭 **Customization** - Global color palette and font selection\n- 📸 **Media Management** - Image and audio upload via Cloudinary\n- 🎵 **Background Music** - Upload custom music for guest pages\n- 🎫 **RSVP Management** - View, track, and export guest responses\n- 🔒 **Password Protection** - Optional password for guest access\n- 🌐 **Unique URLs** - Each wedding gets a custom shareable link\n\n### For Guests (Wedding Website)\n\n- 📱 **Mobile-First Design** - Optimized for all devices\n- 💌 **Envelope Animation** - Beautiful entrance with envelope opening\n- 🎵 **Background Music** - Automatic music playback on interaction\n- 📅 **Event Details** - Clear display of ceremony and reception info\n- 📍 **Google Maps Integration** - Easy location navigation\n- 💝 **RSVP Form** - Simple form with dietary restrictions\n- 🖼️ **Photo Gallery** - Carousel display of couple's photos\n- ❤️ **Love Story** - Share your journey with guests\n- 🎁 **Gift Registry** - Links to registries or bank details\n\n## 🚀 Tech Stack\n\n- **Framework**: [Astro 5.14](https://astro.build) - Ultra-fast static site generator\n- **UI Library**: [React 19](https://react.dev) - For interactive components\n- **Styling**: [Tailwind CSS 4.1](https://tailwindcss.com) - Utility-first CSS\n- **Database**: [Prisma 6.18](https://prisma.io) with PostgreSQL\n- **Animations**: [Framer Motion](https://www.framer.com/motion/) - Smooth animations\n- **Form Management**: [React Hook Form](https://react-hook-form.com) + [Zod](https://zod.dev)\n- **Media Upload**: [Cloudinary](https://cloudinary.com) - Image and audio storage\n- **UI Components**: [Radix UI](https://radix-ui.com) - Accessible component primitives\n- **Icons**: [Lucide React](https://lucide.dev) - Beautiful icon set\n\n## 📋 Prerequisites\n\n- Node.js 18+ or Bun\n- PostgreSQL database\n- Cloudinary account (for image/audio uploads)\n\n## 🛠️ Installation\n\n1. **Clone the repository**\n\n```sh\ngit clone https://github.com/dannycahyo/weddingly-builder.git\ncd weddingly-builder\n```\n\n2. **Install dependencies**\n\n```sh\nnpm install\n# or\nbun install\n```\n\n3. **Set up environment variables**\n\nCreate a `.env` file in the root directory:\n\n```env\n# Database\nDATABASE_URL=\"postgresql://user:password@localhost:5432/weddingly\"\n\n# Cloudinary\nCLOUDINARY_CLOUD_NAME=\"your_cloud_name\"\nCLOUDINARY_API_KEY=\"your_api_key\"\nCLOUDINARY_API_SECRET=\"your_api_secret\"\n```\n\n4. **Set up the database**\n\n```sh\nnpx prisma migrate dev\n# or\nbunx prisma migrate dev\n```\n\n5. **Seed the database (optional)**\n\n```sh\nnpx prisma db seed\n# or\nbunx prisma db seed\n```\n\n## 🏃 Development\n\nStart the development server:\n\n```sh\nnpm run dev\n# or\nbun run dev\n```\n\nThe app will be available at `http://localhost:4321`\n\n## 📦 Build\n\nBuild for production:\n\n```sh\nnpm run build\n# or\nbun run build\n```\n\nPreview the production build:\n\n```sh\nnpm run preview\n# or\nbun run preview\n```\n\n## 🗄️ Database Management\n\n### Run migrations\n\n```sh\nnpx prisma migrate dev\n```\n\n### Open Prisma Studio (Database GUI)\n\n```sh\nnpx prisma studio\n```\n\n### Generate Prisma Client\n\n```sh\nnpx prisma generate\n```\n\n## 📁 Project Structure\n\n```\nweddingly-builder/\n├── src/\n│   ├── components/\n│   │   ├── guest/              # Guest-facing components\n│   │   │   ├── EnvelopeInvitation.tsx\n│   │   │   ├── GuestPage.tsx\n│   │   │   ├── MusicPlayer.tsx\n│   │   │   └── ...\n│   │   ├── sections/           # Admin builder sections\n│   │   │   ├── HeroSection.tsx\n│   │   │   ├── MusicSection.tsx\n│   │   │   └── ...\n│   │   ├── ui/                 # Reusable UI components\n│   │   ├── AudioUpload.tsx     # Audio file uploader\n│   │   ├── BuilderForm.tsx     # Main admin form\n│   │   └── ...\n│   ├── layouts/\n│   │   └── main.astro          # Main layout\n│   ├── lib/\n│   │   ├── prisma.ts           # Prisma client\n│   │   ├── utils.ts            # Utility functions\n│   │   └── validations.ts      # Zod schemas\n│   ├── pages/\n│   │   ├── api/                # API endpoints\n│   │   │   ├── upload.ts       # Cloudinary upload\n│   │   │   ├── wedding/        # Wedding CRUD\n│   │   │   └── rsvp.ts         # RSVP submission\n│   │   ├── builder.astro       # Admin builder page\n│   │   ├── [slug].astro        # Dynamic wedding pages\n│   │   └── index.astro         # Landing page\n│   └── styles/\n│       └── global.css          # Global styles\n├── prisma/\n│   └── schema.prisma           # Database schema\n├── public/                     # Static assets\n├── docs/\n│   └── PRD.md                  # Product Requirements\n├── astro.config.mjs            # Astro configuration\n├── tailwind.config.js          # Tailwind configuration\n└── package.json\n```\n\n## 🎨 Key Features Implementation\n\n### Background Music\n\n- Upload audio files (MP3, WAV, M4A, OGG) via Cloudinary\n- Automatic playback on user interaction (envelope opening)\n- Floating music player with play/pause and mute controls\n- Displays song title and artist\n\n### Envelope Animation\n\n- Beautiful entrance animation for guest pages\n- Personalized greeting with guest name\n- Smooth transition to main content\n- Framer Motion powered animations\n\n### RSVP Management\n\n- Guest form with name, attendance, and dietary restrictions\n- Admin dashboard to view all responses\n- Quick stats (attending, declined)\n- CSV export functionality\n\n### Customization\n\n- Choose from 10 color palettes\n- Select heading and body fonts\n- Toggle sections on/off\n- Upload unlimited photos to gallery\n\n## 🔐 Security\n\n- Password-protected wedding sites (optional)\n- Server-side validation with Zod\n- Secure file uploads via Cloudinary\n- PostgreSQL with Prisma for data safety\n\n## 🌐 Deployment\n\nThis project can be deployed to any Node.js hosting platform:\n\n- **Vercel** (Recommended)\n- **Netlify**\n- **Railway**\n- **Render**\n\nMake sure to:\n\n1. Set up environment variables\n2. Configure PostgreSQL database\n3. Run migrations before deployment\n\n## 📖 Documentation\n\nFor detailed product requirements, see [PRD.md](./docs/PRD.md)\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📝 License\n\nMIT License - feel free to use this project for your own wedding or commercial purposes.\n\n## 💖 Created with Love\n\nBuilt with ❤️ for couples around the world.\n\n---\n\n**The Evermore** - Because every love story deserves a beautiful beginning.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannycahyo%2Fweddingly-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdannycahyo%2Fweddingly-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannycahyo%2Fweddingly-builder/lists"}