A side quest of this backburner: collect the world. Every territory, one note on each shelf, and a visit.

A territory is complete when it has at least one published note on each of four shelves: a Source (something I consumed that comes from there), an Expression (a word or a saying from its language), a PJ (someone from there) and a Dot (a fact, an idea, a curiosity), and I’ve been there: at least one of my own been notes (see below). The shelves alone used to be enough, and by October 2026 ten territories had them all (Spain, United States, United Kingdom, France, Japan, Canada, Australia, Italy, China and Mexico); since the visit became part of the rule, each of those still needs its been note. The live count is on the dashboard.

There are 253 to go, so it will take a while. Good.

The scoreboard is Dashboard Territories. Oceans, seas, lakes and rivers are not territories, so they play in a sister table with the same rules: Dashboard Waters, 123 bodies of water, none complete yet. This page explains how both work, how to feed them and how to copy them.

Why “territories” and not “countries”

Because the list isn’t only countries. It has the 193 UN member states, but also dependencies (Anguilla, Greenland), constituent countries (England, Wales), and disputed or partly recognized ones (Abkhazia, Taiwan, Somaliland). “Territory” is the neutral word that fits every row: a sovereign state is a territory too. (“Places” was already taken: it’s the whole place/ tag axis, cities and mountains included.)

The pieces

PieceWhat it isWho edits it
Territories of the worldThe master data: one row per territory with common name, formal name, place tag, continent, region, UN membership and sovereigntyMe, by hand. Territory facts are edited there and nowhere else
Places ListThe registry of every valid place/ tag (territories, plus special places like cities that hang under their country)Me, or the skills when I approve a new place
place/ tags on notesWhat makes a note count for a territoryThe skills, when they process a clipping
Dashboard TerritoriesThe scoreboard: counts per shelf, Been column, Complete column, filtersNobody: generated on every build
been tag and Dashboard BeenMy own visits and experiences (see below)Me, only me: the skills add it only when I say so; the dashboard is generated
Waters of the worldThe master data for waters: one row per body of water with common name, type (Ocean, Sea, Gulf, Bay, Strait, Canal, Lake, River), place tag, basin, continents and salinityMe, by hand
Dashboard WatersThe waters scoreboard, same columns and filters logicNobody: generated on every build
Dashboard PlacesThe tree of all place tags, with the links to both scoreboards on topNobody: generated on every build

How a note counts

A note counts for a territory when all of this is true:

  • it’s published (no draft: true);
  • it lives on a shelf (Sources/, Expressions/, PJ/, Dots/; Workshop/ pages never count);
  • it carries the territory’s place tag or any place under it. place/Earth/Europe/Spain/Reinosa counts for Spain, so tagging the precise place never costs a point.

The scoreboard also shows “All notes” (every shelf, HowTo and Preguntes included), but only the four shelves above, plus a visit, decide whether a territory is complete.

Been there

The fifth condition is personal, on purpose. A note tagged been is mine: a place I’ve been to, or something that happened to me. The rules:

  • been goes on any note, any folder: a Dot with a travel story, a Source I saw on a trip, a story that isn’t even about a place, a PJ I met there, a book someone gave me there. It counts on its shelf and in the Been column. It counts for a territory (or a water) when it also carries its place tag, and I only put been on a note when I’ve been to every place it’s tagged with.
  • On a been note, the time/ tag means when I was there. Several time tags can be several trips. No time tag means I don’t remember when, and that’s fine: it still counts.
  • been is an axis, like places or time, not a kind of note: a story of mine goes to its own shelf (a Dot, a Source…) with the been tag, and counts there like any other note.
  • been is only a tag, never a folder. For the places I’ve been to with no story to tell yet, a blank Dot: one per trip when I know the year (“Been to Montenegro”, with its time tag), or Places I’ve been for the undated ones, with just the place tags. Blank or not, they count as Dots like any other note: on purpose, I’m fine with that.
  • All of them together, stories and markers, have their own page in the top menu: Dashboard Been, with where (the place tree), when (by year of the time tags) and the undated ones. And the tag page been.
  • The dashboards’ Been column counts my been notes per place, and the Been filter shows where I’ve been or not yet. The skills never add been on their own: only when I say so, like I say “a Dot” or “a PJ”.

How to complete a territory

  1. Open Dashboard Territories, set Complete to “Not complete” and pick a continent or a region. Sort by “All notes” to see who’s closest; set Been to “Been there” to see the places I already know.
  2. Look at which shelf is empty for the territory you fancy (or whether it’s only missing the visit: then it’s a trip, or a been marker for one I already made).
  3. Ask for exactly that: “create a clipping for an untranslatable word from Georgian, it goes to Expressions”. /visibles-create-clipping researches it and writes the raw note; /visibles-process-clippings turns it into a draft with the right place/ tag. (That’s how Mauritania got its first Dot: Leblouh.) The whole pipeline is in Karpathy Method.
  4. Review and publish the draft. The next build updates the scoreboard.

Why waters live apart

A territory is land under someone’s authority. The sea only counts as territory in a narrow legal sense (the 12-mile strip off a coast), and the high seas, by the UN Convention on the Law of the Sea, belong to no one. A Pacific Ocean row would have nothing to say about UN membership or sovereignty. So waters have their own table, with columns that make sense for water:

  • Type: Ocean, Sea, Gulf, Bay, Strait, Canal, Lake, River.
  • Basin: the ocean it belongs to or ends up in (the Mediterranean counts as Atlantic, the Danube too, through the Black Sea). “Endorheic” when it never reaches the sea: the Caspian, the Dead Sea, Titicaca, the Volga. Straits and canals list every basin they join.
  • Continents: every continent on its shores, or that a river crosses. A water can have several (the Mediterranean: Europe, Africa, Asia), and the filter matches any of them.
  • Salinity: salt, fresh or brackish.

Their tags hang from their own branch: place/Earth/H2O/<Type>/<Name>.

Fictional and mythical places (Ithaka, Syldavia, Hades, Heaven, Hell) are tags too, under place/Fiction/<Name>, outside place/Earth. They play in no collection: a note set in Hades shows up on its tag page and in Dashboard Places, and that’s all.

How to update the master lists

Territories change (rarely, but they do), and so does their status. Everything happens in Territories of the world (and, for water, in Waters of the world, same rules):

  • Change a fact (region, UN membership, sovereignty): edit the cell. Keep the values consistent, because every distinct value becomes an option in the dashboard filters. Use “No membership”, not a paragraph about why (Taiwan’s old entry was a paragraph long; one label filters better).
  • Add a territory: add a row with all seven columns, and the place tag in backticks in the third one: `#place/Earth/<Continent>/<Name-With-Hyphens>`. Then add the same tag to Places List, so the skills accept it when tagging notes.
  • Rename: change the row and the Places List line, then retag the notes that carry the old tag (/visibles-lint-wiki flags any tag missing from the registry).

The values follow these conventions:

  • Continent: Africa, America, Antarctica, Asia, Europe, Oceania (one America, not two).
  • Region: the UN M49 geographic sub-regions (Caribbean, Western Asia, Melanesia…), plus Antarctica as its own.
  • UN membership: UN member state, UN observer state (only Palestine and Vatican City), Member of UN specialized agencies, No membership, or Region (for constituent parts and dependencies).
  • Sovereignty: “Sovereign”, the state it depends on (“United Kingdom”, “France”…), or who disputes it (“Claimed by Morocco”, “Partially unrecognized”).

Lists worth checking when updating: the UN member states, the UN M49 standard for regions, and Wikipedia’s list of sovereign states, states with limited recognition and dependent territories.

How to replicate it

All of this runs on the stack described in Tot això (Obsidian, Git, Quartz, Vercel). No AI runs at build time: the scoreboard is plain counting. To set it up on your own Quartz site:

  1. The master table. A markdown note with a table of seven columns: common name, formal name, place tag in backticks, continent, region, UN membership, sovereignty. Mine is in content/Workshop/.
  2. The tags. Tag your notes with hierarchical place tags (place/Earth/<Continent>/<Territory>/<Anything-inside>) and keep a registry note listing the valid ones.
  3. The generator. A Node script that runs before Quartz (scripts/gen-dashboards.mjs here). One function, collectionDashboard, serves both collections: you tell it the master table, the page to write and which columns to show and filter, and it reads the master table, counts the published notes per folder whose place tags match each territory (or sit under it), and writes a page with a plain HTML <table class="sortable"> plus one <select data-col="N"> per filter. Each cell keeps its raw value in a data-v attribute, which is what sorting and filtering use (multi-valued cells as Europe|Asia). A third collection (mountains, islands…) would be one more call to that function plus its master table.
  4. The sorting and filtering. A Quartz component that renders nothing and ships a small script (quartz/components/SortableTables.tsx): clicking a header sorts by that column, the dropdowns hide the rows that don’t match, and its CSS keeps the header row and the first column pinned while the table scrolls both ways (phones included). Register it in quartz/components/index.ts and add it to afterBody in quartz.layout.ts, so every page gets it. It works on any table marked sortable, not just this one.
  5. Keep registries off tag pages. Registry notes mention hundreds of tags in their text, so Quartz would list them on every tag page. A one-line filter in quartz/components/pages/TagContent.tsx skips everything under Workshop/.
  6. The build command. In Vercel, override the build command to npm run build (generator first, then Quartz); the steps are in Tot això.
  7. A way to reach it. Mine is the first line of Dashboard Places.

If you only want the table and not the whole method: steps 1, 3, 4 and 6 are enough.