-
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Full Quickslice Backend Integration Epic
Migrate from a self-contained backend (OAuth + REST API + Database) to a headless architecture using Quickslice as the primary backend service.
Overview
Current Architecture:
- Custom OAuth flow via @atproto/oauth-client-node
- Session management with iron-session
- PostgreSQL database with Kysely ORM
- 15 REST API endpoints (src/app/api/)
- ProfileRepository pattern for CRUD operations
- ~1500 lines of backend boilerplate
Target Architecture:
- Quickslice-managed OAuth
- Quickslice session tokens
- Quickslice GraphQL API (replaces REST endpoints)
- Quickslice database abstraction
- Lanyards becomes pure frontend (GraphQL client)
- ~400 lines of frontend code
Why?
- Reliability: OAuth bugs (localhost vs 127.0.0.1) keep recurring
- Maintainability: Remove 600+ lines of ProfileRepository CRUD code
- Scalability: Quickslice-managed database and scaling
- Real-time: Quickslice enables Jetstream subscriptions
- Simplicity: Lanyards becomes frontend-only
Architecture: Current vs Target
Current (Self-Contained):
- Browser → Next.js Frontend → REST API → ProfileRepository → AtpAgent → Bluesky PDS
Target (Headless via Quickslice):
- Browser → Next.js Frontend (GraphQL client) → Quickslice GraphQL API → Bluesky PDS
Timeline: 4 Weeks
- Week 1: Auth + GraphQL setup
- Week 2: First module (Affiliations) migration
- Week 3: Remaining modules migration
- Week 4: Cleanup + Testing
Critical Blockers (Must resolve before starting)
- Understand Quickslice GraphQL schema generation
- Understand how Quickslice writes records to PDS
- Understand Quickslice session token management
- Quickslice OAuth vs AT Protocol OAuth decision
Files to Delete (Phase 3-4)
- src/lib/oauth/ (entire directory)
- src/lib/data/repository.ts (600+ lines)
- src/app/api/ (all REST endpoints)
- src/lib/db.ts
- @atproto/oauth-client-node, kysely, iron-session dependencies
Files to Create
- src/lib/graphql/client.ts
- src/lib/graphql/hooks.ts
- GraphQL query/mutation definitions
Risk Level: HIGH
This is a fundamental architectural change. Main risks:
- Quickslice GraphQL schema compatibility
- Session token management differences
- Database migration data safety
- PDS record write failures
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels