Skip to content

Pinterest — Notes#

Functional#

  • Save (pin) images, organize into boards.
  • Discover via home feed, search, related pins, Lens (visual search).
  • Follow users / boards / topics.
  • Shopping (buyable pins).

Non-functional#

  • 500M+ MAU.
  • p99 feed open < 300 ms.
  • Search & related must be visually relevant.

Capacity#

  • 200B+ pins total.
  • 5M+ pins/day saved.
  • Image storage many PB; thumbnails generated × 6 sizes.

Schema#

  • pins(id, owner_id, image_url, title, desc, board_id, source_url)
  • boards(id, owner, name, secret)
  • saves(user_id, pin_id, board_id, ts)
  • embeddings(pin_id, vec, model_version)

Trade-offs#

  • Image-centric drives recommendation away from text and toward visual + behavior signals.
  • PinSage trains slowly but unlocks distinctive UX.
  • Lens UX requires very low ANN latency; pre-compute everything, use HNSW with PQ compression.

Refs#

  • Pinterest engineering blog (PinSage paper, "Visual Discovery"), "Personalized Visual Recommendation" (KDD '18), ByteByteGo "Design Pinterest", Alex Xu Vol 2.