A community app lexicon

This has come up again, and needs to be worked on by people who are intending to actively curate listings of apps.

For the atproto community, we can see more apps and services and SDKs launch all the time.

There were, at one point, 21 excel spreadsheets and awesome lists and more things that listed things (Nov 2024 so a bit stale Discord thread)

What would be useful to us, in the atproto community, to make lists of? Apps, SDKs, infra code, etc

  • BlueskyDirectory.com is the largest meta listing. It would be great if they participated in adopting and/or cross posting their listsings, and participated in the lexicon design process
  • atproto.com is slowly hand adding various SDKs and apps
  • Kuba’s https://sdk.blue

So, if there are people who want to do this work, organize yourselves, find a repo to do the work in, and go.

I will say, part of this is commiting to build at least one app that does the listing! There’s a meta service of such a feature, like allowing people to make a “curated list” of such things.

If someone would like to take this on as a Lexicon Community Working Group, here’s what needs to be filled out:

4 Likes

https://store.stucco.software/ is a start – right now its not using AT protocol at all, just resolving http urls and looking for json blobs.

It would be pretty straightforward to grab records out and harmonize their data. I’ll start by checking out how those three directories do it, and see if I can resolve some DID’s for apps out of The Graph™.

This is effectively a dupe of me posting in this other thread:

Where I am advocating for a very simple app lexicon that can get used, not a lexicon lexicon.

aproto.garden seems to be a good starting point for the discussion. Although Lexicon and the source code are not publicly available, you can preview the schema from the sample data.

This is intended to build a global directory, but I think it can also be used as an entry for a personal curated list.

2 Likes

Oh interesting, nice find. Some good basic fields to start with.

1 Like

We (Bluesky Directory) would participate in this.

1 Like

I’ll go ahead and ping @atpota.to and @dame.is and see if they’re interested in sharing their lexicon or taking part in this at all.

2 Likes

hey all! yes, i started work on atproto.garden last year and it stalled out a bit due to priorities with anisota — would love to see it get taken up and transformed into a community run project if there was momentum and interest in that

it was intended to be a community project from the start but i never got around to announcing it

it’s pretty far along but still needs testing and polish and refinements to the lexicons and structure

3 Likes

it has some test listings already, a review and upvoting system, constellation integration, and much more!

oh it is open source btw, just not easy findable atm

https://github.com/dame-is/atproto-garden

1 Like

Looks like it’s private. I’m getting a 404.

oops 1 sec, lemme make it public

edit: okay should be public now! not sure why it was private, thought i created it public

1 Like

the intention with atproto garden was to create an initial front end to let people easily interact with the lexicon and begin seeding content, but the hope was that eventually anyone could fork it or make their own UI, curate collections, etc etc

4 Likes

later today i’m gonna move the repo under the atpotato account and push it to tangled as well, i’d definitely like to contribute and help guide the project to a degree if there’s enough interest… i mainly stalled out last year cause it was too much for me to do alone and i didn’t have enough time back then to really organize any of the community

3 Likes

I like the overall shape of the lexicon, but I’m not 100% sure what the best options for official validation are yet.

One thing I wanted was a way to have it so that if the official account for an app creates the entry then the registry can recognize it as official.

But then I wasn’t totally sure what the best verifications methods were. Some thoughts I was working through:

  • With Roomy we have an official account with the @roomy.space handle, and the app is accessible at https://roomy.space, but the main landing page is https://a.roomy.space right now.
  • It might be good to let the apps have one primary website, https://a.roomy.space in Roomy’s case, but also have maybe labeled other links, such as App, Docs, etc.
  • For an app to be official it should have all of it’s listed URLs verified maybe. I’m thinking we could use rel=me links on the pages, similar to Mastodon’s verified profile links.
    • The app submission record has one or more URLs, and then the response for each URL needs to include a rel=me link containing the DID of the account with the submission.
  • In addition, an official entry should be marked as such by putting it in the repo at garden.atproto.directory.submission/self
    • So the self rkey represents the profile saying, “this is the official account for this app”, and then the link verifications prove to users that the linked website attests to the fact that the DID of the account with the self record is the official account for the app.
2 Likes

Yes, the validation/verification side of things was one of the areas that I hadn’t gotten around to cause it felt like the one that needed to be carefully thought out — love your line of thinking here, and I also was thinking there could be a way for a verification and trusted verifiers like system to be put in place via a lexicon as well. So “atproto garden” as a “brand” could be a verifier and so could other community members that are trusted.

2 Likes

Yeah, the “official” / “verified” nature of a record doesn’t imply it’s not spam, which is interesting.

And that’s where things like curating / moderating as well as representing trust signals come into play, which you already started on with upvoting and reviews!

I think the directory itself can, for example, afford to have it’s own criteria for a record getting approved for the site.

It seems like it’d be good to have a record created by different directory listings or even jsut normal users with personal lists, that says, “I’m including this app in my list”.

That would provide a trust signal if you trusted the moderation decisions of that directory list site, but obviously nobody else has to respect that listing.

But anway, if someone creates a new submitssion with a self key, anybody can independently verify whether or not it’s “official”. Whether or not different directories want to show it, can be based on manual review, or an AI scan, or user upvotes or whatever.

I think that’s something that can probably be iterated on fairly independently from the lexicon, though we want to think through some scenarios so that we don’t miss anything that we’ll want in the lexicon.

Whether this should be just internal or in the lexicon, one thing to consider for verification (for non-SDKs): whether things like a TOS, privacy policy, and uh the data-statement-thing exist. Those are important for anything with the potential for wide adoption / attention.

1 Like

Those seem like good things to put in the lexicon.

I really really really recommend that we start with a super minimal set that is as core as possible – and others can extend it with extra fields.

I’d also ask people to list their goals and if they intend to build something.

e.g. make a list of apps being built in the atmosphere so that people can visit them and try them out - this might be my personal example.

1 Like