website-preview
Automates visual testing for Jekyll sites by capturing cross-platform screenshots.
Install
mkdir -p .claude/skills/website-preview && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2004" && unzip -o skill.zip -d .claude/skills/website-preview && rm skill.zipInstalls to .claude/skills/website-preview
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Take screenshots and interact with the rendered Jekyll websiteKey capabilities
- →Render a Jekyll site locally
- →Take screenshots of the rendered website
- →Capture screenshots in dark and light modes
- →Capture screenshots for mobile and desktop viewports
- →Execute JavaScript to inspect page elements
How it works
The skill starts a local Jekyll server and uses ChromeDriver with browser automation scripts to navigate the site, change display modes, and capture screenshots.
Inputs & outputs
When to use website-preview
- →Validate CSS changes
- →Capture mobile vs desktop views
- →Test dark mode implementation
- →Verify layout rendering after HTML updates
About this skill
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
Prerequisites
Limitations
- →Requires a running Jekyll server
- →Requires a running ChromeDriver instance
- →Browser automation commands persist until changed
How it compares
This skill automates visual verification of Jekyll website changes across different viewports and themes, which is more efficient than manual inspection.
Compared to similar skills
website-preview side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| website-preview (this skill) | 3 | 7mo | Review | Intermediate |
| frontend-testing | 11 | 3mo | Review | Intermediate |
| feature-flags | 6 | 6mo | Review | Intermediate |
| vue-testing-best-practices | 5 | 6mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
frontend-testing
langgenius
Generate Vitest + React Testing Library tests for Dify frontend components, hooks, and utilities. Triggers on testing, spec files, coverage, Vitest, RTL, unit tests, integration tests, or write/review test requests.
feature-flags
Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or adding new flags to React.
vue-testing-best-practices
vuejs-ai
Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.
playwright-pro
alirezarezvani
Production-grade Playwright testing toolkit. Use when the user mentions Playwright tests, end-to-end testing, browser automation, fixing flaky tests, test migration, CI/CD testing, or test suites. Generate tests, fix flaky failures, migrate from Cypress/Selenium, sync with TestRail, run on BrowserStack. 55 templates, 3 agents, smart reporting.
bun-development
davila7
Modern JavaScript/TypeScript development with Bun runtime. Covers package management, bundling, testing, and migration from Node.js. Use when working with Bun, optimizing JS/TS development speed, or migrating from Node.js to Bun.
react-web
alinaqi
React web development with hooks, React Query, Zustand