REVIEWED & READY TO INSTALL
System Design Primer
donnemartin/system-design-primer
The #1 open-source large-scale distributed systems and interview prep curriculum with 363k+ stars, 4-step framework, 8 case studies, and Anki flashcards.
STEP BY STEP
How to install System Design Primer
The step-by-step guide is right on this page, written for people who have never installed anything from GitHub.
Updated 9/30/2026SIGNUP BONUS
Sign up and get 5 xu to try the AI tools
Every new GitHot account gets 5 xu — enough to run the AI Repo Explainer, MCP Config Generator or Repo Health Check. Free, just an email or Google.
- GitHub stars
- 377,267
- Language
- Python
- Added
- 9/22/2026
How to install System Design Primer, step by step
Work from top to bottom. Each grey box is one command: copy the whole line, paste it into the terminal window and press Enter.
Never used a terminal? Read this first (1 minute)
A terminal is a window where you type commands for your computer. You do not need to understand them, just copy and paste them exactly.
- Windows: press the Windows key, type "PowerShell", then press Enter.
- macOS: press Command + Space, type "Terminal", then press Enter.
- Linux: press Ctrl + Alt + T.
- Copy a command from the guide, right-click inside the window you just opened to paste it (macOS: Command + V), then press Enter.
- Wait for the command to finish (the cursor blinks again on a new line) before running the next one.
Lines starting with # are notes; you do not need to copy them. If red error text appears, check the common errors section at the end of the guide.
1. What is System Design Primer?
System Design Primer is a free study resource about designing large systems: how sites like Twitter or Amazon cope with millions of users at once. Its author, Donne Martin, collected material that is scattered across the web into one ordered path, added interview exercises with sample solutions, and included three Anki flashcard decks.
To be clear: this is not software you install. It is a "book" hosted on GitHub, written for programmers and for people preparing for technical interviews. You need nothing to read it. "Installing" here really means: open the right page, save a copy for offline reading, and load the decks into Anki.
The content is released under the Creative Commons Attribution 4.0 license (CC BY 4.0), so you can use and share it freely as long as you credit the author.
A good fit if:
- You are learning to program, or already work as a developer, and have a "system design" interview coming up.
- You want to understand ideas such as caching, load balancers, and SQL versus NoSQL databases.
- You can read technical English.
Not a good fit if:
- You have never programmed. The material assumes you already know the basics of the web, servers and databases.
- You need it in a language other than English, Japanese, Simplified Chinese or Traditional Chinese. Those are the only complete versions; the other languages listed are still calls for translators.
- You are looking for a course with videos, quizzes and a certificate.
2. What do you need first?
To read it online you only need a web browser on a phone or computer and an internet connection. A GitHub account is not required.
The items below are needed only if you want the extras:
| You want to | You also need | What it is and where to get it |
|---|---|---|
| Study with flashcards | Anki | A flashcard app built on spaced repetition (it shows a card again just before you would forget it). Download from https://apps.ankiweb.net/ |
| Keep a local copy you can update with one command | Git | A tool for downloading and syncing source repositories. Download from https://git-scm.com/downloads |
| Build an EPUB e-book yourself | Pandoc and a shell that can run bash | Pandoc converts documents between formats. Download from https://pandoc.org/installing.html |
All of these are free on desktop. No API key, no payment card. The three Anki decks are tiny, well under 1 MB in total.
3. Step-by-step setup
Step 1: Open the guide on the web (the easiest way)
Open this address in your browser:
https://github.com/donnemartin/system-design-primer
Scroll past the file list. You should see the heading "The System Design Primer" and a system diagram. That is the right place, and the whole main text is on this one page.
The first line of the text has language links. "日本語", "简体中文" and "繁體中文" open full translations. The remaining languages lead to discussion threads about translating, not to finished translations.
Note: On a phone, GitHub may collapse the text. Tap "View all of README.md" (or the similar button) to see everything.
Step 2: Save a copy for offline reading
Without the command line: on the repository page, click the green Code button and choose Download ZIP. Unzip the file. You get a folder with README.md, plus solutions (worked answers), images and resources (the Anki decks).
With Git (easier to update later):
git clone https://github.com/donnemartin/system-design-primer.git
When it finishes, a system-design-primer folder appears in your current location. If it contains README.md, the download worked.
Note:
.mdfiles are Markdown text. Notepad shows raw text and symbols with no pictures. To see it formatted as on the web, open it in an editor with a Markdown preview, for example Visual Studio Code (https://code.visualstudio.com/).
Step 3: Install Anki and import the three decks
- Download and install Anki from https://apps.ankiweb.net/.
- In the folder from Step 2, open
resources/flash_cards. It holds three files:System Design.apkg: system design concepts.System Design Exercises.apkg: system design exercises.OO Design.apkg: object-oriented design exercises.
- Double-click each file. Anki opens and imports the cards.
If you did not download the whole repository, browse to resources/flash_cards on GitHub, open each file and use the download button (the arrow icon, "Download raw file").
What success looks like: Anki's main screen lists the new decks with a count of cards due today.
Step 4 (optional): Build an EPUB e-book
The repository ships a script, generate-epub.sh, that stitches the README and the solutions into an EPUB for e-readers. It needs Pandoc and runs in bash (built into macOS and Linux; on Windows use the Git Bash that comes with Git, or WSL).
From inside the system-design-primer folder, run:
bash generate-epub.sh
What success looks like: the screen prints "Generating ..." lines followed by "Done!", and the folder now contains README.epub (English, with solutions) along with EPUB files for the Japanese and Chinese versions.
4. First use
The guide is long. Do not read it top to bottom. Follow the order the author suggests:
- Find "System design topics: start here". It points you to a Harvard lecture on scalability and a series of articles on the same subject. Together they give the big picture: vertical and horizontal scaling, caching, load balancing, database replication and partitioning.
- Read the three trade-off pairs: performance versus scalability, latency versus throughput, availability versus consistency. The line the guide keeps repeating is that everything is a trade-off.
- Look at the "Study guide" table. It has three columns for a short, medium or long preparation window. With little time, aim for breadth and solve a few questions; with more time, go deeper and solve most of them.
- Learn the four-step answer in "How to approach a system design interview question": clarify use cases and constraints, sketch a high-level design, design the core components, then scale the design and deal with bottlenecks.
- Try one question. The gentlest starting point is "Design Pastebin.com (or Bit.ly)". Write your own answer using the four steps, then open
solutions/system_design/pastebinand compare with the sample solution.
Your first result: a page of notes listing the requirements, a block diagram of a link-shortening service, and a clear idea of what you missed compared with the sample.
Alongside that, open Anki daily and work through the "System Design" deck. The author describes the decks as handy for studying on the go.
In total there are 8 system design questions with solutions (Pastebin, the Twitter timeline, a web crawler, Mint.com, a social network, a key-value store for a search engine, Amazon's sales ranking, and a system serving millions of users on AWS) and 6 object-oriented design questions. The object-oriented section is marked as under development.
5. Common problems and fixes
| Symptom | Cause | Fix |
|---|---|---|
Clicking an .apkg file on GitHub shows a web page instead of downloading | GitHub displays a file info page and does not download automatically | Use the download button ("Download raw file") at the top right of that page, or grab everything with "Download ZIP" |
Double-clicking an .apkg file makes the computer ask which app to use | Anki is not installed, or the file type is not linked to it | Install Anki, then in Anki choose File > Import and pick the file |
git clone answers "git: command not found" or "git is not recognized" | Git is missing, or the terminal window was opened before Git was installed | Install Git, then close and reopen the terminal. If you would rather not install it, use "Download ZIP" |
generate-epub.sh prints "Error: pandoc is not installed." | The script checks for Pandoc before doing anything | Install Pandoc and run it again |
The downloaded README.md shows plain text and no pictures | Notepad does not render Markdown | Open it in an editor with Markdown preview, or read it online |
A .ipynb solution file opens as unreadable text | It is a Jupyter notebook, not an ordinary document | View it on GitHub, which renders notebooks, or use Jupyter if you already know it |
| Some reference links are dead | The guide links to many external blogs that have since moved | Paste the address into https://web.archive.org/ to look for a saved copy |
If you spot a mistake in the content, the author takes reports and fixes through the repository's Issues and Pull requests; the rules are in CONTRIBUTING.md.
6. Uninstalling and updating
Updating:
- If you used Git, go into the
system-design-primerfolder and run:
git pull
- If you used the ZIP, download a fresh ZIP and replace the old folder.
- Reading online always shows the current version, so there is nothing to do.
The repository does not publish numbered releases (its Releases page is empty). Changes go straight into the main branch, master, so "the latest version" is simply what the repository page shows today.
Removing:
- Delete the
system-design-primerfolder (or the folder you unzipped). - In Anki, click the gear icon next to each deck and choose Delete.
- Anki, Git and Pandoc are removed like any other application on your operating system, if you do not use them for anything else.
7. Frequently asked questions
Does it cost anything? No. The guide and all three decks are free under CC BY 4.0. You may share them on, provided you credit the author.
Do I need an internet connection? For reading online, yes. Once you have a local copy (ZIP or Git) and the decks are in Anki, you can study offline. The "further reading" links still need a connection because they lead to other sites.
Do I have to learn all of it before an interview? No. The guide answers this itself: you do not need to know everything. What you are asked depends on your experience, the role and the company. The advice is to start broad, then go deeper in a few areas.
Is there a version in my language?
Complete versions exist in English, Japanese, Simplified Chinese and Traditional Chinese. Every other language linked at the top of the page goes to a translation discussion thread. TRANSLATIONS.md explains how to contribute one.
Is any of my data sent anywhere? The guide is only text and images; it runs no program on your machine. Anki keeps your cards locally; syncing through an AnkiWeb account is an optional Anki feature and has nothing to do with this repository.
Written by GitHot and checked against the project's official documentation. If a step is wrong or unclear, message GitHot through the channels at the bottom of the page.
SEE WHY IT'S HOT
Watch the original review
Go back to the video that brought you here.
Don't miss the next repo
Every new repo gets a video review, with its install guide right here.