React启动器

wedding-invite — React 启动器模板

作者 kbichave

基于 React 与 Tailwind CSS 的婚礼邀请网站模板,通过 Google Sheets 与 Google Drive 存储祝福和照片,支持 RSVP、活动展示与多文化婚礼配置。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

1 个预览视图
作者提供的预览
作者提供的预览首屏预览

来自项目 README 的原始预览。

目前有 1 张原始预览,可打开完整图片查看设计细节。

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-02查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

React 与 Tailwind CSS 构建,页面模块通过 siteConfig.js 中的开关启用或禁用

02

祝福留言写入 Google Sheets,宾客上传照片存入 Google Drive 并在画廊中展示

03

提供 RSVP、活动列表、婚礼团队、礼物登记、旅行住宿、FAQ 与时间线等页面

04

预置 Hindu 与 Christian 婚礼的活动与术语配置,并支持自定义婚礼类型

05

提供 env.example.txt 与逐步的 Google Cloud、Sheets、Drive 配置说明

模板详细介绍

这是一个用 React 和 Tailwind CSS 构建的婚礼邀请网站模板,采用 ISC 许可发布,可自行部署。模板将祝福留言存入 Google Sheets,将宾客上传的照片存入 Google Drive,并提供 RSVP、活动展示、照片画廊、婚礼团队、礼物登记、旅行住宿、FAQ 和关系时间线等页面模块。所有功能模块在 src/siteConfig.js 中通过开关控制,默认全部启用。模板预置了 Hindu 和 Christian 两种婚礼类型的活动与术语配置,也支持自定义婚礼类型。内容与图片路径集中在 siteConfig.js 中修改,样式基于 Tailwind CSS 调整。使用前需要自行准备 Google Cloud 服务账号并配置 Drive 与 Sheets API,部署可选用 Netlify。模板本身不包含后端服务,数据存储依赖上述 Google 服务,第三方素材的许可需单独核对。

React启动器

适合你的项目吗?

适用场景

  • 希望自行托管婚礼邀请网站并收集宾客 RSVP 与祝福留言的准新人
  • 需要宾客上传婚礼现场照片并集中展示在画廊中的场景
  • 想以 Hindu 或 Christian 婚礼流程为起点快速搭建活动页面的用户
  • 需要按模块开关裁剪页面、只保留部分功能的定制需求

适合人群

  • 具备基本 React 与 npm 使用经验、能按文档配置环境变量的开发者
  • 接受使用 Google Sheets 与 Google Drive 作为数据存储的部署方式
  • 需要免费、可自行部署的婚礼邀请网站模板的个人项目

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Node.js 环境,克隆仓库后执行 npm install,并通过 npm start 在本地启动开发服务器

  2. 2

    需在 Google Cloud Console 创建项目、启用 Drive 与 Sheets API,并创建服务账号与 JSON 密钥

  3. 3

    将 Google Drive 文件夹和 Google Sheets 表格共享给服务账号邮箱并授予编辑权限

  4. 4

    复制 env.example.txt 为 .env,填入 GOOGLE_SERVICE_ACCOUNT_JSON、GOOGLE_DRIVE_FOLDER_ID、GOOGLE_SPREADSHEET_ID 等变量,且不要提交 .env

  5. 5

    部署到 Netlify 时需在站点设置中添加相同的环境变量,构建命令为 npm run build,发布目录为 build

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 ISC 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许为任何目的免费使用、复制、修改和分发,包括商用。
  • 所有副本均需保留原版权声明和许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 使用该模板需拥有 Google 账号,用于 Google Drive 与 Google Sheets 存储数据。
  • 部署托管需要 Netlify 账号,模板本身不提供后端托管服务。
  • 需在 Google Cloud Console 创建项目并启用 Google Drive API 与 Google Sheets API,否则照片上传与祝福留言功能无法使用。
  • 必须创建 Google Cloud 服务账号并生成 JSON 密钥,用于访问 Drive 与 Sheets。
  • 需将 Google Drive 文件夹与 Google Sheets 表格共享给服务账号邮箱并授予编辑权限,否则读写会失败。
  • 必须在 .env 中配置 GOOGLE_SERVICE_ACCOUNT_JSON 等环境变量,模板依赖这些外部凭据才能运行。
  • 照片画廊正常显示要求将 Google Drive 文件夹设为“任何拥有链接的人”可查看,涉及公开分享设置。
  • 自定义域名需自行付费(约每年 10-15 美元),非必需但属于额外成本。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 ISC 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

for any purpose with or without fee is hereby granted

许可证原文

A Google account (FREE) - for Drive and Sheets

README 原文

A Netlify account (FREE) - for hosting

README 原文

Enable API access for Drive and Sheets

README 原文

Create Service Account:

README 原文

Share Folders/Sheets with Service Account

README 原文

GOOGLE_SERVICE_ACCOUNT_JSON={"type":"service_account","project_id":"your-project",...}

README 原文

Make sure your Google Drive folder is shared with "Anyone with the link" (Viewer permission) for photos to display properly

README 原文

Custom Domain (optional) - ~$10-15/year (not required)

README 原文
https://github.com/kbichave/wedding-invite/blob/main/LICENSEhttps://github.com/kbichave/wedding-invite/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料一般 · 71 / 100
技术栈
React
网站类型
启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2025-12-12
截图检查日期
2026-10-02

目前没有记录演示链接。请依据仓库说明在本地评估;仅凭截图无法确认交互行为。

目录记录的主要技术栈是 React。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。

查看当时使用的来源资料

SHA-256: 58636cb0d769e8420dfa28d79f6e9d60611e90da0b4eeb20913b419607b4fe9e

2026-10-02T08:53:39.542Z

来源文件 / 仓库
# Wedding Invite Website - Free & Open Source Template

A beautiful, fully customizable wedding website template built with React and Tailwind CSS. **100% FREE** - no credit card required! Perfect for couples who want to share their special day with guests through a modern, self-hostable web application.

## ✨ Features

- 🎨 **Beautiful, Modern UI** - Apple-inspired design that looks great on all devices
- 📸 **Photo Upload & Gallery** - Guests can upload photos and view them in the gallery (stored in Google Drive - FREE, automatically displayed)
- 💌 **Blessings & Messages** - Collect heartfelt messages (stored in Google Sheets - FREE)
- 📅 **Event Management & RSVP** - Display multiple events with RSVP functionality
- 📖 **Our Story** - Share your love story with customizable sections
- 👥 **Wedding Party** - Showcase bridesmaids and groomsmen
- 🎁 **Registry** - Link to gift registries and cash funds
- ✈️ **Travel & Accommodation** - Share hotel info and travel details
- ❓ **FAQ** - Answer common questions
- ⏱️ **Timeline** - Show relationship milestones
- 🌍 **Multi-Cultural Support** - Pre-configured for Hindu and Christian weddings
- ⚙️ **Fully Configurable** - Enable/disable features, customize everything
- 🚀 **Free Deployment** - Deploy to Netlify (FREE tier)

## 📸 Screenshots

### Homepage
![Homepage](screenshots/homepage.png)

### Our Story
![Our Story](screenshots/our-story.png)

### Events & RSVP
![Events & RSVP](screenshots/events.png)

### Photo Gallery
![Photo Gallery](screenshots/photo-gallery.png)

### Upload Photos
![Upload Photos](screenshots/upload-photos.png)

### Blessings
![Blessings](screenshots/blessings.png)

### Wedding Party
![Wedding Party](screenshots/wedding-party.png)

### Registry
![Registry](screenshots/registry.png)

### Travel & Accommodation
![Travel & Accommodation](screenshots/travel.png)

### FAQ
![FAQ](screenshots/faq.png)

### Timeline
![Timeline](screenshots/timeline.png)

## 🎯 Quick Start

### Prerequisites

- Node.js (v14 or higher) - [Download here](https://nodejs.org/)
- A Google account (FREE) - for Drive and Sheets
- A Netlify account (FREE) - for hosting

**That's it! No credit card needed for any service.**

### Installation

1. **Clone the repository**
   ```bash
   git clone <your-repo-url>
   cd wedding-invite
   ```

2. **Install dependencies**
   ```bash
   npm install
   ```

3. **Configure your site**
   - Edit `src/siteConfig.js` to customize all content
   - Copy `env.example.txt` to `.env` and add your secrets (see setup guide below)

4. **Start the development server**
   ```bash
   npm start
   ```
   The app will open at `http://localhost:3000`

## 📋 Feature Toggle Guide

All features are **enabled by default**. To disable any feature, edit `src/siteConfig.js`:

```javascript
features: {
  homepage: { enabled: true, label: "Home" },
  ourStory: { enabled: true, label: "Our Story" },
  events: { enabled: true, label: "Events & RSVP" },
  photoGallery: { enabled: true, label: "Photo Gallery" },
  uploadPhotos: { enabled: true, label: "Upload Photos" },
  blessings: { enabled: true, label: "Blessings" },
  weddingParty: { enabled: true, label: "Wedding Party" },
  registry: { enabled: true, label: "Registry" },
  travel: { enabled: true, label: "Travel & Accommodation" },
  faq: { enabled: true, label: "FAQ" },
  timeline: { enabled: true, label: "Timeline" },
}
```

**To disable a feature:** Change `enabled: true` to `enabled: false`

## 🎭 Wedding Type Configuration

The template supports multiple wedding traditions. Set your wedding type in `src/siteConfig.js`:

```javascript
weddingType: "hindu", // Options: "hindu", "christian", "custom"
```

### Hindu Wedding
- Pre-configured events: Engagement, Haldi, Mehndi, Sangeet, Baraat, Vidhi, Reception
- Traditional terminology and dress codes
- See `src/examples/hindu-wedding-config.js` for example

### Christian Wedding
- Pre-configured events: Rehearsal Dinner, Ceremony, Cocktail Hour, Reception, After Party
- Church-friendly content
- See `src/examples/christian-wedding-config.js` for example

### Custom Wedding
- Create your own event list
- Fully customizable for any tradition or style

## 🔐 FREE Setup Guide - Step by Step

### Step 1: Google Sheets Setup (FREE)

**Purpose:** Store blessings/messages and RSVP data

1. Go to [Google Sheets](https://sheets.google.com/)
2. Create a new spreadsheet
3. Name it "Wedding Blessings" (or any name you prefer)
4. Add headers in row 1 (optional but recommended):
   - Column A: `Name`
   - Column B: `Email`
   - Column C: `Message`
   - Column D: `Timestamp`
5. Copy the Spreadsheet ID from the URL:
   ```
   https://docs.google.com/spreadsheets/d/SPREADSHEET_ID_HERE/edit
   ```
   The part after `/d/` and before `/edit` is your Spreadsheet ID
6. Save this ID - you'll need it later

**Cost:** FREE (unlimited spreadsheets)

### Step 2: Google Drive Setup (FREE)

**Purpose:** Store uploaded photos

1. Go to [Google Drive](https://drive.google.com/)
2. Create a new folder (name it "Wedding Photos" or similar)
3. Open the folder
4. Copy the Folder ID from the URL:
   ```
   https://drive.google.com/drive/folders/FOLDER_ID_HERE
   ```
   The part after `/folders/` is your Folder ID
5. Save this ID - you'll need it later

**Cost:** FREE (15GB free storage - more than enough for wedding photos)

### Step 3: Google Cloud Setup (FREE - No Billing Required)

**Purpose:** Enable API access for Drive and Sheets

1. Go to [Google Cloud Console](https://console.cloud.google.com/)
2. Sign in with your Google account
3. **Create a new project:**
   - Click the project dropdown at the top
   - Click "New Project"
   - Name it "Wedding Website" (or any name)
   - Click "Create"
   - **Important:** No billing account needed - click "Skip" if asked
4. **Enable APIs:**
   - Go to "APIs & Services" > "Library"
   - Search for "Google Drive API" and click "Enable"
   - Search for "Google Sheets API" and click "Enable"
5. **Create Service Account:**
   - Go to "IAM & Admin" > "Service Accounts"
   - Click "Create Service Account"
   - Name: "wedding-website" (or any name)
   - Click "Create and Continue"
   - Skip role assignment (click "Continue")
   - Click "Done"
6. **Create Key:**
   - Click on your newly created service account
   - Go to "Keys" tab
   - Click "Add Key" > "Create new key"
   - Choose "JSON" format
   - Click "Create"
   - The JSON file will download automatically
7. **Get Service Account Email:**
   - In the service account details, copy the email address (looks like `[email protected]`)
   - You'll need this to share folders/sheets

**Cost:** FREE (free tier includes more than enough API calls for a wedding website)

### Step 4: Share Folders/Sheets with Service Account

1. **Share Google Drive Folder:**
   - Open your Google Drive folder
   - Click "Share"
   - Paste your service account email
   - Give it "Editor" permissions
   - Click "Send"

2. **Share Google Sheet:**
   - Open your Google Sheet
   - Click "Share"
   - Paste your service account email
   - Give it "Editor" permissions
   - Click "Send"

### Step 5: Configure Environment Variables

1. Copy `env.example.txt` to `.env`:
   ```bash
   cp env.example.txt .env
   ```

2. Open `.env` and fill in your values:

   **GOOGLE_SERVICE_ACCOUNT_JSON:**
   - Open the JSON file you downloaded from Google Cloud
   - Copy the ENTIRE contents (it's one long line)
   - Paste it in `.env` after the `=` sign
   - Example:
     ```
     GOOGLE_SERVICE_ACCOUNT_JSON={"type":"service_account","project_id":"your-project",...}
     ```

   **GOOGLE_DRIVE_FOLDER_ID:**
   - Paste the folder ID you saved from Step 2
   - Example:
     ```
     GOOGLE_DRIVE_FOLDER_ID=ABC123XYZ789
     ```

   **GOOGLE_SPREADSHEET_ID:**
   - Paste the spreadsheet ID you saved from Step 1
   - Example:
     ```
     GOOGLE_SPREADSHEET_ID=XYZ789ABC123
     ```

   **REACT_APP_RSVP_API_URL:**
   - Leave empty if not using Google Apps Script
   - Or add your Google Apps Script URL if you have one

3. Save the `.env` file

**Important:** Never commit your `.env` file to git! It's already in `.gitignore`.

### Step 6: Test Locally

1. Start the development server:
   ```bash
   npm start
   ```

2. Test the features:
   - Upload a photo (should appear in your Google Drive folder)
   - Check Photo Gallery page - uploaded photos should appear there
   - Submit a blessing (should appear in your Google Sheet)
   - Check RSVP functionality

**Important for Photo Gallery:**
- Uploaded photos will automatically appear in the Photo Gallery
- Make sure your Google Drive folder is shared with "Anyone with the link" (Viewer permission) for photos to display properly
- Or share each uploaded file individually with "Anyone with the link"
- You can disable showing uploaded photos by setting `showUploadedPhotos: false` in `siteConfig.js`

## 🚀 FREE Deployment to Netlify

### Option 1: Deploy via Netlify Dashboard (Easiest)

1. **Push your code to GitHub:**
   - Create a GitHub repository
   - Push your code (make sure `.env` is NOT committed)

2. **Connect to Netlify:**
   - Go to [Netlify](https://www.netlify.com/)
   - Sign up/login (FREE)
   - Click "Add new site" > "Import an existing project"
   - Connect to GitHub
   - Select your repository

3. **Configure Build Settings:**
   - Build command: `npm run build`
   - Publish directory: `build`
   - Click "Deploy site"

4. **Add Environment Variables:**
   - Go to Site Settings > Environment Variables
   - Add each variable from your `.env` file:
     - `GOOGLE_SERVICE_ACCOUNT_JSON` (paste the entire JSON)
     - `GOOGLE_DRIVE_FOLDER_ID`
     - `GOOGLE_SPREADSHEET_ID`
     - `REACT_APP_RSVP_API_URL` (if using)

5. **Redeploy:**
   - Go to Deploys tab
   - Click "Trigger deploy" > "Clear cache and deploy site"

6. **Your site is live!**
   - Netlify will give you a URL like `your-site.netlify.app`
   - You can add a custom domain (FREE) in Site Settings > Domain Management

**Cost:** FREE (Netlify free tier includes 100GB bandwidth/month - more than enough)

### Option 2: Deploy via Netlify CLI

```bash
# Install Netlify CLI
npm install -g netlify-cli

# Login to Netlify
netlify login

# Deploy
netlify deploy --prod
```

## 📝 Configuration Guide

### Site Content (`src/siteConfig.js`)

All customizable content is in `src/siteConfig.js`. Edit this file to personalize:

- **Couple Information:** Names, display name, photos
- **Wedding Date:** For countdown timer
- **Homepage:** Title, subtitle, call-to-action
- **Our Story:** Partner stories, how we met, proposal, milestones
- **Events:** Event details, dates, venues, maps, dress codes
- **Wedding Party:** Bridesmaids and groomsmen
- **Registry:** Gift registries and cash funds
- **Travel:** Hotels, transportation, local attractions
- **FAQ:** Common questions and answers
- **Timeline:** Relationship milestones

### Example Configurations

See `src/examples/` folder for:
- `hindu-wedding-config.js` - Hindu wedding template
- `christian-wedding-config.js` - Christian wedding template
- `minimal-config.js` - Minimal setup template

## 🎨 Customization

### Adding Your Photos

1. Replace placeholder images in `public/images/`:
   - `partner1.svg` → Your photo
   - `partner2.svg` → Your photo
   - `photo1.svg` through `photo4.svg` → Your memory photos
   - `homage_page_background.png` → Your background image

2. Update image paths in `src/siteConfig.js` if using different filenames

### Styling

The project uses Tailwind CSS. Customize styles by:
- Editing component files directly
- Modifying `tailwind.config.js` for theme customization
- Adding custom CSS in `src/index.css`

## 📊 Understanding Your Data

### Google Sheets Structure

Your blessings will be stored with columns:
- **Name:** Guest's name
- **Email:** Guest's email
- **Message:** Their blessing/message
- **Timestamp:** When it was submitted

### Google Drive Structure

Uploaded photos will be stored in your specified folder with:
- Original filename
- Upload timestamp
- Any captions (if enabled)

## 🔧 Troubleshooting

### Google API Errors

- **"Permission denied":** Ensure service account has Editor access to Drive folder and Sheet
- **"Invalid credentials":** Check that `GOOGLE_SERVICE_ACCOUNT_JSON` is valid JSON (one line, no breaks)
- **"Folder not found":** Verify `GOOGLE_DRIVE_FOLDER_ID` is correct (from URL after `/folders/`)
- **"Spreadsheet not found":** Verify `GOOGLE_SPREADSHEET_ID` is correct (from URL after `/d/`)

### Build Errors

- **Module not found:** Run `npm install`
- **Environment variables not loading:** 
  - Ensure `.env` file exists in root directory
  - For Netlify: Add variables in dashboard, not `.env` file
  - Variable names must match exactly (case-sensitive)

### Deployment Issues

- **Netlify functions not working:** Check environment variables are set in Netlify dashboard
- **Photos not uploading:** Verify `GOOGLE_DRIVE_FOLDER_ID` and service account permissions
- **Blessings not saving:** Verify `GOOGLE_SPREADSHEET_ID` and service account permissions

## 💰 Cost Breakdown

**Everything is FREE:**

- ✅ Google Account - FREE
- ✅ Google Drive (15GB) - FREE
- ✅ Google Sheets (unlimited) - FREE
- ✅ Google Cloud APIs (free tier) - FREE
- ✅ Netlify Hosting (100GB bandwidth/month) - FREE
- ✅ Custom Domain (optional) - ~$10-15/year (not required)

**Total Cost: $0** (or ~$10-15/year if you want a custom domain)

## 📚 Additional Resources

- [Google Cloud Console](https://console.cloud.google.com/)
- [Google Drive](https://drive.google.com/)
- [Google Sheets](https://sheets.google.com/)
- [Netlify Documentation](https://docs.netlify.com/)
- [React Documentation](https://react.dev/)
- [Tailwind CSS Documentation](https://tailwindcss.com/)

## 🤝 Contributing

Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to contribute.

## 📄 License

ISC License - feel free to use this template for your wedding website!

## 💬 Support

For issues and questions, please open an issue on GitHub.

---

Made with ❤️ for couples celebrating their special day

**Remember:** This entire setup is FREE. No credit card required. No hidden costs. Just follow the steps above and you'll have a beautiful wedding website in no time!
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。