Portfolio

Case study

Rendered from the project README. The demo uses fictional data.

WorkflowKit

Three n8n workflow templates for a portfolio demo: lead intake, uptime checks, and a daily RSS job digest. Each template is a published workflow.json that n8n can import from a file. They use official nodes only. Credential fields are left empty so a person can attach their own Google Sheets, Slack, and SMTP credentials in the n8n editor.

The workflows were executed on a local n8n 2.41.6 process with Node v24.21.0. The static page in dist/ does not start n8n. These templates were not submitted to the n8n Creator Hub.

Problem → Solution → Result

Problem

Solution

Result

These are capabilities of this project, not claims about a client engagement. No customer counts or testimonials are included.

What the local run actually called

Google Sheets and Slack were not called. There is no account for either one on this machine.

The owner account exists only in .n8n-local/ and uses the reserved name owner@example.invalid. That directory is gitignored.

Layout

PathRole
templates/<slug>/workflow.jsonPublished workflow. Import this file.
templates/<slug>/README.mdPurpose, credentials, setup, and tunable parameters.
templates/<slug>/execution.jsonOne redacted local execution.
templates/<slug>/screenshots/Editor canvas and that execution.
showcase/build.pyBuilds the static page. python3 showcase/build.py --out dist.
dist/Static page produced by the build.
scripts/local_n8n.shstart, stop, import, run, status.
scripts/verify_local_n8n.shImport, run, and assert success.
scripts/bootstrap_tools.shDownload local Node 24 and n8n if they are missing.
docs/local-run.jsonExecution ids, statuses, and the mock notes.
docs/screenshots/Copies of the editor screenshots for the portfolio case study.

Slugs are lead-intake, uptime-watcher, and rss-job-digest.

Run it again

Node on PATH for these scripts is .tools/node-v24.21.0-linux-x64/bin/node. The system Node at /usr/bin/node is not used. n8n listens on 127.0.0.1:5688 only. Telemetry and version notices are turned off.

scripts/bootstrap_tools.sh
      scripts/verify_local_n8n.sh
      scripts/local_n8n.sh stop

verify_local_n8n.sh starts the mock HTTP/SMTP process and n8n, imports the three published workflows, screenshots the canvases, applies the test-copy patch inside n8n, runs each workflow, writes the redacted execution files, and screenshots the execution records. Stop releases port 5688.

Tests

.venv/bin/pytest -q

Pytest 8.3.5 is installed in .venv. The tests check workflow shape, official node types, sticky notes, names, secrets in the JSON and execution exports, the Code-node functions (via the local Node 24 binary), and a showcase build in a temporary directory.

Static page

python3 showcase/build.py --out dist

Open dist/index.html. Links are relative, so the same files work under /portfolio/workflowkit/. The page states that the workflows were run on local n8n and that the public page does not run n8n.

Screenshots

Lead intake canvas

Lead intake execution

Uptime watcher canvas

Uptime watcher execution

RSS job digest canvas

RSS job digest execution

Open the live demo