Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

I'm excited to show off #Atlas - a social mapping server for the #Fediverse.

General Discussion
50 16 0
  • @osma @julian I've seen headlines like this in the past.

    It's hard to account for every crazy thing people will do with the tools we make. But I'm planning to make it so you explicitly choose to look up your actual location with every post. I'll have to get into the actual code to see what's possible, but I believe this will be enough control that it should avoid accidents like these, yes?

    Let's keep talking about location and privacy. It's important that we get this right.

    @benpate @osma @julian

    Somewhat relevant, I believe mastodon's argument for not supporting age verification is that they don't collect location data and so there's no way for them to determine if their users are somewhere where age verification applies. I don't know how well that works on legal grounds, but probably worth thinking about if you're building social apps that require geolocation

  • @benpate I think the federation is the hard part. I think writing the actual AR application is probably pretty straightforward, at least for developers who are already familiar with their AR platform. (I don't know visionOS or whatever Meta uses, but I know iOS and I doubt it's that much different.)

    @ben Ha! I'd have figured the exact opposite 😅

    Even as someone who'll never stop whining about how hard it is to get ActivityPub going, 3D graphic and Augmented Reality seems (to me) like another level of work altogether.

    So, if you happen to know someone who could take a list of addresses and map it into a 3D space...

    Let me know if you're interested in this? I could easily give you a JSON file of annotations tied to your current location.

  • Popularity requires convenience. Convenience invites mistakes. A system design could try to minimize the cost of those mistakes. One of those design decisions could be to detach location from identity - which is why I asked about your thoughts on that.
    @benpate @julian

    @osma @julian

    Yes. Great point. And UX and privacy are both top concernse of mine.

    So, 's default registration options ask for very little information: name you want to use, public-facing username, and an email address where you can receive notifications.

    This should be enough to provide anonymity for those who require it, while still allowing them to build trust and reputation with their community via this new identity.

  • @benpate @osma @julian

    Somewhat relevant, I believe mastodon's argument for not supporting age verification is that they don't collect location data and so there's no way for them to determine if their users are somewhere where age verification applies. I don't know how well that works on legal grounds, but probably worth thinking about if you're building social apps that require geolocation

    Interesting point. Age verification laws around the world are going to make everything a lot more tricky.

    Though Mastodon's argument doesn't make sense to me: IP addresses inherently map to location data, so we all receive *some* location, whether we're listening or now.

    I don't have a good solution for this, right now.

    It'll probably need to be baked into new user registrations, which admins would need to choose in some way.

    Do you have a solution you'd recommend?

    @tom @osma @julian

  • @sl007 Yes, I'd love to work together on geocoding, too.

    Right now, there's not much to it..

    I'm using commercial geocoders to translate addresses into Lat/Long, then including that in 1) the ActivityStream document, and 2) the search results.

    I'd love to work with https://places.pub in some way, but I'm not sure (yet) what that integration would look like, or what we'd get out of it.

    So yes: let's keep talking about how we make this seamless. There should be one standard, not six :)

    @benpate

    cool. I am doing funded work for taxiteam and menschys and for redaktor (CMS) and Public Spaces Incubator (EBU and Public Broadcasters), fulltime, anyway :)

    About places.pub - did post the code to federate OSM a long while ago https://gist.github.com/sebilasse/ca76c60955e5414cff2c253f1cd89af4
    this snippet comes with a bunch of other modules.
    An OSM to JSON-LD proxy like places.pub is super nice but what we need in taxiteam is a bit more.
    Our database is a consolidated cache of OSM and wikidata knowledge but organized as hierarchical Collections, both political-administrative as well as by geohash.
    So, if you are down to Country "DE"
    https://gist.github.com/sebilasse/9b4c50bfabad43879c9c43c3adbe9ca1 it is a Collection of Federal States with its own id (2nd file).
    With ActivityPub, we have the ability to define these hierarchies starting by Collection Q2 having the M49 regions as items with ['Collection', 'CollectionPage'] and that goes down to e.g. country/state/adm3/city/district/suburb/"hood" …

    🧵 1/3

  • @benpate

    cool. I am doing funded work for taxiteam and menschys and for redaktor (CMS) and Public Spaces Incubator (EBU and Public Broadcasters), fulltime, anyway :)

    About places.pub - did post the code to federate OSM a long while ago https://gist.github.com/sebilasse/ca76c60955e5414cff2c253f1cd89af4
    this snippet comes with a bunch of other modules.
    An OSM to JSON-LD proxy like places.pub is super nice but what we need in taxiteam is a bit more.
    Our database is a consolidated cache of OSM and wikidata knowledge but organized as hierarchical Collections, both political-administrative as well as by geohash.
    So, if you are down to Country "DE"
    https://gist.github.com/sebilasse/9b4c50bfabad43879c9c43c3adbe9ca1 it is a Collection of Federal States with its own id (2nd file).
    With ActivityPub, we have the ability to define these hierarchies starting by Collection Q2 having the M49 regions as items with ['Collection', 'CollectionPage'] and that goes down to e.g. country/state/adm3/city/district/suburb/"hood" …

    🧵 1/3

    @benpate

    The hoods have then all the street addresses, relations, boundaries like places.pub (with icons cached static etc. pp).
    So, you know all the administrative parents from any address -
    but what makes it really special is that any taxiteam instance could add info to any address (just as with your annotated places …).
    As said, described it just very briefly in https://github.com/w3c/activitystreams/issues/582
    It includes federated _reverse_ geocoding too but Lat/Long would not be cool for this, so we use geohash for the Service Actor.
    https://en.wikipedia.org/wiki/Geohash https://geohash.softeng.co/

    Let's see a practical example:
    A new fair taxiteam forms in any city to "FCK UBER". They install an instance and choose a geohash they would like to geocode.
    E.g. the square for Hamburg and some other cites.
    These might overlap, it doesn't matter cause geohash is strictly hierarchical too.
    We do also have a server for all Germany by default, anyway:
    The instance once fetches the cache of needed infos up to street addresses.
    🧵 2/3

  • @benpate

    The hoods have then all the street addresses, relations, boundaries like places.pub (with icons cached static etc. pp).
    So, you know all the administrative parents from any address -
    but what makes it really special is that any taxiteam instance could add info to any address (just as with your annotated places …).
    As said, described it just very briefly in https://github.com/w3c/activitystreams/issues/582
    It includes federated _reverse_ geocoding too but Lat/Long would not be cool for this, so we use geohash for the Service Actor.
    https://en.wikipedia.org/wiki/Geohash https://geohash.softeng.co/

    Let's see a practical example:
    A new fair taxiteam forms in any city to "FCK UBER". They install an instance and choose a geohash they would like to geocode.
    E.g. the square for Hamburg and some other cites.
    These might overlap, it doesn't matter cause geohash is strictly hierarchical too.
    We do also have a server for all Germany by default, anyway:
    The instance once fetches the cache of needed infos up to street addresses.
    🧵 2/3

    @benpate

    Then it once sends an Update to all attached taxiteam machines meaning „Hey there, we are new and geocode ["u1"]“ (or ["u1r","u1w","u1x"]) then the network knows.
    Now any taxidriver can add infos, warnings etc. directly.

    Next time when a user clicks on a map, we once decode Lat/Long to geohash, if your own instance doen't have it, it can ask the best suited option (e.g. serer proximity, load or trust).
    As smaller the instance area is, as more detailed infos about em places ith might have :)
    User now knows "You clicked on Fischmarkt Hamburg but unfortunately the area is currently flooded. Flashflood warning, go away" -
    well, or maybe " … and your cab arrives in 1 minute" or "… cool exhibition nearby" or whatever.

    Sorry if I got either too complicated or short :)
    We have frequent team mmetings, next is Saturday but I am also looking forward to the dev meeting with @reiver re. https://digitalcourage.social/@reiver@mastodon.social/115317680720978044

    🧵 3/3

  • Interesting point. Age verification laws around the world are going to make everything a lot more tricky.

    Though Mastodon's argument doesn't make sense to me: IP addresses inherently map to location data, so we all receive *some* location, whether we're listening or now.

    I don't have a good solution for this, right now.

    It'll probably need to be baked into new user registrations, which admins would need to choose in some way.

    Do you have a solution you'd recommend?

    @tom @osma @julian

    @benpate
    no idea, I imagine a lot of my answers involve fixing the laws themselves haha.

    Bluesky offloads some of that responsibility to the PDS (i.e. I can tell my PDS that I'm an adult and it'll tell Bluesky that I'm verified) so (very) long-term I think I'd like that sort of service provided by the C2S server, so clients wouldn't have to think about it.

    But yeah, I'd assume you'd have to implement it during the registration process and have admins use a method of their choice for verifying age (and optionally let them turn it off entirely if they can confidently say that nobody from XYZ location will ever be using the site)

    @osma @julian

  • @computersandblues

    I'll build whatever people say is most important. These policies will likely be up to individual server owners.

    After spammers found Bandwagon, I've been kicking around ways to do moderation before profiles and posts become public.

    But whether we're using maps or toots, the issues would still be the same. Bad actors will need to be identified quickly, and dealt with decisively.

    I'm adding this into the project board. Feel free to pile on: https://github.com/orgs/EmissarySocial/projects/3/views/1?pane=issue&itemId=135226795&issue=EmissarySocial%7Cemissary%7C566

    benpate@mastodon.social you may want a way to gain consent before allowing posting of a location + mentioned people. The other thing you may want to do is have moderation UI that allows searching for all notes for a specific location, and potentially banning the usage of certain locations in notes. i.e., if you see a doxing, then your mods can prevent that location from being tagged, and delete the note. If a person is tagged as at a certain location, they should need to accept the tag before that shows up in the Note.

    You could also do things like limit posts being added within a certain region to a certain radius (based on geoip).

  • @benpate @osma @julian

    Somewhat relevant, I believe mastodon's argument for not supporting age verification is that they don't collect location data and so there's no way for them to determine if their users are somewhere where age verification applies. I don't know how well that works on legal grounds, but probably worth thinking about if you're building social apps that require geolocation

    tom@tomkahe.com said in I'm excited to show off #Atlas - a social mapping server for the #Fediverse.:
    > Somewhat relevant, I believe mastodon's argument for not supporting age verification is that they don't collect location data and so there's no way for them to determine if their users are somewhere where age verification applies. I don't know how well that works on legal grounds, but probably worth thinking about if you're building social apps that require geolocation

    Yeah, this justification just doesn't pass scrutiny. Mastodon does collect the user's recently active IP addresses, and from that you can use geoip to resolve to a country/state. This could also all be handled by a FASP.

    In other words, Mastodon could indeed implement age verification, the only remaining question is: what would that gate access to?

  • @thisismissem

    Agreed, even if they didn't collect/save IP addresses, I don't think you could get around it just by telling a court you didn't want to collect that data. I imagine they'd just tell you that you need to collect it.

    (looked up the source so I'm not just randomly attempting to quote things from memory https://techcrunch.com/2025/08/29/mastodon-says-it-doesnt-have-the-means-to-comply-with-age-verification-laws/)

    The social nonprofit explains that Mastodon doesn’t track its users, which makes it difficult to enforce such legislation. Nor does it want to use IP address-based blocks, as those would unfairly impact people who were traveling, it says.

  • @thisismissem @benpate i was also thinking how this is solved by the foursquares etc., aside from moderation. limiting notes to pois instead of arbitrary latitude-longitude-tuples may also be a viable strategy, and that might make it easier to figure out whom to even ask for consent, or who may be able to manage allowlists or similar mechanisms. not arguing to replicate that exactly, but remember foursquare mayors? the fediverse might have elected janitor groups.

    i'm aware that i'm sharing half-finished thoughts, and i hope i'll find a bit more time for this.

  • @thisismissem @benpate i was also thinking how this is solved by the foursquares etc., aside from moderation. limiting notes to pois instead of arbitrary latitude-longitude-tuples may also be a viable strategy, and that might make it easier to figure out whom to even ask for consent, or who may be able to manage allowlists or similar mechanisms. not arguing to replicate that exactly, but remember foursquare mayors? the fediverse might have elected janitor groups.

    i'm aware that i'm sharing half-finished thoughts, and i hope i'll find a bit more time for this.

    @computersandblues @thisismissem

    Half finished thoughts are the best!

    And, I know I'm dipping into some choppy waters here, but I think "consent" relates to what content the server wants to share, and not consent of the "property/location owner."

    I recognize there's potential for abuse (i.e. doxxing someone) but that exists outside of a mapping app, too.

    But there's also cool use cases for non-consensual digital graffiti.. something in the spirit of:

    https://observer.com/2025/10/artists-indigenous-ar-intervention-met-american-wing/

  • @thisismissem @benpate i was also thinking how this is solved by the foursquares etc., aside from moderation. limiting notes to pois instead of arbitrary latitude-longitude-tuples may also be a viable strategy, and that might make it easier to figure out whom to even ask for consent, or who may be able to manage allowlists or similar mechanisms. not arguing to replicate that exactly, but remember foursquare mayors? the fediverse might have elected janitor groups.

    i'm aware that i'm sharing half-finished thoughts, and i hope i'll find a bit more time for this.

    @computersandblues @thisismissem

    But back to your original point, it could be interesting to roll up all of the notes about a particular POI, to say something meaningful about what's going on there.

    That's probably out of scope for me right now, while I'm just learning how to make maps. But I'm making a note to research this some time down the road.

    Fortunately, we have a lot of "closed source" research that we can lean on, then just cherry pick the best ideas and make them "open."


Gli ultimi otto messaggi ricevuti dalla Federazione
  • @computersandblues @thisismissem

    But back to your original point, it could be interesting to roll up all of the notes about a particular POI, to say something meaningful about what's going on there.

    That's probably out of scope for me right now, while I'm just learning how to make maps. But I'm making a note to research this some time down the road.

    Fortunately, we have a lot of "closed source" research that we can lean on, then just cherry pick the best ideas and make them "open."

    read more

  • @computersandblues @thisismissem

    Half finished thoughts are the best!

    And, I know I'm dipping into some choppy waters here, but I think "consent" relates to what content the server wants to share, and not consent of the "property/location owner."

    I recognize there's potential for abuse (i.e. doxxing someone) but that exists outside of a mapping app, too.

    But there's also cool use cases for non-consensual digital graffiti.. something in the spirit of:

    https://observer.com/2025/10/artists-indigenous-ar-intervention-met-american-wing/

    read more

  • @thisismissem @benpate i was also thinking how this is solved by the foursquares etc., aside from moderation. limiting notes to pois instead of arbitrary latitude-longitude-tuples may also be a viable strategy, and that might make it easier to figure out whom to even ask for consent, or who may be able to manage allowlists or similar mechanisms. not arguing to replicate that exactly, but remember foursquare mayors? the fediverse might have elected janitor groups.

    i'm aware that i'm sharing half-finished thoughts, and i hope i'll find a bit more time for this.

    read more

  • @thisismissem

    Agreed, even if they didn't collect/save IP addresses, I don't think you could get around it just by telling a court you didn't want to collect that data. I imagine they'd just tell you that you need to collect it.

    (looked up the source so I'm not just randomly attempting to quote things from memory https://techcrunch.com/2025/08/29/mastodon-says-it-doesnt-have-the-means-to-comply-with-age-verification-laws/)

    The social nonprofit explains that Mastodon doesn’t track its users, which makes it difficult to enforce such legislation. Nor does it want to use IP address-based blocks, as those would unfairly impact people who were traveling, it says.

    read more

  • tom@tomkahe.com said in I'm excited to show off #Atlas - a social mapping server for the #Fediverse.:
    > Somewhat relevant, I believe mastodon's argument for not supporting age verification is that they don't collect location data and so there's no way for them to determine if their users are somewhere where age verification applies. I don't know how well that works on legal grounds, but probably worth thinking about if you're building social apps that require geolocation

    Yeah, this justification just doesn't pass scrutiny. Mastodon does collect the user's recently active IP addresses, and from that you can use geoip to resolve to a country/state. This could also all be handled by a FASP.

    In other words, Mastodon could indeed implement age verification, the only remaining question is: what would that gate access to?

    read more

  • benpate@mastodon.social you may want a way to gain consent before allowing posting of a location + mentioned people. The other thing you may want to do is have moderation UI that allows searching for all notes for a specific location, and potentially banning the usage of certain locations in notes. i.e., if you see a doxing, then your mods can prevent that location from being tagged, and delete the note. If a person is tagged as at a certain location, they should need to accept the tag before that shows up in the Note.

    You could also do things like limit posts being added within a certain region to a certain radius (based on geoip).

    read more

  • @benpate
    no idea, I imagine a lot of my answers involve fixing the laws themselves haha.

    Bluesky offloads some of that responsibility to the PDS (i.e. I can tell my PDS that I'm an adult and it'll tell Bluesky that I'm verified) so (very) long-term I think I'd like that sort of service provided by the C2S server, so clients wouldn't have to think about it.

    But yeah, I'd assume you'd have to implement it during the registration process and have admins use a method of their choice for verifying age (and optionally let them turn it off entirely if they can confidently say that nobody from XYZ location will ever be using the site)

    @osma @julian

    read more

  • @benpate

    Then it once sends an Update to all attached taxiteam machines meaning „Hey there, we are new and geocode ["u1"]“ (or ["u1r","u1w","u1x"]) then the network knows.
    Now any taxidriver can add infos, warnings etc. directly.

    Next time when a user clicks on a map, we once decode Lat/Long to geohash, if your own instance doen't have it, it can ask the best suited option (e.g. serer proximity, load or trust).
    As smaller the instance area is, as more detailed infos about em places ith might have :)
    User now knows "You clicked on Fischmarkt Hamburg but unfortunately the area is currently flooded. Flashflood warning, go away" -
    well, or maybe " … and your cab arrives in 1 minute" or "… cool exhibition nearby" or whatever.

    Sorry if I got either too complicated or short :)
    We have frequent team mmetings, next is Saturday but I am also looking forward to the dev meeting with @reiver re. https://digitalcourage.social/@reiver@mastodon.social/115317680720978044

    🧵 3/3

    read more
Post suggeriti
  • 0 Votes
    1 Posts
    0 Views
    #nextcloud and #syncthing and #deltachat are the real revolutionary technologies of recent. I guess #activitypub too
  • 0 Votes
    1 Posts
    4 Views
    We were excited to see the recent release of Ghost 6 with ActivityPub features. The Ghost team have been an active participant in our Long-form Text project. John O’Nolan, founder and CEO of Ghost.org, was kind enough to answer our questions about the software and its community.SWF: For our readers who don’t know Ghost, how would you describe the platform?JO: Ghost is an independent publishing platform for people who take writing seriously. We’re open source, non-profit, and built to give creators complete ownership of their content and their audience. We’ve helped indie publishers generate over $100 million in revenue from sustainable modern media businesses like 404Media, Platformer and Tangle News.SWF: Tell us about your user community. Can you paint a picture of them with a broad brush? What kind of people choose Ghost?JO: Ghost attracts people who care about owning their home on the internet, rather than having another profile on a social media platform. Our publishers range from solo journalists and creators, to established news outlets and large businesses. They value independence, and they’re willing to do the work to maintain control of their brand, distribution, data, and relationship with readers.SWF: What is it like to be a Ghost user in 2025? What kind of problems are your users facing today?JO: The big challenge today is the same one that’s haunted independent publishers for two decades: discovery. You can own your platform and serve your audience beautifully, but if people can’t find you, none of it matters. Email newsletters have been a solid answer, but they’re still dependent on deliverability and inbox placement. Algorithms on social platforms actively suppress links now, so sharing your work there is like shouting into a hurricane.SWF: Tell us about your experience with ActivityPub. Why did you decide to add ActivityPub support to your software?JO: Ghost has had support for delivering content by email newsletters for a number of years, and email has remained an unassailable distribution platform for publishers because it’s an open protocol. No company controls your email list except you, so it’s one of the best investments you can make. ActivityPub is now doing the same thing for social technology. It allows publishers to own and control a distribution channel that allows their work to spread and be discovered by others. For the first time, you can publish independently and grow faster than ever before.SWF: What stack is Ghost built on? What development tools does your team use?JO: Ghost is all built in modern JavaScript; mainly Node and React. Our ActivityPub service is built on Fedify, and everything we build is released under an open source MIT license. Our development tools are constantly evolving, and now more quickly than ever before with the advent of AI tools, which seem to change on a near weekly basis.SWF: What was the development process like?JO: Challenging, honestly. ActivityPub is beautifully designed but the spec leaves room for interpretation, and when you’re building something new, there’s no roadmap. Building interoperability between other platforms, who’ve all interpreted the spec in their own unique ways, has been a real challenge. The approach we took was to ship early versions as quickly as possible to beta testers so we could learn as we go, using real-world data and issues to guide our process. We’re in a good spot, now, but there’s still a lot to do!SWF: Ghost produces long-form blog posts, articles and newsletters. How was the experience adapting Ghost articles to the microblogging interfaces of Mastodon and Threads?JO: In some ways really easy, and in other ways quite tricky. We’re at a pretty early stage for long-form content on ActivityPub, and the majority of other products out there don’t necessarily have interfaces for supporting it yet. The easy part is that we can provide fallbacks, so if you’re scrolling on Mastodon you might see an article title and excerpt, with a link to read the full post – and that works pretty well! The dream, though, is to make it so you can just consume the full article within whatever app you happen to be using, and doing that requires more collaboration between different platforms to agree on how to make that possible.SWF: You’ve been an active participant in the ActivityPub community since you decided to implement the standard. Why?JO: ActivityPub is a movement as much as a technology protocol, and behind it is a group of people who all believe in making the web a weird, wonderful open place for collaboration. Getting to know those humans and being a part of that movement has been every bit as important to the success of our work as writing the code that powers our software. We’ve received incredible support from the Mastodon team, AP spec authors, and other platforms who are building ActivityPub support. Without actively participating in the community, I don’t know if we would’ve gotten as far as we have already. SWF: Ghost has implemented not only a publishing interface, but also a reading experience. Why?JO: The big difference between ActivityPub and email is that it’s a 2-way protocol. When you send an email newsletter, that’s it. You’re done. But with ActivityPub, it’s possible to achieve what – in the olden days – we fondly referred to as ‘the blogosphere’. People all over the world writing and reading each other’s work. If an email newsletter is like standing on a stage giving a keynote to an audience, participating in a network is more like mingling at the afterparty. You can’t just talk the whole time, you have to listen, too. Being successful within the context of a network has always involved following and engaging with others, as peers, so it felt really important to make sure that we brought that aspect into the product.SWF: Your reader is, frankly, one of the most interesting UIs for ActivityPub we’ve seen. Tell us about why you put the time and effort into making a beautiful reading experience for Ghost.JO: We didn’t want to just tick the “ActivityPub support” checkbox – we wanted to create something that actually feels great to use every day. The idea was to bring some of the product ideas over from RSS readers and kindles, where people currently consume long-form content, and use them as the basis for an ActivityPub-native reading experience. We experimented with multiple different approaches to try and create an experience with a mix of familiarity and novelty. People intuitively understand a list of articles and a view for opening and reading them, but then when you start to see inline replies and live notifications happening around those stories – suddenly it feels like something new and different. SWF: If people want to get a taste of the kind of content Ghost publishers produce, what are some good examples to follow?JO: Tough question! There are so many out there, and it really depends on what you’re into. The best place to start would be on ghost.org/explore – when you can browse through all sorts of different categories of creators and content, and explore the things that interest you the most. SWF: If I’m a Fediverse enthusiast, what can I do to help make Ghost 6 a success?JO: Follow Ghost publishers and engage with their content – likes, replies, reposts all help! Most importantly, help us spread the word about what’s possible when platforms collaborate rather than compete. And if you’re technical, our ActivityPub implementation is entirely open source on GitHub – contributions, bug reports, and feedback make the whole ecosystem stronger.
  • 0 Votes
    28 Posts
    15 Views
    Guest?
    @irelephant@app.wafrn.net @admin @_elena @irelephant@calckey.world oh, also external account, nicehttps://app.wafrn.net/blog/@luca.sironi.tk(i just couldn't get used to wafrn gui)
  • 0 Votes
    31 Posts
    17 Views
    @stephtara no, this should work on all plans!