The problem
A fashion shoot requires a studio, a photographer, a model and a full day of production. For a brand releasing dozens of items per season, cost becomes the limiting factor on the catalogue.
The product
GhostShoot turns a garment photo into a complete campaign: the garment is worn, styled and declined, with no studio.
Architecture
Application core
Symfony served by FrankenPHP, with PostgreSQL for business data.
Asynchronous processing
Image generation is slow and expensive, so it runs on dedicated workers with Redis handling the queue. The interface stays responsive while processing continues in the background.
Delivery pipeline
Continuous integration and deployment, fully containerised.
What this project demonstrates
Designing a product end to end — architecture, asynchronous processing, generative model integration and operations — not just building a website.