The canonical product data for FreClean's cleaning and fragrance product lines: catalog data, JSON Schema, an SDS template, packaging guidelines, and a validation script that fails CI if a product claims availability it hasn't earned.
Part of the FreClean ecosystem. freclean-api and freclean-website should read product facts from products.yaml rather than duplicating them.
In development. One real product line (FreClean Multi-Surface Cleaner) is tracked at lifecycleStatus: development; a fragrance line is tracked at planned. No product in this catalog is currently available.
| Path | Purpose |
|---|---|
product.schema.json |
JSON Schema every catalog entry must satisfy |
products.yaml |
The actual product data; source of truth |
validate-catalog.ts |
Validates the catalog against the schema and enforces the realism rule (see below) |
PRODUCT-LIFECYCLE.md |
The five lifecycle states and how a product moves between them |
SDS-TEMPLATE.md |
Safety Data Sheet template, required before a product can go available |
PACKAGING-GUIDELINES.md |
Label requirements and what not to print yet |
assets/img/ |
Current product photography |
A product cannot be marked lifecycleStatus: available in this catalog unless it also has a real SKU (not the placeholder "Not yet available") and manufacturingStatus: in_production. validate-catalog.ts checks this on every push via CI; see PRODUCT-LIFECYCLE.md for why this is enforced in code rather than left to convention.
npm install
npm run validate # validates products.yaml against the schema- Publish a real SDS for the Multi-Surface Cleaner once the formulation is finalized
- Assign real SKUs once packaging is finalized
- Add a script that syncs this catalog into freclean-api's
/api/productson deploy - Add ingredient/hazard data once available
Not provided.