The Strategic Veteran

The Strategic Veteran

Building the Machine, Day 19: I Built Exactly What I Wasn't Allowed To

The product was done. The dashboard was live, the MSA was signed, the beta call was booked for Thursday. Then I scrolled Reddit and found the one clause that could unbuild all of it.

Adam Peters's avatar
Adam Peters
Aug 06, 2026
∙ Paid

Tuesday afternoon I was finished.

By Tuesday night, I wasn’t sure I could ship.

Finished, for about three hours

Deploy Day was clean. Dashboard live. Onboarding flow working end to end. MSA signed. My headshot rendering on the landing page as it belonged there. I had Joe Rubin booked for Thursday to walk the whole thing start to finish.

Then I scrolled Reddit.

Somebody asked about selling n8n automations to clients. Top comment linked to the n8n Sustainable Use License.

I read it.

Read it again.

Felt my stomach drop somewhere around the third pass.

The problem isn’t that I built too fast. The problem is that I built exactly what the license says you can’t.

What I’d actually built, and why

Here’s the architecture. I self-host n8n on my own server. Clients connect their Gmail, their Stripe, whatever the automation needs. I build the workflow. It runs on my infrastructure. They see a dashboard. They never touch n8n directly.

I wired it this way on purpose, and the reason was security, not laziness. Credentials passed through n8n get encrypted on the way in. That meant I wasn’t personally sitting on a pile of client passwords and API keys somewhere, a pile that could cost a business owner real money if I ever got breached. It felt like the responsible way to build it.

Turns out it’s also, under the Sustainable Use License, not “internal business use.” My instance is acting on behalf of client data, using client credentials, for money. The license calls that multi-tenant, and multi-tenant needs a commercial embed license I don’t have.

That license runs $20,000 to $50,000 a year. That’s not a number I can absorb right now. Not close.

This is the whole point of building in public

I talked to a friend of mine yesterday, serious dev experience, years of it. Told him what happened. He said don’t feel like an idiot, because he’s a developer and this genuinely isn’t something he would have thought to check either.

That’s exactly why I’m writing this instead of quietly fixing it and never mentioning it happened. This is what building with AI tools actually looks like sometimes. You move fast, you stitch together tools you didn’t build, and somewhere in there is a terms of service page you never opened because nothing about the moment made it feel necessary. Lesson learned the hard way: read the fucking TOS on anything your business model depends on before you architect three weeks of work on top of it.

Three ways out, and only one of them keeps the product

Buy the license.

Dead on arrival!

Rearchitect.

Pull every client credential out of n8n entirely. My own app stores the OAuth tokens and makes the actual calls to Gmail and Stripe. n8n stops touching client data at all and becomes a pure logic layer; it gets raw input, runs the AI decision-making, hands back structured output, and my app executes it.

Cleaner.

Makes the engine underneath swappable instead of load-bearing. Also means I’m rebuilding the entire security layer I was leaning on n8n for, deciding from scratch where client data actually lives, how it moves, and how it’s stored once it’s not passing through n8n’s encryption anymore.

Real work.

Three to four weeks of it.

Or, every client hosts their own instance. Fully compliant. Also the end of the dashboard, the end of the managed service, the end of the thing I actually built.

That’s a freelance gig with extra steps, not a product.

I emailed n8n directly. Laid out the whole architecture, asked four specific questions, told them I want to be a legitimate partner, not a gray area operator running out the clock. Automated reply within the hour, logged, real answer promised in 48. Still waiting on that email.

Thursday was never the transaction

Thursday was never about closing a sale. It was always meant as an honest end-to-end test with someone I actually know and trust, somebody who’s going to tell me the real thing instead of “yeah man, this is cool.” That’s the whole point of using Joe instead of a stranger.

That test still happens. The infrastructure question and the licensing question are separate problems. As long as the product itself works the way it’s supposed to, I can rebuild what’s underneath it within whatever rules I end up playing by, without losing the thing I actually need Thursday to tell me.

An agency operator ships anyway and hopes nobody reads the license. A product founder stops mid-sprint, asks the question that could break the whole plan, and fixes the foundation before the roof goes on.

Here’s what I found while I was tearing the architecture apart looking for the damage. The moat was never the n8n workflows. It’s the specs. Twenty-plus SYSTEM.md and CLAUDE.md files across four hundred-plus files that define exactly how every agent classifies, decides, and responds. That’s the part n8n can’t touch and can’t license away from me, because it was never theirs to begin with.

This is the part nobody selling you the “AI runs your business while you sleep” dream will ever show you. It’s free for my paid subscribers because this is the stuff I’d have paid to know three weeks ago.

User's avatar

Continue reading this post for free, courtesy of Adam Peters.

Or purchase a paid subscription.
© 2026 Adam Peters · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture