Defines and exports the single source of truth for the `seo_description` field length constraint, enforcing a hard database-level character cap. ## Key Components | Export | Type | Value | Description | |--------|------|-------|-------------| | `SEO_DESCRIPTION_MAX_LENGTH` | `number` | `160` | Hard cap matching the `varchar(160)` DB column constraint | ## Usage Example ```typescript import { SEO_DESCRIPTION_MAX_LENGTH } from '@flamingo-stack/openframe-frontend-core/utils'; // UI input enforcement // AI prompt guidance const prompt = `Generate a description under ${SEO_DESCRIPTION_MAX_LENGTH} characters.`; // Validation guard if (description.length > SEO_DESCRIPTION_MAX_LENGTH) { throw new Error(`SEO description exceeds ${SEO_DESCRIPTION_MAX_LENGTH} character limit.`); } ``` ## Notes > **Hard cap** — unlike `seo_title` (a soft search-engine recommendation), this limit is enforced at the database level (`varchar(160)`). Postgres will reject values exceeding it outright. **Known consumers:** - `SEOEditorPreview` — binds `maxLength` and renders an over-length alert - The hub — uses this constant for AI generation prompt guidance and the rewrite-to-fit helper --- **Source:** [`seo-description.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/seo-description.ts)