2025-06-30 21:39:23 -04:00
2025-06-30 17:20:27 -04:00
2025-06-30 17:20:27 -04:00
2025-06-29 11:00:52 -04:00
2025-06-29 11:00:52 -04:00
2025-06-24 16:31:13 -04:00
2025-06-30 21:39:23 -04:00
2025-06-23 13:55:01 -04:00
2025-06-29 11:14:21 -04:00
2025-06-30 17:20:27 -04:00
2025-06-30 17:20:27 -04:00
2025-06-29 11:14:21 -04:00
2025-06-30 17:20:27 -04:00
2025-06-30 17:20:27 -04:00
2025-06-30 17:20:27 -04:00
2025-06-29 11:14:21 -04:00
2025-06-27 12:01:46 -04:00

Wedding and Event Planner

My goal for this project is to be an all-in-one self hosted event planner for major events such as weddings, bridal showers and engagement parties. Users will be able to spin this up as a single Docker container which will create the database and frontend.

Table of Contents

Planned Features

  • Account Creation
    • First time setup to create the admin user
    • Invite users via email (smtp) users can be COUPLE, PLANNER, GUEST
    • Create local accounts (no use of SMTP)
  • Creating and Editing custom events
    • Information about each event
      • Date/Time
      • Event type
      • Details
      • Location
    • Markdown supported notes
  • Guest book (contact information)
    • Ability to switch between table or card view
    • Add Guests to events
    • Invite guests via email
    • Create local account for guest
  • Managing RSVP lists
  • Guest accounts
  • Gift Registries
    • Ability for guests to mark an item as purchased
  • Task Management
  • Custom Theming

Possible Features

  • Budget Tracking
  • Vendor Tracking
  • Seating Charts
  • Calendar/Timeline Builder

Updates

6.24.25

  • added ability to invite users via email making use of a smtp server and nodemailer
    • inviteTokens added to db which are used to sign up and expire onDate and after use
  • added ability to create local users if you don't want to use smtp /admin/create-user
  • created user pages
  • added usernames to Users table
  • updated first time setup to include username creation

6.25.25

  • now able to see and edit event data from the individual event page

6.26.25

The Guest Book

  • added guest-book page, viewable by PLANNER and COUPLE accounts
    • db query is secure behind PLANNER and COUPLE auth sessions
  • added ability to add and edit guests to guest book
  • save guest infomation (name, email, phone, address, side (which side of the couple), notes)

6.28.25

RSVP List

  • add guests from GuestBook to any event
  • search GuestBook to add guests
  • change status of RSVP

6.29.25 Notes and Tasks

  • Markdown note field per event
  • Inline editing with live preview
  • Task list per event with due dates & completion toggle

Getting Started

This app is fully deployable with Docker or runnable in development with Node.

Development Mode

  1. Clone the repo
git clone https://github.com/briannelson95/wedding-planner.git
  1. Set your enviorment variables
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/wedding_planner
NEXTAUTH_SECRET=your-secret
NEXTAUTH_URL=http://localhost:3000
NEXT_PUBLIC_BASE_URL=http://localhost:3000

SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=your@email.com
SMTP_PASS=yourpassword
SMTP_FROM_NAME=Wedding Planner
SMTP_FROM_EMAIL=your@email.com
  1. Start the database
docker compose up -d db
  1. Migrate and Generate the Prima files
npx prisma migrate dev --name init
npx prisma generate
  1. Install dependencies and start app
npm install
npm run dev

Self-Hosted (Production) via Docker

  1. Copy .env.production Make a copy of your .env as .env.production and customize values.

  2. Update docker-compose.yml Already included in the repo here's what it does:

  • Runs a postgres:15 container
  • Builds the app from the Dockerfile
  • Runs migrations before starting the frontend
  1. Run the app
docker compose up --build

This will expose your instance at http://localhost:3000

Built With

  • NextJS 15
  • NextAuth
  • Prisma
  • TailwindCSS
  • PostgresDB
  • Docker

Ready to start planning your wedding or big event? Try it now or contribute ideas via GitHub Issues.

Description
A self hosted wedding and event planning application to stay organized
Readme 440 KiB
Languages
TypeScript 97%
CSS 2.6%
Dockerfile 0.2%
JavaScript 0.2%