An interactive guide to master Excalidraw for system design interviews.
- ✅ Progress tracking — Checkboxes save to localStorage
- 📖 Expandable exercises — Click to reveal steps and challenges
- ⚡ Timed challenges — Practice under interview pressure
- ⌨️ Keyboard shortcuts reference — Always visible
- 📱 Mobile responsive — Works on any device
- Go to github.com/new
- Name it
eds-tech-public(or anything you like) - Keep it Public
- Click Create repository
- Click "uploading an existing file"
- Drag and drop these files/folders:
_config.yml _layouts/ assets/ index.md - Commit to
main
- Go to repository Settings
- Click Pages (left sidebar)
- Source: Deploy from a branch
- Branch: main / (root)
- Click Save
Wait ~1 minute, then visit:
https://YOUR-USERNAME.github.io/eds-tech-public/
Done! 🎉
eds-tech-public/
├── _config.yml # Jekyll site configuration
├── _layouts/
│ └── default.html # Main template with JavaScript
├── assets/
│ └── css/
│ └── style.css # All styles
├── index.md # Main content (Markdown + HTML)
└── README.md # This file
All exercises are in index.md. Each exercise follows this structure:
<div class="exercise" data-id="unique-id">
<div class="exercise-header">
<!-- Title, icon, time estimate -->
</div>
<div class="exercise-content">
<ol>
<li>Step 1</li>
<li>Step 2</li>
</ol>
<div class="tip-box">Pro tip here</div>
<div class="challenge-box">Challenge description</div>
</div>
</div>Edit assets/css/style.css to customize colors, fonts, spacing, etc.
The JavaScript in _layouts/default.html handles:
- Saving checkbox state to localStorage
- Updating the progress bar
- Expanding/collapsing exercises
To change the total exercise count, update TOTAL_EXERCISES in the script.
To test locally before deploying:
# Install Jekyll (requires Ruby)
gem install bundler jekyll
# Install dependencies
bundle install
# Run local server
./run.sh
# Visit http://localhost:4000MIT — Use freely for your own interview prep guides!