Skip to main content

Real architecture · Junior

Chicisimo: vertical ML in fashion

Real production architecture. Key points: data flywheel and domain ontology.

12 min read · Source: Chicisimo · Content reviewed on October 23, 2026

Short answer

Real production architecture. Key points: data flywheel and domain ontology. Chicisimo is a fashion app whose goal was to offer automated outfit advice. When the article was written, the app had more than 4 million women, and the text is the author's account, who presents himself as CEO and cofounder, of how the data and machine learning approach helped growth.

01 · CONTEXT AND THESIS

Advising what to wear, automatically

Chicisimo is a fashion app whose goal was to offer automated outfit advice. When the article was written, the app had more than 4 million women, and the text is the author's account, who presents himself as CEO and cofounder, of how the data and machine learning approach helped growth.

The team's thesis was that outfits and wardrobes are the best assets for understanding people's taste, and that understanding taste would transform online fashion.

To execute the thesis, the author describes an infrastructure with these elements: a consumer app that stores the clothes in the wardrobe, with an interface focused on capturing the right input and delivering the right output; a data platform that automates the interpretation of what comes in; a dataset that reflects what people wear, what they have in their wardrobe, and how they think about clothing; and an intellectual property portfolio.

02 · THE APP AS A SENSOR

Learning fast with a small product

The team says it launched an extremely early alpha, with one key feature. This allowed them to iterate with real data and get a lot of qualitative feedback.

To find the retention levers, the team used behavioral cohorts and ran them not only on the actions people performed, but also on the value they received.

03 · DATA PLATFORM

From chaotic data to a graph

All of Chicisimo's content is user-generated, and this imposes challenges: the system needs to automatically classify different types of content, create the right incentives, and understand how to match input and output.

The team says the volume of data, being chaotic, was not actionable. The way out was to give structure to parts of the data, which resulted in the Social Fashion Graph, a compact representation of how needs, outfits, and people relate.

The team treats outfits like playlists: an outfit is a combination of items that make sense to consume together. With collaborative filtering, these relationships enable recommendations in different areas of the app.

The diagram below is a didactic illustration of the roles the article describes; the queue and the classifier are our own design choices, not details from the source.

  1. In this design, the app sends the API what people create and express: outfits and needs.

    Architecture diagram: Chicisimo: from app to dataset and back to the app
    CLChicisimo appcaptures the input
    CPApp API
    QNew content queue
    CPContent classifier
    DBNeeds ontology
    DBSocial Fashion Graph
    CPRecommendation service
  2. The API publishes the new content to a queue to be classified later.

    Architecture diagram: Chicisimo: from app to dataset and back to the app
    CLChicisimo app
    CPApp API
    QNew content queuenew content
    CPContent classifier
    DBNeeds ontology
    DBSocial Fashion Graph
    CPRecommendation service
  3. The classifier consumes the queue and consults the ontology to frame the content.

    Architecture diagram: Chicisimo: from app to dataset and back to the app
    CLChicisimo app
    CPApp API
    QNew content queue
    CPContent classifierclassifica
    DBNeeds ontologyvocabulary
    DBSocial Fashion Graph
    CPRecommendation service
  4. The result becomes relationships in the graph between needs, outfits, and people.

    Architecture diagram: Chicisimo: from app to dataset and back to the app
    CLChicisimo app
    CPApp API
    QNew content queue
    CPContent classifier
    DBNeeds ontology
    DBSocial Fashion Graphnew relationships
    CPRecommendation service
  5. The recommendation service reads the graph and returns the response to the app through the API; what the person does next feeds back into the cycle.

    Architecture diagram: Chicisimo: from app to dataset and back to the app
    CLChicisimo app
    CPApp API
    QNew content queue
    CPContent classifier
    DBNeeds ontology
    DBSocial Fashion Graph
    CPRecommendation servicereads the graph

The article summarizes the effect: the data platform creates a high-quality dataset tied to the app, which improves with each new expression of taste. At the same time, as people give input and respond to the output, the experience encourages them to give more input, which feeds the team with feedback and accumulates data. This loop between product and data is what is usually called a data flywheel, a term that is not from the article.

04 · ONTOLOGY

Giving structure without stifling expression

The app was built for people to express a what-to-wear need. There was noise in the data, and one of the biggest difficulties was understanding how people expressed the same fashion need in different ways: someone who needs ideas for going to school can say so in many different ways. To capture and structure this diversity, the team built what it calls a fashion ontology.

The ontology is described as a multi-level list of all the descriptors needed to define a fashion product or an outfit, plus the relationships between them. According to the text, it allows content to be classified automatically by many factors, makes it easy to match different catalogs, and gives the team a common language.

On top of the ontology, the system converts fashion products into meta-products, abstractions of specific products from any catalog or wardrobe. A fashion product is ephemeral, but its descriptors are not, so the system retains the value. One of the infrastructure's first tasks is to convert every incoming product into a meta-product.

  1. People write the same need in different ways; the normalizer receives this free text.

    Architecture diagram: Chicisimo: ontology and meta-products
    CLPerson describing a need
    CPNeed normalizerfree text
    DBStore catalogs
    CPMeta-product converter
    DBOntologia
    DBSocial Fashion Graph
  2. The normalizer consults the ontology to map the variations to the same need.

    Architecture diagram: Chicisimo: ontology and meta-products
    CLPerson describing a need
    CPNeed normalizer
    DBStore catalogs
    CPMeta-product converter
    DBOntologiaequivalences
    DBSocial Fashion Graph
  3. On the other side, items from store catalogs arrive at the converter, which describes them with the ontology's descriptors and produces meta-products.

    Architecture diagram: Chicisimo: ontology and meta-products
    CLPerson describing a need
    CPNeed normalizer
    DBStore catalogs
    CPMeta-product convertermeta-produto
    DBOntologia
    DBSocial Fashion Graph
  4. Normalized needs and meta-products meet in the graph, which now uses a single vocabulary.

    Architecture diagram: Chicisimo: ontology and meta-products
    CLPerson describing a need
    CPNeed normalizer
    DBStore catalogs
    CPMeta-product converter
    DBOntologia
    DBSocial Fashion Graphcommon vocabulary
EscolhaWhat the article attributes to it
Structuring the dataGave control.
Encouraging unstructured dataGave knowledge and flexibility.
Having an ontologyA common language for the team and matching across catalogs.

The text concludes that an outfit, a need, or a person can have a lot of understandable data associated with them, if the app lets people express themselves freely and the system behind it is the right one.

05 · ALGORITHMS AND GRADUAL ROLLOUT

Algorithms on a proprietary dataset

According to the author, fashion brings its own difficulties: there is no easy way to match an outfit to a purchasable product, and style is complex for a machine to capture and classify.

In the version published on HackerNoon, the author states that having the right dataset lets you focus on narrow outfit-recommendation use cases and deliver value through the algorithms, instead of spending time collecting and cleaning data.

In that same version, since they already had a product people loved, the team could release early algorithm results partially hidden and increase their presence as feedback improved the results.

  1. The app requests recommendations from the API.

    Architecture diagram: Chicisimo: launching a new, partially hidden algorithm
    CLChicisimo app
    CPApp API
    CPCollaborative-filtering recommendation
    CPNew algorithm
    DBSocial Fashion Graph
    NWFeedback signals
  2. In this design, the established path keeps responding to the app.

    Architecture diagram: Chicisimo: launching a new, partially hidden algorithm
    CLChicisimo app
    CPApp API
    CPCollaborative-filtering recommendationcurrent path
    CPNew algorithm
    DBSocial Fashion Graph
    NWFeedback signals
  3. The new algorithm runs alongside, and its output appears in only part of the experience.

    Architecture diagram: Chicisimo: launching a new, partially hidden algorithm
    CLChicisimo app
    CPApp API
    CPCollaborative-filtering recommendation
    CPNew algorithmpartial exposure
    DBSocial Fashion Graph
    NWFeedback signals
  4. Feedback signals guide whether the new algorithm's presence should grow.

    Architecture diagram: Chicisimo: launching a new, partially hidden algorithm
    CLChicisimo app
    CPApp API
    CPCollaborative-filtering recommendation
    CPNew algorithm
    DBSocial Fashion Graph
    NWFeedback signalsfeedback

In the version published on HackerNoon, a new front mentioned is adding a fourth element to the graph, purchasable products, with a system to match outfits and products automatically.

06 · LESSONS AND LIMITS

What to take into your design

In the version of the text published on HackerNoon, the team was small: eight people, four in product and four engineers. The updated version of the same text, however, records that Chicisimo was shut down in October 2020.

Lessons to take away: treat the product as a sensor for the dataset; give domain structure to the data; and launch new models gradually, guided by feedback.

Frequently asked questions

What is Chicisimo: vertical ML in fashion?

Real production architecture. Key points: data flywheel and domain ontology.

What does the Chicisimo: vertical ML in fashion design cover?

It is organized in these sections: Advising what to wear, automatically, Learning fast with a small product, From chaotic data to a graph, Giving structure without stifling expression, Algorithms on a proprietary dataset, and What to take into your design.

How long is Chicisimo: vertical ML in fashion and what level is it?

It takes about 12 minutes to read and is rated Junior level.

Now design it yourself

Run this case as an interview in the System Design school: you make the decisions, the tutor challenges them and you see how your design scores.