About this plugin
Travel Steps Storyteller shows a trip on your own WordPress site as a map beside a day-by-day timeline. The route comes from your Dawarich location history, or from where your photos were taken. Photos come from Immich, or you upload them to the trip.
Visitors never reach Immich. WordPress fetches the photos and serves them itself, so Immich and the original files stay private.
Sync creates a draft step for every day with favourite photos. Each place you visited that day gets a heading and a Trip photos block. If you sync a day before you reach its next place, add that place yourself: insert the Trip place pattern from the block inserter, then click the place’s first photo in its Trip photos block.
You write each step in the block editor and publish it. On the trip page you can pin or hide a photo, or make one the cover. On a phone, press Edit photos first.
Favourites in Immich decide which photos a step shows. Every photo uploaded to a trip counts as a favourite. A step without favourites, such as one you add with Add step, gets an automatic pick spread across its day.
The rest of a day’s photos wait behind “Show N more photos”. Sync skips screenshots unless they’re favourites, and ignores star ratings.
Only published steps of published trips are public. Your home is kept off every map. Photos taken at home show without a place when you chose them for the trip, as uploads, in an Immich album, or as favourites; a trip of Immich photos picked by its dates leaves out the rest.
A step with no position, such as a day at home, shows on the timeline without a marker on the map.
A trip can also have a password. Logged-in users on its viewer lists see it without one. Its edit page gives a share link that opens it without the password, until the password changes.
Visitors can subscribe to a trip. Once a day, if new days or photos were published, they get one plain-text email listing them, with a link to unsubscribe.
Photos come from an Immich server your WordPress server can reach, or are uploaded to each trip, which needs PHP’s exif extension. Dawarich is optional. Authors and up can make trips, each with their own Immich and Dawarich API keys and home location.
A trip always uses its author’s keys.
External services
Travel Steps connects to three services, and sends nothing anywhere else. Leaflet, the map library, ships with the plugin.
OpenStreetMap map tiles
org ). The visitor’s browser requests the tiles directly. So the OpenStreetMap Foundation receives the visitor’s IP address, browser user agent, the trip page’s address (as the referrer) and which part of the map they view.
This happens whenever someone opens a trip page. Map data © OpenStreetMap contributors.
- Tile usage policy
- Terms of use
- Privacy policy
Dawarich (your own server, optional)
If you set up Dawarich, syncing a trip makes your WordPress server ask your Dawarich server for the location points between the trip’s dates. It sends the trip author’s Dawarich API key and the date range. Nothing is sent to Dawarich at any other time, and visitors never contact it.
Dawarich is self-hosted software, so its terms and privacy are those of whoever runs that server. app.
Immich (your own server)
Syncing a trip makes your WordPress server ask your Immich server for the photos taken during the trip, or in the album you chose. It sends the trip author’s Immich API key and the date range or album id. The trip edit page also lists the author’s Immich albums, and only the author sees them.
Your WordPress server fetches the photos on trip pages from Immich and serves them from your site, so visitors never contact Immich. After a sync, or a change to which photos a trip shows, your server also fetches every photo visitors can see on the trip in the background, using the trip author’s key, and keeps a copy. That way the trip keeps working without Immich, unless an administrator sets cached photos to be deleted after a number of days.
A photo deleted that way is fetched from Immich again when someone next views it. Immich is self-hosted software, so its terms and privacy are those of whoever runs that server. app.
Credits
0. The plugin ships towns of 500 people or more, and country names, trimmed to names, countries and positions. Most neighbourhoods and historical places are left out, and Paris’s and Marseille’s arrondissements are named after their city.
Because the names ship with the plugin, naming a place sends nothing anywhere.