<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: StackPick</title>
    <description>The latest articles on DEV Community by StackPick (@stackpick).</description>
    <link>https://dev.to/stackpick</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4047452%2F8a599a20-4248-453c-b6ae-071a6c9a713b.png</url>
      <title>DEV Community: StackPick</title>
      <link>https://dev.to/stackpick</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stackpick"/>
    <language>en</language>
    <item>
      <title>My click tracker said 518 humans. Only 134 people loaded the page.</title>
      <dc:creator>StackPick</dc:creator>
      <pubDate>Sun, 26 Jul 2026 07:30:44 +0000</pubDate>
      <link>https://dev.to/stackpick/my-click-tracker-said-518-humans-only-134-people-loaded-the-page-4b6h</link>
      <guid>https://dev.to/stackpick/my-click-tracker-said-518-humans-only-134-people-loaded-the-page-4b6h</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; this post contains links to paid products and affiliate programs. I may receive compensation if you sign up or buy through them. Pricing shown is verified against the vendor's public pricing page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a few weeks my analytics told me a comfortable story: 518 humans had clicked an outbound link in the last 30 days. Then I put that number next to a different one from the same database — 134 page views — and the story fell apart.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nobody clicks a link on your site more times than they load a page on your site.&lt;/strong&gt; A ratio above 1.0 is not a suspicious trend to monitor. It is arithmetic proof that the tracker is wrong.&lt;/p&gt;

&lt;p&gt;Mine was at 3.9.&lt;/p&gt;

&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;The site is a static build on Cloudflare Pages. Outbound links do not point straight at the destination — they go through a redirect worker at &lt;code&gt;/r/{slug}&lt;/code&gt;, which records the click server-side and then 302s the visitor onward. Standard pattern, and it survives ad blockers, which is why I used it.&lt;/p&gt;

&lt;p&gt;Each click row stores a &lt;code&gt;source_page&lt;/code&gt; so I know which page produced it. The worker fills it like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sourcePage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Referer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s2"&gt;`cta:&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;ctaId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The fallback exists for a real reason. Some browsers and privacy settings strip the &lt;code&gt;Referer&lt;/code&gt; header, and I did not want those clicks landing in the database as anonymous rows I could never attribute. So if there is no referer, fall back to the CTA id, which I already have.&lt;/p&gt;

&lt;p&gt;Downstream, the bot filter decided whether a click was human. Its reasoning, roughly: a real browser on my site sends context, so a row that has a &lt;code&gt;source_page&lt;/code&gt; came from a browser, and an empty one is suspect.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- what "human" used to mean&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;source_page&lt;/span&gt; &lt;span class="k"&gt;IS&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;source_page&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read those two snippets together and the bug is obvious. It was not obvious to me for weeks, because they live in different files written on different days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the fallback poisoned the filter
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;ctaId&lt;/code&gt; comes from the query string. The link in the HTML is literally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/r/wati?cta=best-whatsapp-wati"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Try Wati&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A crawler fetching that URL sends no &lt;code&gt;Referer&lt;/code&gt;. So the worker takes the fallback branch and writes &lt;code&gt;source_page = "cta:best-whatsapp-wati"&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That is a non-empty &lt;code&gt;source_page&lt;/code&gt;. Which is exactly what the filter accepted as proof of a browser.&lt;/p&gt;

&lt;p&gt;The fallback was not recording &lt;em&gt;"a human whose referer was stripped"&lt;/em&gt;. It was recording &lt;em&gt;"the value that was already sitting in the href"&lt;/em&gt; — a value any crawler following the link reproduces perfectly, because it is in the markup. I had built a bot detector whose evidence of humanity was a string the bot could read off the page.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix
&lt;/h2&gt;

&lt;p&gt;One condition. A real browser referer is an absolute URL, so require that shape instead of mere presence:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- source_page now has to look like a referer, not like something copied from the href&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;source_page&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'http%'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reclassifying the whole table moved 518 "humans" down to 218. Ratio went from 3.9 to 1.6.&lt;/p&gt;

&lt;h2&gt;
  
  
  1.6 is still wrong, and that is the useful part
&lt;/h2&gt;

&lt;p&gt;The honest reading of 1.6 is &lt;em&gt;"still inflated, just less"&lt;/em&gt;. Plenty of crawlers do send a &lt;code&gt;Referer&lt;/code&gt;, so the new rule catches the lazy ones and misses the polite ones. I did not want to ship a number I would have to re-litigate every month, so the reporting script now prints both figures and the ratio between them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"reality_check_30d"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"page_views_js"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;134&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"redirect_clicks_human"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;218&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"inflation_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"verdict"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"inflated"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That block is deliberately annoying. As long as the ratio sits above 1.0, every report I read carries a note that the click number is not trustworthy. A metric that announces its own error bar beats a metric that quietly looks fine.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would generalise from this
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cross-check server-side counts against a client-side one.&lt;/strong&gt; Server-side tracking is popular precisely because ad blockers cannot stop it — but that same property means bots cannot be stopped either. The JavaScript &lt;code&gt;page_view&lt;/code&gt; event undercounts (blockers, no-JS) while the server-side click count overcounts (bots). Neither is truth, and the &lt;em&gt;gap between them&lt;/em&gt; is the diagnostic. One number alone would never have told me anything was wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write down the invariants your data must satisfy.&lt;/strong&gt; Not thresholds like "alert if clicks drop 20%" — invariants, things that cannot be true in a working system. Outbound clicks ≤ page views is one. They cost nothing to assert and they fail loudly the moment a fallback quietly changes meaning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watch fallback values that come from the request.&lt;/strong&gt; A default is fine when it encodes something you know independently. It is dangerous when it echoes attacker- or crawler-controlled input back into your data, because downstream code cannot tell the echo from the real thing. My fallback did not fabricate the value — it copied it from the href, which made it indistinguishable from the genuine article.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The bug is rarely inside one file.&lt;/strong&gt; Both snippets were reasonable in isolation. Neither author — both of them me — was thinking about the other. The defect lived in the seam, and the only thing that surfaced it was comparing two numbers that had no business disagreeing.&lt;/p&gt;




&lt;p&gt;I keep a public &lt;a href="https://trystackpick.com/pricing-index/" rel="noopener noreferrer"&gt;verified pricing index&lt;/a&gt; for automation and messaging tools, which is what the redirect endpoint was tracking clicks on in the first place. If you want the arithmetic-check idea without the write-up, the short version is: find two metrics in your system that must hold an order relationship, and assert it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>analytics</category>
      <category>javascript</category>
      <category>debugging</category>
    </item>
    <item>
      <title>n8n vs Make</title>
      <dc:creator>StackPick</dc:creator>
      <pubDate>Sun, 26 Jul 2026 02:21:05 +0000</pubDate>
      <link>https://dev.to/stackpick/n8n-vs-make-56hc</link>
      <guid>https://dev.to/stackpick/n8n-vs-make-56hc</guid>
      <description>&lt;p&gt;Feature lists won't settle this one; both platforms can build almost any workflow. The decision comes down to two things: how each one bills, and whether you're willing to self-host. Use the Quick answer, cost table (1k / 10k / 50k) and 3-year TCO above — then read the billing caveats below.&lt;/p&gt;

&lt;h2&gt;
  
  
  The billing unit is the whole game
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Make&lt;/strong&gt; bills in &lt;strong&gt;credits&lt;/strong&gt; — standard module runs generally consume one credit, while some Make AI features use variable credits. A 15-module standard scenario that runs 1,000 times is roughly 15,000 credits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;n8n&lt;/strong&gt; bills per &lt;strong&gt;execution&lt;/strong&gt; — one full workflow run counts once, whether it has 5 nodes or 50.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That means workflow shape matters. A multi-module workflow can consume many Make credits per run while n8n Cloud generally bills one workflow execution. AI modules and retries can change actual usage; measure both before choosing.&lt;/p&gt;

&lt;p&gt;Simple, short scenarios flip it: Make's free and low tiers are generous when workflows are 2–4 modules, and its per-operation price is tiny at small scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Self-hosting: n8n's trump card
&lt;/h2&gt;

&lt;p&gt;n8n's Community Edition is source-available and free with &lt;strong&gt;unlimited executions&lt;/strong&gt; on your own server — a $5/month VPS runs serious automation loads. Make has no equivalent. If your team can run Docker, Cloud TCO above is the &lt;em&gt;ceiling&lt;/em&gt;, not the floor: self-host drops execution fees to $0. That's also the honest caveat: self-hosting means you own updates, backups and uptime. The cost table shows &lt;strong&gt;n8n Cloud&lt;/strong&gt; so SaaS quotes stay comparable to Make.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI workflows
&lt;/h2&gt;

&lt;p&gt;n8n treats AI agents as first-class citizens: native LangChain agent nodes, vector stores, RAG pipelines, and a template library where 67% of new templates already use AI nodes. Make has AI modules and an assistant, but agentic patterns (tool-calling loops, multi-agent handoffs) fit n8n's model more naturally. Most of the ready-made AI agent templates you'll find — including &lt;a href="https://trystackpick.com/templates/" rel="noopener noreferrer"&gt;ours&lt;/a&gt; — ship as n8n JSON.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden costs and limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;n8n Cloud&lt;/strong&gt; caps active workflows on lower tiers (5 on Starter) — automation-heavy teams hit that before they hit execution limits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make&lt;/strong&gt; credits can rise when scenarios include iterators, retries or variable-credit AI modules; model a worst-case month in the &lt;a href="https://trystackpick.com/calculators/automation-cost/" rel="noopener noreferrer"&gt;automation cost calculator&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;n8n's&lt;/strong&gt; learning curve is real: expressions, JSON wrangling and node debugging. Make's UI is friendlier for marketers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When to choose neither
&lt;/h2&gt;

&lt;p&gt;Two apps, one trigger, no logic — Zapier's free tier or a native integration does it with less friction (see &lt;a href="https://trystackpick.com/vs/zapier-vs-make/" rel="noopener noreferrer"&gt;Zapier vs Make&lt;/a&gt;). Enterprise governance needs (SSO, audit logs, SOC2 reporting) point to Workato instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose n8n&lt;/strong&gt; if workflows are complex or AI-driven, someone on the team is technical, or you want the self-hosted free option in your back pocket. &lt;strong&gt;Choose Make&lt;/strong&gt; if visual simplicity for non-developers matters more and your scenarios stay short.&lt;/p&gt;

&lt;p&gt;If the real pain is slow lead response (not tool price), model incremental gross profit with the &lt;a href="https://trystackpick.com/calculators/lead-recovery-roi/" rel="noopener noreferrer"&gt;lead recovery ROI calculator&lt;/a&gt; before you buy more seats.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://n8n.io/pricing/" rel="noopener noreferrer"&gt;n8n pricing&lt;/a&gt; — verified 2026-07-01&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.make.com/en/pricing" rel="noopener noreferrer"&gt;Make pricing&lt;/a&gt; — verified 2026-06-12&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://trystackpick.com" rel="noopener noreferrer"&gt;StackPick&lt;/a&gt; — verified SaaS pricing, cost calculators and tool comparisons. Free n8n templates: &lt;a href="https://github.com/marcelobm33/stackpick-n8n-templates" rel="noopener noreferrer"&gt;github.com/marcelobm33/stackpick-n8n-templates&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>n8n</category>
      <category>automation</category>
      <category>nocode</category>
      <category>saas</category>
    </item>
    <item>
      <title>How to Make Money with n8n (2026)</title>
      <dc:creator>StackPick</dc:creator>
      <pubDate>Sun, 26 Jul 2026 02:19:36 +0000</pubDate>
      <link>https://dev.to/stackpick/how-to-make-money-with-n8n-2026-5902</link>
      <guid>https://dev.to/stackpick/how-to-make-money-with-n8n-2026-5902</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; this post contains links to paid products and affiliate programs. I may receive compensation if you sign up or buy through them. Pricing shown is verified against the vendor's public pricing page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;How to make money with n8n&lt;/strong&gt; in practice means shipping value someone pays for — not “set and forget” YouTube schemes. n8n is free to self-host and bills Cloud by &lt;strong&gt;workflow execution&lt;/strong&gt;, not per step. That cost shape is why freelancers and agencies productize automation. Four paths that match real demand:&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answer
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Product&lt;/strong&gt; — free JSON proof → paid pack with docs
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service&lt;/strong&gt; — migrate Zapier/Make → n8n for a niche
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Media&lt;/strong&gt; — pricing comparisons + affiliate (slow)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ops&lt;/strong&gt; — use n8n inside your own business to stop lead leakage
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Start with one niche pain you already understand. Distribution beats another unused template.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Sell ready-made workflows (product)
&lt;/h2&gt;

&lt;p&gt;Ship a tested n8n JSON for a painful niche job: missed-call → WhatsApp reply, lead enrichment, invoice chase. Price a free starter JSON to prove competence, then a paid pack with docs and support.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Free reference: &lt;a href="https://gist.github.com/marcelobm33/1f2b774bd3724fb5046ea6b89020c854" rel="noopener noreferrer"&gt;WhatsApp lead-reply gist&lt;/a&gt; · &lt;a href="https://github.com/marcelobm33/stackpick-n8n-templates" rel="noopener noreferrer"&gt;GitHub templates&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Low-friction paid entry (no n8n required): &lt;a href="https://trystackpick.com/r/meta-template-kit?cta=howto-n8n-kit" rel="noopener noreferrer"&gt;WhatsApp Meta Template Kit&lt;/a&gt; ($19) — Meta-ready copy + approval checklist&lt;/li&gt;
&lt;li&gt;Full automation pack: &lt;a href="https://stackpick.gumroad.com/l/dealership-lead-recovery" rel="noopener noreferrer"&gt;dealership lead-recovery pack&lt;/a&gt; ($49)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reality check:&lt;/strong&gt; buyers want setup notes, template message approval steps and failure modes — not a raw export.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Freelance / agency automation (service)
&lt;/h2&gt;

&lt;p&gt;Charge setup + monthly care for Make/Zapier migrations onto n8n Cloud or a VPS. Typical offer: audit current Zaps → rebuild critical paths → document ownership.&lt;/p&gt;

&lt;p&gt;Compare cost units before quoting clients: &lt;a href="https://trystackpick.com/vs/n8n-vs-make/" rel="noopener noreferrer"&gt;n8n vs Make&lt;/a&gt; · &lt;a href="https://trystackpick.com/vs/zapier-vs-make/" rel="noopener noreferrer"&gt;Zapier vs Make&lt;/a&gt; · &lt;a href="https://trystackpick.com/calculators/automation-cost/" rel="noopener noreferrer"&gt;automation cost calculator&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Affiliate + comparison content (media)
&lt;/h2&gt;

&lt;p&gt;Publish honest pricing pages for tools your workflows use (WhatsApp BSPs, email, CRM). Disclose affiliate links. Revenue only appears after someone buys — clicks alone pay $0.&lt;/p&gt;

&lt;p&gt;StackPick model: verified pricing tables → tracked &lt;code&gt;/r/&lt;/code&gt; links → VPS metrics. See &lt;a href="https://trystackpick.com/how-we-make-money/" rel="noopener noreferrer"&gt;how we make money&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Internal ops (save money = make money)
&lt;/h2&gt;

&lt;p&gt;If you already run a business, n8n recovers leaked leads and after-hours calls. Model ROI before buying seats: &lt;a href="https://trystackpick.com/calculators/lead-recovery-roi/" rel="noopener noreferrer"&gt;lead recovery ROI calculator&lt;/a&gt; · &lt;a href="https://trystackpick.com/stacks/lead-follow-up/" rel="noopener noreferrer"&gt;lead follow-up stack&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does &lt;em&gt;not&lt;/em&gt; work
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;“Set and forget” schemes with no niche, no distribution, no support&lt;/li&gt;
&lt;li&gt;Scraping random templates without testing Meta WhatsApp / API credentials&lt;/li&gt;
&lt;li&gt;Expecting Google page-1 traffic on day one for head terms like “best automation software”&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Minimal stack to start
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;n8n Cloud trial &lt;strong&gt;or&lt;/strong&gt; $5–10/mo VPS self-host
&lt;/li&gt;
&lt;li&gt;One painful workflow in a niche you know
&lt;/li&gt;
&lt;li&gt;One distribution channel (Reddit niche, community.n8n, client outreach)
&lt;/li&gt;
&lt;li&gt;Optional: affiliate programs for tools you already recommend (&lt;a href="https://trystackpick.com/pricing-index/" rel="noopener noreferrer"&gt;pricing index&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  FAQ — how to make money with n8n
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can you make money with n8n as a beginner?
&lt;/h3&gt;

&lt;p&gt;Yes, if you pick a narrow job (one industry + one workflow) and sell setup help or a documented JSON. Broader “AI automation agency” pitches without a niche usually stall.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is selling n8n templates profitable?
&lt;/h3&gt;

&lt;p&gt;Some people earn from Gumroad/marketplaces; most revenue comes from the &lt;strong&gt;docs + support&lt;/strong&gt;, not the file. Free templates build trust; paid packs convert after proof.&lt;/p&gt;

&lt;h3&gt;
  
  
  n8n Cloud or self-host for a side business?
&lt;/h3&gt;

&lt;p&gt;Self-host if you want margin control and can maintain a VPS. Cloud if clients need reliability without you babysitting Docker. Model executions: &lt;a href="https://trystackpick.com/vs/n8n-vs-make/" rel="noopener noreferrer"&gt;n8n vs Make pricing&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next reads
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://trystackpick.com/best/automation/" rel="noopener noreferrer"&gt;Best workflow automation software — cost compared&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://trystackpick.com/vs/n8n-vs-make/" rel="noopener noreferrer"&gt;n8n vs Make pricing&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://trystackpick.com/templates/" rel="noopener noreferrer"&gt;Templates hub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://trystackpick.com" rel="noopener noreferrer"&gt;StackPick&lt;/a&gt; — verified SaaS pricing, cost calculators and tool comparisons. Free n8n templates: &lt;a href="https://github.com/marcelobm33/stackpick-n8n-templates" rel="noopener noreferrer"&gt;github.com/marcelobm33/stackpick-n8n-templates&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>n8n</category>
      <category>automation</category>
      <category>nocode</category>
      <category>freelance</category>
    </item>
  </channel>
</rss>
