a a vibe-coded abomination experiment of a fragrance review platform built on the atmosphere. drydown.social

Phase 2: Lexicon Integration#

Status: 🔴 Planned

Goal: Store reviews and settings in AT Protocol repositories

Lexicon Definitions#

Create JSON files in /src/lexicons/:

  • social.drydown.review.json - Review record schema
  • social.drydown.settings.json - Settings record schema

See Lexicon Schemas for full definitions.

API Integration Tasks#

1. Create Review Record#

await agent.com.atproto.repo.createRecord({
  repo: agent.session.did,
  collection: 'social.drydown.review',
  record: reviewData
})

2. Update Review Record (Add Stages)#

await agent.com.atproto.repo.putRecord({
  repo: agent.session.did,
  collection: 'social.drydown.review',
  rkey: extractRkeyFromUri(review.uri),
  record: updatedReviewData
})

3. List User's Reviews#

const { records } = await agent.com.atproto.repo.listRecords({
  repo: agent.session.did,
  collection: 'social.drydown.review'
})

4. Settings Storage#

// Load
const { value } = await agent.com.atproto.repo.getRecord({
  repo: agent.session.did,
  collection: 'social.drydown.settings',
  rkey: 'self'
})

// Save
await agent.com.atproto.repo.putRecord({
  repo: agent.session.did,
  collection: 'social.drydown.settings',
  rkey: 'self',
  record: settingsData
})

Migration: LocalStorage → AT Protocol#

When review is completed:

  1. Validate review data
  2. Create AT Protocol record
  3. On success: Remove from LocalStorage
  4. On failure: Keep in LocalStorage, show retry

See API Documentation for details.


Next: Phase 3 - Social Features