A festive Secret Santa party organizer with Christmas theme and snow animations.
- Create Secret Santa parties
- Automatic random assignment with no double-ups
- Set budget limits and gift criteria
- Secure unique guest links (no snooping!)
- Beautiful Christmas theme with snow animations
- Docker deployment ready
Create a .env file with your settings:
# Server port (default: 8003)
PORT=8003
# Base URL for generating guest links
# For local development:
BASE_URL=http://localhost:8003
# For production deployment:
BASE_URL=https://your-domain.comImportant: Set BASE_URL to your production domain when deploying, as this URL is used to generate the guest invitation links.
-
Build and run with Docker Compose:
docker-compose up --build
-
Access the app:
- Local URL:
http://localhost:8003
- Local URL:
-
Install dependencies:
npm install
-
Start the server:
npm start
-
For development:
npm run dev
-
Create a Party:
- Visit the main page
- Enter party name, budget (optional), and criteria (optional)
- Add guest names (minimum 2, include yourself if participating!)
- Click "Create Secret Santa Party"
-
Share with Guests:
- Copy the individual personal links for each guest
- Each person gets their own unique link
- The party creator uses their personal link just like everyone else
-
Guest Participation:
- Each person visits their unique personal link
- They immediately see who they're buying a gift for
- Assignments are kept secret and secure!
- Backend: Node.js with Express
- Frontend: HTML5, CSS3, JavaScript, Tailwind CSS
- Styling: Christmas theme with custom animations
- Deployment: Docker & Docker Compose
- Data Storage: In-memory (for demo purposes)
The app is configured to run on 0.0.0.0:8003 using Docker:
- Port: 8003
- Container Name: secret-santa-app
- Restart Policy: unless-stopped
For Production: Update the BASE_URL environment variable in docker-compose.yml to your actual domain before deploying.
- Uses file-based storage with automatic backups
- Parties and assignments persist between server restarts
- The assignment algorithm ensures no one gets themselves
- All assignments are generated once per party and saved
