missing-semester-website-preview
Website Preview
Render the Jekyll site locally, take screenshots, and verify design changes visually using ChromeDriver and browser automation.
When to use this skill
Use this skill when:
- Modifying CSS, SCSS, or any styling files
- Editing HTML layouts (
_layouts/) or includes (_includes/) - Making changes that affect visual appearance
- The user asks to see how changes look
- You need to verify a design change worked correctly
- Working on any front-end aspects of the website
Invoke this skill proactively after making visual changes to the site.
How to use this skill
Step 1: Check Prerequisites
Before taking screenshots, verify both Jekyll and ChromeDriver are running.
Check Jekyll server:
curl -s -o /dev/null -w "%{http_code}" http://localhost:4000/ 2>/dev/null || echo "not running"
If not running (not 200), start it in background:
bundle exec jekyll serve --host 0.0.0.0 &
Wait a few seconds for it to build.
Check ChromeDriver:
cat /tmp/chromedriver_port 2>/dev/null || echo "not running"
If not running, start it:
./browser.sh chromedriver
This finds Chrome automatically and starts ChromeDriver on a free port.
Step 2: Take Screenshots
Use ./browser.sh for browser automation:
./browser.sh start http://localhost:4000/
./browser.sh screenshot /tmp/preview.png
./browser.sh dark
./browser.sh screenshot /tmp/preview-dark.png
./browser.sh mobile
./browser.sh screenshot /tmp/preview-mobile-dark.png
./browser.sh light
./browser.sh screenshot /tmp/preview-mobile-light.png
./browser.sh desktop
./browser.sh nav http://localhost:4000/2026/course-shell/
./browser.sh screenshot /tmp/course-shell.png
./browser.sh stop
Mode commands (dark, light, mobile, desktop) persist until changed.
Step 3: View Screenshots
After taking a screenshot, use the Read tool to view it:
Read /tmp/preview.png
Inspecting Elements
Execute JavaScript to query the page:
./browser.sh js "document.querySelector('nav').getBoundingClientRect()"
After Making Changes
After modifying CSS/HTML:
- Jekyll will auto-rebuild (watch for "Regenerating:" in Jekyll output)
- Refresh:
./browser.sh nav http://localhost:4000/ - Take a new screenshot to verify changes
Common Pages to Check
- Homepage:
http://localhost:4000/ - Current year index:
http://localhost:4000/2026/ - Lecture page:
http://localhost:4000/2026/course-shell/ - About page:
http://localhost:4000/about/
ChromeDriver Lifecycle
Keep ChromeDriver running across multiple previews during a session. Only kill it when no more browser interactions are expected.
./browser.sh stop- Ends the browser session (optional between screenshots)./browser.sh kill- Stops ChromeDriver entirely (only when done with all design work)
You do not need to run ./browser.sh kill after each preview. Start ChromeDriver once at the beginning and leave it running.
Troubleshooting
Jekyll not rebuilding: Run bundle exec jekyll build manually
ChromeDriver errors: Kill and restart
./browser.sh kill
./browser.sh chromedriver
Session errors: Stop any existing session first
./browser.sh stop