You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Eternal Vows is a customizable, self‑hosted wedding website template for sharing all of your event information in one place. Configure names, date, location, story, schedule, venue details (with map), registry links, FAQs, and optional photo‑sharing links via a simple JSON file—no rebuild required. A lightweight Node + Express server powers a dynamic background slideshow that auto‑refreshes as you add images. Run locally with Node or deploy easily with Docker/Compose.
3
+
Eternal Vows is a customizable, self‑hosted wedding website template for sharing all of your event information in one place. Configure names, date, location, story, schedule, venue details (with map), registry links, FAQs, and optional photo‑sharing links via a simple YAML file—no rebuild required. JSON is also supported. A lightweight Node + Express server powers a dynamic background slideshow that auto‑refreshes as you add images. Run locally with Node or deploy easily with Docker/Compose.
4
4
5
5
## Features
6
6
- Clean, modern single-page design with elegant typography
@@ -19,9 +19,9 @@ Below are screenshots of the default layout to help visualize the sections and s
19
19

20
20
21
21
## Project structure
22
-
-`index.html` — UI, styling, and client JS (loads details from `config/config.json`)
22
+
-`index.html` — UI, styling, and client JS (loads details from `config/config.yaml`)
23
23
-`server.mjs` — Express server and `/api/photos` endpoint
24
-
-`config/config.json` — Site content (names, date, venue(s), etc.)
24
+
-`config/config.yaml` — Site content (names, date, venue(s), etc.)
25
25
-`config/photos/` — Background slideshow images
26
26
-`.github/workflows/docker.yml` — Optional CI to build/push a container image
27
27
@@ -48,7 +48,10 @@ $env:PORT=8080; npm start
48
48
```
49
49
50
50
## Configure content
51
-
Edit `config/config.json`. All fields are optional; unset sections/buttons are hidden automatically.
51
+
Edit `config/config.yaml`. All fields are optional; unset sections/buttons are hidden automatically.
52
+
53
+
Notes:
54
+
- JSON is also supported at `config/config.json`. If both YAML and JSON exist, JSON takes precedence.
52
55
53
56
-`coupleNames`: Display names for the hero section
54
57
-`dateDisplay`: Friendly wedding date string
@@ -61,6 +64,10 @@ Edit `config/config.json`. All fields are optional; unset sections/buttons are h
notes: "Valet available. Dinner served at 6:00 PM."
157
213
```
158
214
159
215
## Photos (background slideshow)
@@ -210,7 +266,7 @@ services:
210
266
## Troubleshooting
211
267
- Server exits immediately (code 1):
212
268
- Run `npm install` first to ensure dependencies are present.
213
-
- Check the terminal error message; ensure `config/config.json` is valid JSON.
269
+
- Check the terminal error message; ensure `config/config.yaml` is valid YAML (or JSON if using JSON).
214
270
- Ensure the `config/` and `config/photos/` folders exist and are readable.
215
271
- Port already in use? Set a different `PORT` or stop the other process.
216
272
- Photos don’t appear:
@@ -222,7 +278,7 @@ services:
222
278
- Ensure Node 18+ and a stable internet connection during install.
223
279
224
280
## Privacy notes
225
-
Keep private details out of version control. The provided `config/config.json` has placeholders—replace them locally or configure secrets in your deployment environment.
281
+
Keep private details out of version control. The provided `config/config.yaml` has placeholders—replace them locally or configure secrets in your deployment environment. JSON is also supported if preferred.
0 commit comments