MATCHING TRIPS — {{ bulkCount }} · click one to preview it
{{ bp.name }}{{ bp.dates }}
Owner
Notes
Visit type
{{ c.label }}
Trip type
{{ c.label }}
Travelers
{{ c.label }}
Sharing
{{ c.label }}
Apply these changes to {{ bulkCount }} trip(s)? This can't be undone.
{{ bt.name }}
SITE ADMINISTRATION
Audit log detail
{{ auditLevelHint }}
Per-family category limit
Max items a family's custom Visit Type / Trip Type / Status list can hold.
Disable all email notifications
Turning this OFF sets every family's Email toggle to off and locks it (no family can turn it back on). Turning this back ON only unlocks the toggles — it doesn't force any family's setting back on; each family keeps whatever they last had and can choose for themselves. Toasts and the Activity Log still work either way.
Default notifications for new families
Applied once, at creation time, to every brand-new family. Doesn't change existing families — those are edited per-family in My Families → Notifications.
{{ dnr.label }}
PRIMARY ADMIN(S)
{{ primaryAdminEmailsText }}
ADDITIONAL SITE ADMINS
{{ sa.email }}
SORT
YEAR
TRIP
STATUS
VISIT TYPE
TRAVELER
Applies on top of whichever theme you pick below.
🔒 An admin has locked the theme for everyone.
When on, everyone sees your current Dark/Light + theme pick and can't change it themselves.
Rename, recolour, add or remove the options used across the form, filters, and globe.
{{ grp.title }}
ACCESS REQUESTS
Where "Request access" messages from the sign-in screen are sent. Also shown there so people can email you directly.
SEND REQUESTS TO
DATA & STORAGE
App settings JSON
All trips data JSON
Local uses a separate dataset stored only in this browser — your Cloud trips won't show here. Your cloud data is not deleted; switch back to Cloud anytime to see it again.
The cloud has no trips yet, but this device has {{ cloudSeedCount }}. Upload them to the cloud, or keep the cloud empty? Nothing is sent until you choose.
Local stays on this device. Cloud syncs to Azure and requires sign-in.
Fetched {{ reloadCount }} trip{{ reloadCountPlural }} from the cloud. You currently have {{ reloadLocalCount }} in view. Merge keeps both (cloud wins on duplicates). Overwrite replaces your view. Cancel to export or review first.
{{ cloudMsg }}
Not connected — the /api backend isn't responding. If you've deployed to Azure, the Functions API may not be linked (set api_location: "api" in the deploy workflow). See the Deploy guide.
Diagnostic: {{ cloudDiag }}
Delete all destinations? A dated backup file downloads automatically first.
INCLUDE
Data
↳ Include photos · .zip
Settings
INCLUDE THESE USERS · everyone on by default
{{ storageMsg }}
A linked file auto-saves on every change. Export/Restore works anywhere.
MY BACKUP
Just your own trips, photos and settings — never touches anyone else's data.
This backup has {{ myBackupTotal }} trip{{ myBackupTotalPlural }} — {{ myBackupNewCount }} new, {{ myBackupDupeCount }} already here. Overwrite deletes all your current trips first, then restores from this file. Merge adds the new ones and asks about each duplicate.
This deletes all {{ myBackupCurrentMineCount }} of your current trips and replaces them with this backup's {{ myBackupTotal }}. Other users' trips are never touched. This can't be undone.
{{ myBackupNewCount }} new trip{{ myBackupTotalPlural }} will be added. For each duplicate below, choose which version to keep:
{{ d.label }}
PEOPLE & FAMILIES
My Family Management
Site Management
Pending Actions{{ famMgmtPendingCount }}
MY FAMILIES
{{ f.name }}
{{ f.roleLabel }} · pending
You're not in a family yet. Create one below, or ask someone to invite you.
Site User Management
Site Family Management
Site User Management
Everyone you can tag on a trip. Give a person an email to let them sign in — then a role and presence appear. People without an email are just names you can pick.
FAMILY
{{ p.headerLabel }}
{{ p.label }}
{{ p.emailText }}
{{ p.statusLabel }}{{ p.roleLabel }}
Trips owned{{ p.statsOwned }}
Countries visited{{ p.statsCountries }}
Thumbnails{{ p.statsPhotos }}
Tagged in other trips{{ p.statsTagged }}
{{ p.statsTaggedText }}
By year: {{ p.statsByYearText }}
ROLE
FAMILY
OWNED BY
This is the last active admin — can't be deactivated or deleted.
{{ p.deleteBlockedMsg }}
Pending Actions
ACCESS REQUESTS · {{ accessRequestCount }}
{{ r.email }}{{ r.whenText }}
No access requests pending.
PENDING FAMILY APPROVAL
{{ pf.name }}
No family requests pending.
{{ activeFamilyName }}
{{ activeFamilyName }}
WELCOME — LET'S GET YOU SET UP
We created this family for you and made you its admin. Give it a name above, then add the rest of your family below — invite by email or share an invite link.
A family owns its own trips and travelers. Members share access at reader, editor or admin level.
ATTACHMENTS & STORAGE
{{ attachStorageCount }}
files
{{ attachStorageSize }}
used, 25MB max per file
{{ a.name }} · {{ a.place }}{{ a.sizeLabel }}
COLOR
LOGO
Photo uploads for this family
{{ familyImageUploadsHint }}
OWNER · {{ ownerLabel }}
TRIP PERMISSIONS
Who can edit this family's trips
Owner/admin always can. Only this family's editors — shared families never get edit rights.
Who can manage attachments
Uploading/removing tickets & docs on this family's trips.
Attachments visible to shared families
Turn off to keep tickets & docs private to this family only.
Who can comment
Applies to this family's own members only — shared families can still comment.
Shared families can edit itinerary
Itinerary always follows the trip's own sharing tier and is never public — this only controls whether shared families may edit it, not just view it.
Any family member can delete this family's trips
By default only admins can delete any trip; editors can only delete trips they created. Off by default.
Shared families can delete this family's trips
Off by default — shared families never get delete rights unless explicitly turned on here.
{{ deletePermSummary }}
Give this family its own Visit Type, Trip Type, or Status lists — otherwise they inherit the site-wide defaults.
"{{ catRemoveWarnLabel }}" is used on {{ catRemoveWarnCount }} trip(s). Reassign them first, or remove anyway and those trips will just show the raw value.
{{ rt.place }}
Reassign to
{{ catRevertWarnHeadline }}
"{{ ci.label }}" — used on {{ ci.count }} trip(s):
{{ ct.place }}
Reassign to
{{ cs.title }}
{{ cs.itemCountLabel }}
Inheriting the site default ({{ cs.siteCount }} items).
Choose how this family hears about its own events — a live toast for whoever's online, a persisted entry in the Audit tab, and/or a courtesy email to the family's admins. All three default to on.
{{ nr.label }}
{{ nr.desc }}
Bulk-edit this family's own trips only — tick the fields to change, then confirm.
{{ bulkCount }} trip(s) in {{ activeFamilyName }}
NARROW DOWN THE TRIPS
{{ c.label }}
{{ c.label }}
{{ c.label }}
MATCHING TRIPS — {{ bulkCount }} · click one to preview it
{{ bp.name }}{{ bp.dates }}
Owner
Notes
Visit type
{{ c.label }}
Trip type
{{ c.label }}
Travelers
{{ c.label }}
Sharing
{{ c.label }}
Apply these changes to {{ bulkCount }} trip(s)? This can't be undone.
Invite another member first to be able to transfer ownership to them.
PEOPLE IN {{ activeFamilyName }}
{{ p.label }}
{{ p.emailText }}
{{ p.statusLabel }}{{ p.roleLabel }}
ROLE
FAMILY
OWNED BY
This is the last active admin — can't be deactivated or deleted.
{{ p.deleteBlockedMsg }}
INVITE SOMEONE
Role applies to both options below
By email
Grants access the moment they sign in with this email — no email is actually sent.
Requires an email service configured on the server (Resend). Access is granted either way.
By shareable link
Expires in 7 days · single use · grants {{ inviteRole }} when opened.
Share this with anyone — no email address needed up front. 7-day expiry, single use.
DANGER ZONE
Share this family's trips with another family, or see who's shared with you.
FAMILIES THAT CAN SEE OURS
{{ sh.label }}
No other family can see ours yet.
FAMILIES WE CAN SEE
Granted by them — only they can revoke it.
{{ sh.label }}
No other family has shared with us yet.
Site Family Management
Auto-approve new families
Photo uploads (site-wide default)
Families can still override this for themselves below.
"Public" sharing tier (everyone signed in)
Off hides the Public option in every trip's permissions and quietly downgrades any trip currently set to it.
ALL FAMILIES
{{ af.label }}
ASSIGN A PERSON TO A FAMILY
{{ travelersMigratedBadgeLabel }}
Safe to click more than once. {{ travelersMigratedHint }}
FAMILIES BACKUP (JSON)
Exports every family, membership, share, invite link, and additional site admin as one JSON file. Importing replaces all of it — you'll be asked to confirm first.
Add a person
To {{ addPersonFamilyName }}. Give them an email to let them sign in, or leave it blank for a name-only entry (a kid, a pet…).
WELCOME — LET'S GET YOU SET UP
Create a new family
{{ newFamilyIntroText }}
New families are auto-approved right now.
New families need site-admin approval before they can be used.
👋
Thanks for registering!
Your request has been submitted and is awaiting site-admin approval. You'll get access as soon as it's reviewed.
Transfer ownership?
{{ pendingOwnerTransfer.toEmail }} will become the owner of {{ pendingOwnerTransfer.familyName }} (promoted to admin if they weren't already). You'll keep your existing role.
Review before saving — removed lines in red, added lines in green.
{{ d.prefix }}{{ d.text }}
No saved versions yet — edits you confirm will appear here.
{{ h.label }}
{{ d.prefix }}{{ d.text }}
{{ debugJsonLineNumbers }}
{{ debugJsonError }}
{{ debugJsonText }}
⚠
Delete this trip?
You're about to delete this trip to {{ pendingTripDelete.place }} ({{ pendingTripDelete.dateText }}) from your trips.
This removes the trip, its marker from the globe and the associated thumbnail. This can't be undone.
⚠
Delete your account?
You're the sole admin of {{ pendingAccountDelete.blockedNamesText }}. Transfer ownership or promote another admin there first — otherwise that family would be left with no one able to administer it.
This removes your membership from every family below, your person/traveler record, and your tag on any trip you don't own. It never deletes your sign-in itself.
Choose exactly what to remove. Only the checked categories are deleted — nothing else is touched.
Check Images first — deleting trips deletes their photos too.
{{ pendingFamilyDelete.nonAccountNamesText }}
{{ pendingFamilyDelete.userAccountNamesText }}
⚠ This removes the association between these accounts and this family only — it does NOT delete the accounts, their sign-in, or their membership in any other family.
TRIP METRICS
{{ metricsSubtitle }}
FILTER TRIPS
YEAR
STATUS
VISIT TYPE
TRIP TYPE
TRAVELER
No trips yet — add some destinations and your stats will appear here.