Design a Search and Recommendation System for Design Templates
Last updated: April 5, 2025
Quick Overview
Design a system that helps users discover relevant design templates through search, browsing, and personalized recommendations from a catalog of millions of templates.
Canva
April 5, 202513
10
2,543 solved
Design a system that helps users discover relevant design templates through search, browsing, and personalized recommendations from a catalog of millions of templates.
Template discovery is a critical growth driver for Canva. Users need to find the right starting template quickly. The system must handle text search, visual similarity, category browsing, and personalized recommendations across millions of templates in dozens of languages.
What the Interviewer Expects
- Design a search indexing pipeline for templates with text and visual features
- Propose a ranking model that balances relevance, quality, and personalization
- Handle multilingual search and localized content
- Design a recommendation engine for personalized template suggestions
- Discuss real-time indexing for newly published templates
Key Topics to Cover
How to Approach This
- Start by clarifying functional and non-functional requirements with the interviewer.
- Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
- Draw a high-level architecture first, then deep dive into 1-2 critical components.
- Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
- Address failure scenarios, monitoring, and how the system handles 10x traffic spikes.
Possible Follow-up Questions
- How would you handle seasonal spikes in search (e.g., holiday cards in December)?
- How would you measure search quality and iterate on ranking?
- How would you prevent low-quality templates from dominating search results?
- How would you support visual search (upload an image to find similar templates)?
Sharpen Your Skills on Codemia
Practice similar problems with our interactive workspace, get AI feedback, and track your progress.
Practice System Design ProblemsSample Answer
Requirements
- Functional Requirements:
- Allow users to search for templates using keywords and tags.
- Enable browsing templates by categories and subcategories.
- Provide personalized recommendations ...
Capacity Estimation
Assuming Canva has around 100 million active users and each user searches for templates about 5 times a week, we can estimate:
- Search Requests:
- 100 million users x 5 searches/week = 500 mill...