How to Share Your Travel Map With Someone — and Exactly What They See

How to Share Your Travel Map With Someone — and Exactly What They See

· Nen

Someone asks to see your map. A partner who was on half of those trips. A sibling who wants to settle whether you have really been to more countries than they have. A friend about to visit the city you lived in for two years, who would rather see where you actually went than read a listicle about it.

It is a small request, and it has a surprisingly precise answer — because "let someone see my record" is not one action in MapMyWorld. It is two separate mechanisms, they behave differently, and choosing the wrong one is the difference between one named person seeing your countries and a URL that keeps working for anybody who is ever forwarded it.

This is the how-to for the private route, an honest account of the public one, and a complete list of what the other person ends up looking at.

The two mechanisms

Named access. You invite one specific email address. That person, and only that person, can open a detailed view of your record. You can withdraw it at any time. Nothing about this is visible on the open web.

A public profile page. You switch on a preference and pick a slug, and mapmyworld.app/p/your-slug becomes a real page that renders for anyone who loads it. There is no password and no per-person gate. The URL is the whole lock.

Both are implemented; neither is the default. publicProfile is defined as false in shared/schema.ts, so a new account has no public page until you deliberately turn one on. Named access requires you to type an email address. Sign up, do nothing, and nobody can see anything.

How named access actually works

The flow lives on /friends, and the server side is server/routes/friends.ts. You enter an email address. What happens next depends on whether that address already belongs to an account, and the two paths are not symmetrical.

If they already have an account, a request is created with the status pending and it sits there. They see it in their own pending list and must accept it. Until they do, they can see nothing. If they decline, the request is closed.

If they do not have an account yet, the invitation is emailed to them — and that email is not a bare "someone wants to connect" notice. It carries four numbers from your record at the moment you sent it: your total places, countries, UNESCO sites and airports. A person who never signs up still has those four figures sitting in their inbox. Worth knowing before you invite an old work address you have not thought about in five years.

When that invited address later registers, the pending invitation is activated automatically — there is no second acceptance step for a brand-new account. So the honest summary is: existing users opt in, new users are already connected the moment they arrive.

Invitations are limited to ten per hour, which is generous for the job and low enough that the feature cannot be used to email strangers at volume.

It only points one way

This is the part that surprises people, so it is worth stating plainly: giving someone access to your record does not give you access to theirs.

Access is checked in one direction. The server asks whether a connection exists in which they are the owner and you are the recipient. Two people who both want to see each other's maps therefore need two invitations, one sent each way. Send yours, watch them accept, and then discover you still cannot open their map — that is not a bug, and there is no reciprocity toggle. Ask them to send one back.

The comparison view has the same requirement. It reads both records at once and shows them side by side — places, countries, UNESCO sites, airports, continents, and how many countries each of you has lived in rather than visited — but it will only load if they have shared with you.

If you do compare, expect the two numbers to disagree with each other for reasons that have nothing to do with the app. Country counts depend entirely on which list you use and what you personally count as a visit; we wrote about that in what counts as visiting a country. Agree on a rule before you argue about the score.

Exactly what they see

Not a summary. This is the list, taken from the function that builds the view:

  • Your display name and your email address
  • Totals: places, countries, UNESCO sites, airports, continents
  • Every country you have marked visited or lived in, with its continent
  • Every UNESCO site you have recorded, with its country
  • Every airport, with its code and city
  • Your trips by name and year only — the dates are truncated to the year before they leave the server
  • A breakdown of how your countries fall across continents

And here is what they do not see, which matters just as much:

  • Your individual places. They get the count, and they get the UNESCO subset, but the ordinary places on your map are not enumerated for them
  • Anything you spent. Expenses, budgets, currency conversions — none of it is included
  • Notes, photos, or per-trip tasks
  • Exact travel dates. "Patagonia, 2019" is the resolution, deliberately

One asymmetry runs the other way: when someone opens your record, a view counter and a last-viewed timestamp are updated on your connection to them. You can see that they looked. They are not told that you can.

The Free plan reality

Free includes one connection. Pro removes the limit entirely — $7.99 a month, $59.99 a year, or $199.99 once for lifetime access.

There is a detail in how that single slot is counted that trips people up. The check counts connections that are active or still pending. An invitation sent to someone who never accepted it is occupying your one slot indefinitely. If you are on Free and cannot invite your partner, the likeliest reason is an invitation you sent months ago to an address that never responded.

Withdrawing access frees the slot immediately — a withdrawn or declined connection is not counted — and re-inviting the same address later reuses the same record rather than creating a second one. The view count resets when it does.

The rest of the Free plan is worth restating here because it shapes what there is to look at: 5 places as a lifetime allowance rather than a live count, so deleting a place does not give the slot back; unlimited countries; 1 trip; 10 airports.

The public profile, honestly

The public route is a different thing wearing similar clothes. Turning it on gives you one page at a fixed URL, rendered on the server for every visitor, and it is not gated per person.

Three facts about it, all deliberate and all in the code:

  1. It is off by default.
  2. It is not tier-gated. The server checks your own preference, never your plan, so a Free account can publish one.
  3. It is noindex, and /p/ URLs are excluded from the sitemap. It will not be pulled into search results by us. That is a decision, not an accident, and it is the reason the page can be liberal about what it shows.

What it is not is revocable per recipient. Once the URL is out, it is out — and every unlisted-link system has the same shape. Polarsteps, which defaults new trips to followers-only visibility, warns that the only way to cut off people already holding a trip's secret link is to make the trip private again. Google Photos is blunter about the trap: remove a person from a shared album while link sharing is still on and anyone with the original link keeps their access.

So the decision rule is short. If the answer to "who is this for?" is a name, use named access, because you can take it back from that name. If the answer is "whoever I paste it to", use the public page and accept that you are choosing a URL, not an audience.

Before you share anything

Four things, in order:

  1. Fill in the record first. A map with three places on it is not an argument for anything. If you are reconstructing years of travel, the evidence-first method is in how to log your travel history retroactively.
  2. Look at your trip names. They are shared verbatim. "Amsterdam with K" is fine; a name you would not want read aloud is not.
  3. Check your email address is one you are happy to hand over, because it goes with the view.
  4. Take your own copy. Sharing is not a backup, and the two failure modes are unrelated — see how to back up your travel record.

What this does not do yet

Being straight about the gaps, because they are the questions we get:

There is no per-trip or per-country sharing. Access is all-or-nothing across your whole record; you cannot show someone Japan and hide Berlin. There is no way to grant temporary access that expires on its own — withdrawing is a manual act you have to remember. There is no notification when someone accepts, so you will find out by looking. And a public profile has exactly one URL, which means you cannot issue a separate link to a separate group and retire one of them later.

None of that is hard to live with once you know it. All of it is annoying to discover after you have already sent the invitation.

Start your record — free