Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
An n8n workflow in two parts: it takes a base screenshot of each page on a Google Sheet, then runs every Monday. Google Gemini compares a new screenshot with the base, and the changes go into one Linear issue.
Weekly screenshot check of web pages with a Linear report is an n8n workflow in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Manual run and a weekly schedule
Part A starts when you press Execute workflow. Part B starts every Monday at 6. Both read the pages from:
A Linear issue named Visual Regression Report with the date, listing each changed page and what changed
What you need before you start.
Screenshot service
Runs the screenshot-url actor for each page and returns a link to the picture.
NeedsAn Apify API token, in a Header Auth credential
Vision language model
Runs models/gemini-3.6-flash to compare the base and the new screenshot and list the changes.
NeedsGoogle Gemini API key, in a Google Gemini credential
Page list
Holds the pages to check and the Drive file id of each base picture.
NeedsA Google account, in a Google Sheets credential
Picture storage
Keeps the base screenshots and returns them for the weekly comparison.
NeedsA Google account, in a Google Drive credential, and a folder
Issue tracker
Creates one issue with the week’s changes.
NeedsA Linear account, in a Linear credential, and a team
Checked by Mindket on 13 Nov 2026
This n8n workflow watches web pages for visual changes. Part A takes a base screenshot of each page on a Google Sheet with Apify and saves it in Google Drive. Part B starts every Monday at 6. It takes a new screenshot of each page, and Google Gemini compares the two pictures. Pages that changed go into one Linear issue. Twenty-four nodes do the work, beside ten sticky notes that explain the steps.
Web teams, QA engineers and site owners who want a weekly check that nothing on key pages broke or moved. Skip it for pixel exact testing. Gemini judges by looking, so small shifts and moving content can show up as noise.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Software | QA engineers | Check key pages each week after releases | An engineer reads one Linear issue that lists the pages that changed. |
| Agencies | Account managers | Watch client sites for broken layouts | A manager sees that a banner moved before the client writes in. |
| E-commerce | Store owners | Check product and checkout pages for missing images or text | An owner learns that a price block lost its text. |
| Marketing | Web editors | Catch edits that others make on landing pages | An editor sees that a headline changed on a campaign page. |
You need solid n8n for this one: five accounts, a sheet with set columns and two parts to run in order.
Any n8n that can reach Apify, Google and Linear will run it. Publish it so that the Monday run starts by itself.
Create Report for a node of theirs, as the file’s own note suggestsDownload saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Five accounts are needed.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own, published for the weekly run |
| Google Sheets | A file whose sheet has the columns service, url and base, with one row for each page |
| Google Drive | A folder for the base screenshots |
| Apify | An API token, saved in a Header Auth credential named Authorization with the value Bearer and your token |
| Google Gemini | An API key from Google AI Studio |
| Linear | A Linear account and the team that gets the issue |
workflow.json.Get URLs with Missing Base Images, Update Base Image and Get Webpages List, and pick your file and sheet in each.Upload to Drive and Base Image, and pick your folder in Upload to Drive.Run Webpage Screenshot and Run Webpage Screenshot1.Google Gemini Chat Model. The file uses models/gemini-3.6-flash.Create Report and choose your team there.base.Schedule Trigger step. Publish the workflow for the Monday run.Press Execute workflow once to make the base screenshots. After that, the Monday run compares each page with its base and files an issue when something changed. To remake the bases, run Part A again.
| To change | Where |
|---|---|
| The pages | The rows of the sheet |
| When it runs | Schedule Trigger, set to Mondays at 6 |
| What counts as a change | The system message in Visual Regression Agent |
| Where the report goes | Create Report, which can be swapped for Slack or Jira |
| The screenshot size and wait | The body of both screenshot nodes, which should stay the same |
| The model | modelName in Google Gemini Chat Model |
The sheet lists two pages, a pricing page and a contact page.
Part A saves a base screenshot of each in Drive. If the pricing page later gets a new button label, Gemini reports the old and the new text. The contact page shows no change, so the Linear issue lists only the pricing page.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Visual regression testing means comparing a page with an earlier picture of itself. Here Gemini does the comparing, so it notices text, colours and position without rules you write.
For experts. Both pictures go to Gemini as Image (Binary) messages in a Basic LLM Chain, and a structured parser turns the answer into a list of changes.
| Node | What it does | What to know |
|---|---|---|
Run Webpage Screenshot | HTTP Request to the Apify actor’s run-sync-get-dataset-items endpoint | Apify ends the call after 300 seconds |
Visual Regression Agent | Basic LLM Chain 1.4 with two Image (Binary) messages | data_1 is the base and data_2 the new picture. An empty list means no change |
Has Changes | Filter on the length of that list | Pages without changes are dropped |
Create Report | Linear node that creates an issue | The description is markdown built from the changes |
The original named a Gemini model Google no longer lists, and a leftover filter limited it to one row.
models/gemini-3.6-flashGet Webpages List kept only row 2 by a leftover filter. Mindket’s copy removes it, so every row is checkedGet URLs with Missing Base Images reads every row, so each run saves a new base file for every page and the old files stay in DriveAn n8n workflow in two parts. Part A takes a base screenshot of every page on a Google Sheet. Part B runs each Monday, takes a fresh screenshot, lets Google Gemini compare the two and files the differences as one Linear issue.
workflow.json: the workflow as n8n exports it, thirty-four nodes. Twenty-four do the work and ten are sticky notes that explain the steps. It holds no credential.README.md: these notes.models/gemini-1.5-pro-latest. Google's models and deprecations pages, read on 12 November 2026, no longer list any 1.5 model, so Mindket's copy uses models/gemini-3.6-flash, which the models page lists as available with image input.Get Webpages List still had a leftover filter that kept only row 2 of the sheet. Mindket's copy removes it, so Part B checks every row.token query parameter. Apify's API docs, read on 12 November 2026, call that less secure than the Authorization header, so Mindket's copy uses a Header Auth credential.executionOrder v1, the setting n8n gives a new workflow.service, url and base. Put a name in service and a full page address in url, one row for each page. Leave base empty, because Part A fills it.apify/screenshot-url actor.workflow.json.Get URLs with Missing Base Images, Update Base Image and Get Webpages List, and pick your file and sheet in each.Upload to Drive and Base Image, and pick your folder in Upload to Drive.Authorization and give it the value Bearer <YOUR_APIFY_TOKEN> with your own token. Select it in Run Webpage Screenshot and Run Webpage Screenshot1.Google Gemini Chat Model. Check that the model is models/gemini-3.6-flash.Create Report and choose your team there.base.Schedule Trigger and run that step. Publish the workflow to get the run every Monday at 6.Get URLs with Missing Base Images reads the rows of the sheet.Loop Over Items sends each page to Run Webpage Screenshot, which runs the Apify actor and waits for its answer. The window is 1280 pixels wide, and Wait pauses two seconds between pages.Merge pairs each row with its screenshot. Download Screenshot fetches the picture, Upload to Drive saves it under the encoded page address and Update Base Image writes the Drive file id into base.Schedule Trigger, which fires on Mondays at 6. Get Webpages List reads the rows, and For Each Webpage... takes them one at a time.Base Image downloads the saved screenshot from Drive. Run Webpage Screenshot1 takes a new one, Download New Screenshot fetches it and Combine Screenshots joins the two.Visual Regression Agent (Basic LLM Chain 1.4) sends both pictures to Google Gemini Chat Model as Image (Binary) messages. Its system message asks for changes in text, images, colours, position and layout. It says to ignore text styling and casing. Structured Output Parser turns the answer into a list of changes, each with a type, a description, a previous state and a current state. Wait1 pauses one second.Combine Row and Result joins each row with its list. Has Changes keeps only the pages with at least one change, and Aggregate gathers them. Create Report files a Linear issue named Visual Regression Report with the date. The issue lists each page and its changes.Schedule Trigger.Visual Regression Agent.Create Report. Swap it for a Slack or Jira node if you do not use Linear.modelName in Google Gemini Chat Model.Get URLs with Missing Base Images reads every row. Each run of Part A saves a new base file for every page and rewrites base. The old files stay in Drive.NOTICE.md 664 B README.md 6 KB workflow.json 26 KB
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
block · Kit
Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…
backnotprop · Kit
Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.
alibaba · Kit
Reviews Git changes with an AI agent that reads files and searches the codebase, then writes comments tied to exact lines. It suits developers who want automat…