Auto-indexing service and GraphQL API for AT Protocol Records quickslice.slices.network/
atproto gleam graphql
67
fork

Configure Feed

Select the types of activity you want to include in your feed.

Gleam 96.3%
Erlang 1.7%
JavaScript 0.7%
Dockerfile 0.1%
Makefile 0.1%
Shell 0.1%
HTML 0.1%
CSS 0.1%
Other 1.1%
109 1 30

Clone this repository

https://tangled.org/slices.network/quickslice https://tangled.org/did:plc:dzmqinfp7efnofbqg5npjmth/quickslice
git@tangled.org:slices.network/quickslice git@tangled.org:did:plc:dzmqinfp7efnofbqg5npjmth/quickslice

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

quickslice#

GraphQL API for AT Protocol records with automatic schema generation from Lexicon definitions.

Work in progress. APIs subject to change.

Features#

  • Automatic GraphQL schema generation from AT Protocol Lexicons
  • Relay-compliant cursor-based pagination
  • Real-time ingestion via Jetstream
  • Backfill support for historical data
  • SQLite storage

Example#

The status lexicon (xyz.statusphere.status):

{
  "lexicon": 1,
  "id": "xyz.statusphere.status",
  "defs": {
    "main": {
      "type": "record",
      "key": "tid",
      "record": {
        "type": "object",
        "required": ["status", "createdAt"],
        "properties": {
          "status": {
            "type": "string",
            "minLength": 1,
            "maxGraphemes": 1,
            "maxLength": 32
          },
          "createdAt": { "type": "string", "format": "datetime" }
        }
      }
    }
  }
}

Querying the status records:

query {
  xyzStatusphereStatus(
    first: 50
    sortBy: [
      { field: "createdAt", direction: DESC }
    ]
    where: {
      status: { contains: "👍" }
    }
  ) {
    edges {
      node {
        uri
        did
        status
        createdAt
      }
      cursor
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Documentation#

Architecture#

  • lexicon_graphql/ - Schema generation from Lexicons
  • server/ - Database layer and record storage