Glossary#
Related Documents:
- Existing Code - Current codebase
- Lexicon Schemas - AT Protocol terms
AT Protocol / Bluesky Terms#
AT Protocol (ATProto)#
The underlying protocol for Bluesky and other federated social apps. Provides authentication, data storage, and federation capabilities.
PDS (Personal Data Server)#
A server that stores a user's personal data in the AT Protocol network. Users can host their own PDS or use a provider like Bluesky.
DID (Decentralized Identifier)#
A unique identifier for users in AT Protocol. Format: did:plc:abc123...
Lexicon#
A schema definition that describes the structure of records, queries, procedures, and subscriptions in AT Protocol.
NSID (Namespaced Identifier)#
A unique identifier for lexicons using reverse-DNS notation. Example: social.drydown.review
Record#
Data stored in a user's repository. Examples: posts, profiles, follows, and custom data like fragrance reviews.
Repository (Repo)#
A user's collection of records in their PDS. Organized by collection type (NSID).
Collection#
A namespace for related records. Example: social.drydown.review is a collection of fragrance review records.
TID (Timestamp Identifier)#
A timestamp-based unique identifier for records. Used as the default key for records.
Rkey (Record Key)#
The unique identifier within a collection for a specific record. Can be a TID or a fixed value like "self".
OAuth 2.0#
Authentication protocol used by AT Protocol for user authorization.
DPoP (Demonstrating Proof of Possession)#
A security mechanism that binds access tokens to a specific client, preventing token theft.
Agent#
An API client instance (@atproto/api) authenticated with a user's session. Used to make API calls.
Fragrance Terms#
Sillage#
The trail of scent left behind by a fragrance. Also called "projection over distance."
Longevity#
How long a fragrance lasts on the skin before becoming undetectable.
Projection#
How far a fragrance projects from the body. Similar to sillage but measured closer to the wearer.
Top Notes#
The initial scents perceived immediately after application (0-15 minutes). Usually lighter, more volatile compounds.
Heart Notes (Middle Notes)#
The scents that emerge after top notes fade (15 minutes - 4 hours). The "character" of the fragrance.
Base Notes#
The lasting scents that appear after 4+ hours. Usually heavier, longer-lasting compounds.
Drydown#
The final stage of a fragrance's development when only base notes remain. Also the name of this app!
Skin Chemistry#
How a fragrance interacts with an individual's skin pH, oils, and body chemistry. The same fragrance can smell different on different people.
Complexity#
How many distinct notes or layers a fragrance has. A complex fragrance evolves over time with multiple facets.
App-Specific Terms#
Stage 1 (Initial)#
The first rating stage capturing top notes and first impressions (0-2 hours).
Stage 2 (Heart)#
The second rating stage capturing middle notes (2-4 hours after application).
Stage 3 (Final)#
The third rating stage capturing base notes, longevity, and overall experience (4+ hours after application).
In-Progress Review#
A review that hasn't completed all required stages yet. Stored in LocalStorage.
Completed Review#
A review with all required stages finished. Stored in AT Protocol repository.
Calculated Rating#
The final weighted average rating (0-5, to 3 decimal places) based on all stage ratings and user's custom weights.
Rating Weights#
User-configurable values (0-10) that determine how much each rating criterion affects the final calculated rating.
Grapheme#
A user-perceived character. Used for text length counting. Examples: "a" = 1 grapheme, "👍" = 1 grapheme, "👨👩👧👦" = 1 grapheme (family emoji).
Technical Terms#
LocalStorage#
Browser-based storage for client-side data. Used for in-progress reviews in Drydown.
Context API#
React/Preact pattern for passing data through the component tree without prop drilling.
Hooks#
React/Preact functions that let you use state and lifecycle features in function components. Examples: useState, useEffect, useContext.
SPA (Single Page Application)#
A web app that loads a single HTML page and dynamically updates content without full page reloads.
OAuth Client#
The application requesting authorization (Drydown). Receives access tokens after user approval.
OAuth Session#
An authenticated session containing access tokens and user information.
Bundle Size#
The total size of JavaScript/CSS files sent to the browser. Smaller is better for performance.
Code Splitting#
Breaking JavaScript into smaller chunks loaded on demand, improving initial load time.
Development Terms#
MVP (Minimum Viable Product)#
The simplest version of the product with core features. For Drydown: three-stage reviews, rating calculation, and Bluesky sharing.
P0/P1/P2 (Priority Levels)#
- P0: Must-have for MVP (launch blocker)
- P1: Important for good UX (launch soon after MVP)
- P2: Nice-to-have (can launch without)
Phase#
A logical grouping of features for implementation. Drydown has 4 phases.
Status Indicators#
- 🔴 Planned - Not started
- 🟡 In Progress - Actively being worked on
- 🟢 Implemented - Complete and tested
- 🔵 Documented - Implemented with full documentation
Related Documents:
- Product Features - Feature definitions using these terms
- Lexicon Schemas - AT Protocol technical details
- Requirements - Detailed specifications