II.
StackProfile JSON
Structured · livestack-profile:photo-gallery-dam
Photo Gallery / DAM (React, Sharp, Boto3, PostgreSQL, Redis, FastAPI) json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "stack-profile:photo-gallery-dam",
"_kind": "StackProfile",
"_file": "domain/stack-profiles/deep-stacks-6.yaml",
"_cluster": "domain",
"attributes": {
"displayName": "Photo Gallery / DAM (React, Sharp, Boto3, PostgreSQL, Redis, FastAPI)",
"description": "A digital asset management system for photographers and creative teams\nto upload, organize, transform, and distribute image assets at scale.\nFastAPI handles asset ingestion with background workers that use Sharp\nfor on-the-fly image resizing, format conversion, and thumbnail\ngeneration. React powers the gallery interface with lazy-loaded grid\nviews, lightbox previews, and bulk metadata editing. Boto3 manages\ncloud object storage with lifecycle policies for tiered storage costs.\nPostgreSQL stores asset metadata, tags, collections, and access\npermissions. Redis caches image transformation results and CDN\ninvalidation queues. The tradeoff is storage cost management for\nhigh-resolution originals and the complexity of color profile\npreservation across format conversions.\n",
"composes": [
"framework:react",
"library:sharp",
"library:boto3",
"tool:psql",
"library:redis",
"framework:fastapi",
"library:pydantic",
"library:uvicorn"
]
},
"outgoingEdges": [
{
"from": "stack-profile:photo-gallery-dam",
"to": "framework:react",
"kind": "composed_of"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "library:sharp",
"kind": "composed_of"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "library:boto3",
"kind": "composed_of"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "tool:psql",
"kind": "composed_of"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "library:redis",
"kind": "composed_of"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "framework:fastapi",
"kind": "composed_of"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "library:pydantic",
"kind": "composed_of"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "library:uvicorn",
"kind": "composed_of"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "role:fullstack-engineer",
"kind": "used_by_role"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "role:media-engineer",
"kind": "used_by_role"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "role:backend-engineer",
"kind": "used_by_role"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "workflow:content-rights-management-audit",
"kind": "follows_workflow"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "workflow:design-review",
"kind": "follows_workflow"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "domain:media-entertainment",
"kind": "applies_to"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "domain:arts-culture",
"kind": "applies_to"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "skill-area:image-processing",
"kind": "requires_skill_area"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "skill-area:api-design",
"kind": "requires_skill_area"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "skill-area:caching-strategies",
"kind": "requires_skill_area"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "skill-area:frontend-development",
"kind": "requires_skill_area"
},
{
"from": "stack-profile:photo-gallery-dam",
"to": "skill-area:backend-data-persistence",
"kind": "requires_skill_area"
}
],
"incomingEdges": []
}