1
2
Fork
You've already forked fedi-cities
0
Analysing the use of city hashtags in the Fediverse.
  • TypeScript 53.9%
  • CSS 34.5%
  • HTML 11.6%
2026年06月14日 13:09:45 +02:00
external-lib Init website and docs 2026年06月14日 12:51:01 +02:00
software init 2026年06月14日 12:49:05 +02:00
cities.geojson Init website and docs 2026年06月14日 12:51:01 +02:00
index.html Improve osm contribution 2026年06月14日 13:09:45 +02:00
LICENSE Init website and docs 2026年06月14日 12:51:01 +02:00
README.md Init website and docs 2026年06月14日 12:51:01 +02:00

Fedi Cities

Simple analytics for city hashtags in the Fediverse. For the following countries: DE, AT, CH, NL, GB, IT, FR and DK. Results

This information is based on public data from Mastodon's /api/v1/tags/:name endpoint, in this case from the mastodon.social instance. See below for limitations of this method. The number of uses is according to the API in the last 7 days of testing. Questions or ideas? @sabrinkmann@hachyderm.io

  • software/: CLI Tool for:
    1. The list of cities with a population of 10,000 was generated with the help of wikidata.
    2. Converting the city name into slug format.
    3. Use the API to look up all hashtags and write the results in software/data/
    4. Converting the result .csv data to .geojson
  • index.html: loads cities.geojson and displays all information on a map (needs to be served on a webserver).

Limitations

The goal is not to accurately determine the total number of hashtags used in all these places, but rather to try to get a general idea of city-based Fediverse activities in different countries. Measuring things automatically is always limited in terms of accuracy due to a lack of local knowledge and customs.

  • Depending on the city name, it can be really hard to automatically generate a hashtag for cities and regions. This is especially the case because the creator of this repository is not fluent in all the countries languages.
    • Usually, umlauts are complicated because the hashtags have only limited characters. The conversion creates sometimes multiple hashtags, but for the result, only the most used hashtag is used! #münchen = #munchen, #zürich = #zurich, #københavn = #kobenhavn
    • Names with different parts are also slugied Halle (Saale)#halle und #hallesaale; Frankfurt am Main/Frankfurt (Oder) → Kern #frankfurt plus spezifische Varianten.
    • City names can also be used to reference other events unrelated to the city.
    • The city of Washington in GB is not the biggest Washington on the planet but certainly in Europe.
    • Sometimes cities have short names, or they're using the airport code. This is not tested here.
    • If cities have the same name in multiple languages, only the primary language in the country is used.
  • Only public entries, and only entries known by mastodon.social, are on the map.
    • If your instance has blocked mastodon.social, this content is not used.
  • The Mastodon API is not giving you all the Fediverse content in the Fediverse, because it only works with certain content types, like Note. Because of the dominance of the user base in Mastodon and other software in the Note centric fediverse, most software does also generate compatible content types.
    • Tags.pub was tried as an alternative, but isn't used as much currently to get a similar amount of use.
  • The number of uses does not mean it was manually created by humans, but is also created by bots.
  • Because this is a quiet, resource intensive task, this is currently planned as one time data gathering point and will not be regularly updated.
  • If you run this at home, please respect the Mastodon server resources. This was also a reason for Mastodon.social, because it is the instance with the biggest funding.

Running the CLI Software

Node.js ≥ 22

In the software folder: npm install data/cities.csv (cities + coords from Wikidata) npm run generate data/cities-mastodon.csv (hashtag usage from mastodon.social). Optional add --top 100 for testing npm run fetch ../cities.geojson (next to index.html in repo root) npm run geojson

License

Everything but the external-lib/ folder is AGPL-3.

54 Grad Software GmbH

Wir freuen uns immer über neue Kontakte und Projekt(ideen). Mehr Infos zu findest du auf unserer Website oder schreib uns direkt an kontakt@54gradsoftware.de. Mann kann uns auch auf Mastodon folgen 54gradsoftware@norden.social.