quickslice#
Quickslice is a quick way to spin up an AppView for AT Protocol applications. Import your Lexicon schemas and you get a GraphQL API with OAuth authentication, real-time sync from the network, and joins across record types without setting up a database or writing any backend code.
Warning This project is in early development. APIs may change without notice.
What Quickslice Does#
- Connects to Jetstream and tracks the record types defined in your Lexicons
- Indexes relevant records into a database (SQLite or Postgres)
- Generates GraphQL queries, mutations, and subscriptions from your Lexicon definitions
- Handles OAuth and writes records back to the user's PDS
- Enables joins by DID, URI, or strong reference, so you can query a status and its author's profile in one request
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
}
}
}
Quick Start#
Docker#
Run Quickslice locally with Docker:
docker compose up --build
Open http://localhost:8080 and login with your Bluesky handle.
For PostgreSQL instead of SQLite:
docker compose -f docker-compose.postgres.yml up --build
Native Development#
For development without Docker:
Prerequisites:
Setup:
# Server
cd server
cp .env.example .env
make db-setup-sqlite
gleam run
# Client (rebuild after changes)
cd client
npm install
gleam run -m lustre/dev build
See server/README.md for detailed configuration.
Documentation#
Structure#
server/- Main server with database layer, GraphQL API, and Jetstream ingestionlexicon_graphql/- GraphQL schema generation from AT Protocol Lexiconsatproto_car/- CAR (Content Addressable aRchive) file parsing for backfillsclient/- Web-based GraphQL playground and admin UIquickslice-client-js/- JavaScript client librarywww/- Documentation website
License#
Apache License 2.0