--- title: Overview description: Understand the role and boundaries of the Preferences package. order: 1 toc: - id: package-role title: Package role - id: capabilities title: Capabilities - id: design-boundary title: Design boundary --- ## Package role {#package-role} `@workspace/preferences` is a small React store for application preferences such as theme mode, navigation density, and compact layouts. It keeps the preference vocabulary owned by the consuming application. ## Capabilities {#capabilities} - Extend the preference shape through TypeScript module augmentation. - Hydrate a deterministic server snapshot with `useSyncExternalStore`. - Persist typed `{ key, value }` updates through an application callback. - Synchronize preferences with browser APIs through composable effects. - Validate external updates from cookies, requests, forms, or message channels. ## Design boundary {#design-boundary} The package does not define product-specific keys and does not select a persistence service. The application supplies its complete initial snapshot and decides how accepted changes are stored.