Releases: jacoknapp/EternalVows
v1.1.1 - Branching issue, caused the last tag to be a repeat of main
v1.1.0 - Yaml and RSVP Stable
This one switch the default config file to be yaml. Json is still allowed and takes priority but yaml is just a little easier to understand.
Also added the RSVP section
v1.0.6 - Bugfix: Wait for new image to exist locally before transitioning to it
Merge pull request 'slight change on the transitioning timing, wait f…
v1.0.5 - Improve iOS safari support
This one is straight forward, trying to make the site look its best in iOS
v1.0.4 - Making things a bit more reactive
This release is to add a bit more dynamic resizing to the initial title screen to allow for dynamic loading of names
v1.0.3 - Photo Description upgrade/revert to lts
Alpine builds didn't work correctly, so we are back to the normal lts version of debian
v1.0.1 - Layout changes, and multiple venues
This Release allows people to have more than one location for their wedding.
v1.0.0 - Eternal Vows - Initial Release
Eternal Vows is a customizable, self‑hosted wedding website template for sharing all event details in one elegant page. It’s config‑driven (no rebuild needed for content changes) and includes a dynamic background slideshow that auto‑refreshes as new photos are added.
Highlights
- Single‑page site with clean, modern typography and smooth in‑page navigation
- Config‑driven content via
config/config.json(names, date, venue, schedule, registry, FAQs, colors) - Dynamic background slideshow from
config/photos(hot‑reloads the list) - Node + Express server with
/api/photosfor live image listing - Docker/Compose friendly for easy deployment
- Favicon generator script included
Quick start
Node (Windows PowerShell):
npm install
node .\server.mjs
# then open http://localhost:5500
# optional:
$env:PORT=8080; node .\server.mjsDocker (Windows PowerShell):
docker build -t ghcr.io/jacoknapp/eternalvows:latest .
docker run --rm -p 5500:5500 -v ${PWD}\config:/app/config ghcr.io/jacoknapp/eternalvows:latestConfigure content
- Edit
config/config.json(all fields optional). Common keys:coupleNames,dateDisplay,locationShort,story,schedule[],venue,photoUpload,registry[],faqs[],slideshow,ui. - Place slideshow images in
config/photos/(.jpg,.jpeg,.png,.webp,.avif).
API
- GET
/api/photos→{ files: string[] }fromconfig/photos/.
What’s included
index.html,server.mjs,config/,favicon/,scripts/generate_favicons.mjs- Dockerfile and optional CI workflow at
.github/workflows/docker.yml
Notes
- Requires Node 18+ if not using Docker.