Skip to content

Instantly share code, notes, and snippets.

@mgerdts
Created November 25, 2022 05:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mgerdts/4e07d01ff2debc976a95cd257f851af5 to your computer and use it in GitHub Desktop.
Save mgerdts/4e07d01ff2debc976a95cd257f851af5 to your computer and use it in GitHub Desktop.
Pathodon idea

Pathodon

This is a proposal for a social network optimized for hiking, walking, trekking and other forms of ambling through nature. It is intended to be a participant in ActivityPub Fediverse. In particular, things shared on Pathodon should look great on Mastodon and Mastodon users should be able to interact with Pathodon users as naturally as they the interact with other Mastodon users.

The key things that set Pathodon apart from Mastodon are:

  • Support GPS traces (e.g. GPX) to let others know about trails and to be able to follow others in a very literal sense.
  • Encourage the use of consistent, geographically significant hashtags for meaningful follows.
  • Geographic search to find recent activity in a region of interest
  • Use of OpenStreetMap (OSM) and curation of trails and related OSM data.

Maybe something like this is already in the works. If so, I'd love to hear about it and may join in. While I have an interest in this, I have a job, other obligations, and generally do development that is much closer to hardware than this. If there are other software engineers with an interest in this, I would love to see if we collectively have enough interest to make this real.

Key Features

Like other ActivityPub applications, Pathodon will support notes, image attachments, hashtags, follows, etc. Pathodon is likely a superset of the features present in Mastodon.

GPS Traces

Every modern smartphone can track your location and there are a lot of apps that already do this. Those apps are commonly associated with some web/cloud-based service that aggregates traces, allows reviews, etc. I've used some of these and I like them. At the same time, I feel like any data that I contribute is benefiting only the community that uses that app.

In Pathodon, a GPX or similar file would be attached to a post in much the same way that images are attached in Mastodon. Other Pathodon users will be able to interact with this GPX file how they see fit. For instance, they could use the GPS coordinates of the trail head to get driving directions or they may load the GPX file into their favorite GPS app or device to follow the actor's (poster's) footsteps.

The Pathodon server will recognize that the federation includes users that are not Pathodon users but would like to share the information. The Activity Streams 2.0 extended activity example provides inspiration for how the appropriate content could be displayed based on the client's capabilities. It shows different images for png and jpg. Adapted to this use case, it may look like:

      "object" : {
        "name": "A cool trail",
        "type": "Image",
        ...,
        "url": [
          {
            "type": "Link",
            "href": "http://pathodon.org/traces/86460677-3ca6-4ce9-b53c-4292d142775a.gpx",
            "mediaType": "application/gpx"
          },
          {
            "type": "Link",
            "href": "http://pathodon.org/traces/86460677-3ca6-4ce9-b53c-4292d142775a.png",
            "mediaType": "image/png"
          }
        ]
      }

Of course, there should be alt text that describes this as a GPS trace. This could be auto-generated ("GPS trace of 3.4 mile trail starting by No Bears Here trail head") with the option for it to be improved by the actor.

The png image above would be likely be a map with the path taken clearly visible. It may also include a chart that shows elevation change vs. distance.

The GPS trace would provide other information that is useful in improving post and search quality, as described below.

Hashtags

The coordinates and time stamps in the GPS trace can be used to generate meaningful metadata. Most obviously, this can be used to identify the start and end locations and the path taken in between. These can be used with OpenStreetMap data to determine boundaries within which the activity occurred and named trails that were used. A recent hike that I took in Wyalusing State Park made a loop using a couple named trails. It may get the tags #HikeUSA, #HikeWisconsin, #HikeGrantCountyWI, #HikeWyalusingStatePark, #HikeBluffTrail, #HikeOldImmigrantTrail, and #HikeInSeptember. Of course, I'd be free to alter the list of hashtags as I see fit.

Clearly there's a wide range of usability of these auto generated hashtags, and the usability varies greatly by the audience. Someone unfamiliar with United States geography would benefit from #HikeUSA because even the name of the state is too obscure. Someone that is camping in the park may want to know about others' recent experiences on the Bluff Trail. I would be likely to follow county-level hashtags for the area I live in and those that I plan to visit soon.

It may be tempting to encode other data into hashtags. For example, #HikeRating4Stars would be one way to indicate the overall rating of the activity. At some point, we need to worry that the entire text of the post will be filled with hashtags. It may be that some of the information that is proposed for hashtags would be better placed in other metadata that is not commonly recognized across ActivityPub implementations.

Geographic Search

In the earlier example, I mentioned I was on Bluff Trail. On its own, #HikeBluffTrail is not a great search term because there are likely thousands of trails by that name. Thus, it should be possible to limit searches based on radius from a specific location, or within a particular boundary (e.g. a park or state). My dogs would appreciate a geographic search that says "#HikeUSA no more than 100 miles West of my current location and within 5 miles of Interstate 90."

The application that presents search results would be most usable if it is able to present a map view of the results. When zoomed out, the results would just show the starting point of each trail. When zoomed in close enough that traces are significantly larger than a dot, it may show the GPS trace(s) of results in the zoomed in area.

OpenStreetMap

OSM will be an important source for map tiles and other map data. As such, the Pathodon server will need to replicate at least some of the OSM database and map tiles.

Much like Wikipedia, OSM is continuously improved by the contributions of the community. Ideally the Pathodon server would recognize when an uploaded GPS trace does not match a mapped trail. Subject to user preferences, it may reply to post with a suggestion to fix the map. This may come with its own hashtag so that map enthusiasts could also keep an eye out for things that need work.

Scope

The main focus of Pathodon is to provide a server that can enable the features described above. Of course, this means that some client will be needed - perhaps just a web front-end would be sufficient. Ideally other developers will be inspired to provide rich applications that integrate with smartphones, watches, etc. to make a rich user experience.

Concerns

Personal Safety - Theft, stalking

A long-standing concern with social media is that you may be broadcasting in real time that you are away from your home, perhaps increasing your risk of your home being burlarized. An application that broadcasts in real time that you are in a secluded place alone or in a small group could be even more of a concern for auto theft and/or personal harm. Applications using Pathodon should keep this in mind, and resist the urge to post public progress updates and similar.

Personal Safety - General

It's sometimes dangerous to get lost without proper shelter, water, food, etc. The goal of this Pathodon is to provide a means for sharing experiences once you are safely back and for learning about trails from your fellow hikers. This is not your map, your compass, nor your training on proper use of a map and compass.

Overlap with traditional apps

Applications that have a walled garden or freemium model sometimes work great for what they do. I have a little heartburn about paying a company to use an app just so that I can generate content (reviews, GPS traces, suggest new trails, etc.) that makes their walled garden nicer without contributing to an open ecosystem.

I would welcome those companies that produce hiking apps to join in so long as they contribute to the Pathodon Fediverse in a way that fosters community through interoperability. If one of these companies had the best app that integrated with Pathodon, I may continue to shell out for the annual subscription.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment