

Jay Long
Software Engineer & Founder
Published March 7, 2026
I've got a lot going on with automations right now. This might end up being a whole series, but I want to talk about where I'm at, what I achieved yesterday, and where I'm taking all of this. Some of what I'm about to describe is short-term stuff I'll execute on in the coming days. Some of it is a bit more crackpot, with engineering challenges I may not even have the resources for yet. And part of getting it all out loud is figuring out which is which.
I'm starting to gain some real familiarity and comfort working with N8N. I went into this in more detail in another article, but the short version is: I'm not trying to become an N8N expert. It's just the nature of the market I'm trying to service. There is still a clear and obvious place and time when N8N is actually not a bad solution. And a lot of the clients and companies I'm targeting already have very complex N8N workflows that I need to be able to work on effectively. So I need this skill not because it's the future, but because the future involves working with pre-existing automations.
I'm probably progressing slower than you'd expect. The things I'm automating right now, you could probably do in minutes, and it's taking me longer. But for good reason. I'm not running a sprint to see how fast I can pop these out. I'm taking my time, understanding what exactly they're doing on a deep technical level.
Here's one KPI I think about. Put me side by side with an average person who's considered reasonably competent at N8N. Present a fairly complex automation workflow need. Tell that person: automate this within N8N. Then look at me and say: automate this however you want.
I look at my toolkit, and maybe it's all N8N. Maybe it's not N8N at all. Maybe it's Supabase functions, or an API endpoint in a Next.js app. Maybe it's AWS infrastructure. A Python script running in an ECS cluster, or a Lambda function behind an API Gateway resource. Basically what I'm getting at is I've got more variety of tools in my kit, and part of the service I offer is being able to evaluate: What's the upfront engineering cost? How long will this take? What's the level of effort? How much is this going to cost the client to run? And then there are other scores. Elegance. Robustness. Future-proofing.
You tell me what the constraints are, and I will blow them out of the water. If you say you don't care about cost optimization, you don't care how much it costs to run, you don't care about robustness or performance or observability or security, you just need this thing in the next hour, ideally in a few minutes, ready to run and start collecting data? In that case, I'd probably use N8N. And that's actually a case you see out in the wild with increasing frequency. But if you come at me and say you don't care if it takes a little longer, but it's got to be secure, or it's got to be cheap to operate, or it's got to be maintainable two years from now? Then I'm picking different tools. You tell me what matters most and I'll pick what's most conducive to your priorities.
Now take the scenario where I do use N8N. I'd like to still beat the other person on other metrics while also beating them on speed. And I really think there's something to this code-first development workflow. This ties directly into what I was working on yesterday.
I've been using code-first workflows to deploy N8N automations, and there's an interesting benefit. I'm probably over-relying on custom nodes when there are probably existing community nodes that do exactly what I want. But I'm able to create these nodes so fast with my AI coding agents that it's trivial. I can build them almost as fast as you can search for them. And they're all right there, rolled into my codebase.
Pay attention to what I'm about to describe because it's going to matter later.
I can generate custom nodes that do a thing almost as fast as you can search for existing ones. This means the penalty you pay for accepting things the way they're offered in the marketplace is needless. If I can have it custom just as fast, then anytime you'd be tempted to compromise and tolerate extra code you don't need, extra functionality that's not necessary, you're tacking bloat onto your system. More complexity. Greater attack surface. It's the difference between buying a Windows machine with all this preloaded software taking up space and memory and adding vulnerabilities, versus a Linux machine that has nothing on it. You install every single thing you need from the command line because GUIs are overhead too.
When I build my own custom node, I'm building just what I need. No more, no less. And I'm building it exactly the way I need it. No compromise. Community nodes don't have awareness of your overall business goals, your tech positioning, what the rest of your stack looks like. Zero context awareness. My development workflow has all of that.
And keep in mind, at this point, I'm retaining every single benefit and advantage that N8N has. What I'm describing is still an N8N workflow. These aren't future dreams. These are things I've already done, things I'm doing, things I've proven.
My setup right now is still fairly simple but starting to gain complexity. I'm running a local N8N installation. Docker Compose orchestrates both the N8N service and the Postgres database as containers on my local machine. I want full control over it. I want it all living right there in my codebase. Everything is designed around polling external sources. My website has lead data and transcript data, two main tables that my web app manages CRUD for, all backed by Supabase.
I added a backend for my website yesterday. Right now, the blogs are Markdown files committed to the codebase so that my IDE and coding agents have full blog awareness. I'll probably keep it that way. There's something powerful about the agents that help me code on the website having awareness of all the content. I added an admin area secured by Supabase auth. It's very simple: two CRUD pages, one for leads and one for transcripts. There's also a preview dashboard that shows the most recent leads and transcripts with some aggregated stats. Pull up the backend and you can review everything at a glance.
The Next.js app on Vercel has secured API endpoints that let me request transcript data from the Supabase database. So the flow is: I record a voice memo on my phone, generate a text transcript, open up my website's transcript interface (saved in my browser bookmarks, fully mobile responsive), paste it in, and submit. It's a one-field form. The title defaults to a placeholder with a timestamp. Status fields have clear defaults. I didn't want to make it more clicks than it had to be. When I'm done recording, I just open my phone, paste it in, submit.
Then the automation kicks off. Right now it's a manual trigger that's going to become a poll. N8N reaches out, finds transcripts that haven't been processed yet, grabs the first one on the list. That's a node right there. That's everything it does. That's a whole step in the automation workflow, and it's its own custom node that took seconds to create.
Every time I add a node, it's version controlled. Workflows export to JSON, and I version control those too. For every custom node, the actual code is in source control. For every community node, the name is tracked in the workflow JSON. Full history of everything.
This opens up a workflow I can already see for client work. When I'm working through someone's spaghetti nodes, working with companies who've got extremely complex sets of automation workflows, I can export the JSON and start evaluating each community node. Reverse engineer what it's doing. Create a custom node for it. You're trimming the fat, taking out every bit of functionality you don't actually need, putting in just the stuff you do need. Lightweight, flexible. And you can condense things. You might have two or five different nodes doing different things and it's like, why is that a separate step? That could be a single node.
There's also the security angle. I don't trust community nodes in the marketplace. It's probably nowhere near as bad as WordPress plugins were back in the day, but I don't expect it to be great either. Same pressure to pop out code that just gets the job done. With custom nodes, we run our own security scans. We have full insight.
Step one is getting all the nodes into code we own. Step two is using the context of having all these nodes in code to have our coding agents analyze the whole thing and say, what can we refactor? What can we consolidate? Generate a plan, have a conversation about what should stay separate and why. It gives us the ability to bring AI into the development workflow in a really powerful way. And that extends to logging, observability, troubleshooting, self-healing. We could have automations that observe other workflows, gather logging data, and actually make adjustments, open up pull requests, and deploy changes. That's farther down the road, but it's on the radar.
And there's a human side to this too. You've got staff who are familiar with N8N, people whose day-to-day involves managing and troubleshooting automations, watching the community for new nodes. I'm not going to walk in and tell them their tools are wrong. They walk in one day and the workflow looks clean and sharp and easy to read. When I point out what I've changed, I use familiar terms. I say "here's this node, here's this node." They ask where I found them. I say I built them. And then there's a training component where I can get them set up with an N8N dev environment and walk them through using something like Claude Code or Cursor to generate their own custom nodes.
The key is I'm not slowing the team down. I'm using tools they're familiar with. And the whole time, every automation workflow is rolling into a Git repository that our coding agents have full awareness of. Need a new API endpoint for a custom node to integrate with? It's all right there in the same monorepo. In the same session, my coding agents can add endpoints and nodes that hook up to those endpoints. Anyone familiar with N8N sees these nodes show up and it's like magic. It just works.
So what's next with the transcript pipeline specifically? The first step is throwing the raw transcript to an LLM for cleanup. The prompt is basically: you're a basic editor, take this raw voice transcript and correct spelling mistakes using context, pay close attention to technology terms, software names, product names that might be spelled in clever ways, acronyms, that sort of thing. A basic spell-checker pass.
After that, I want to parse out different topics, keywords, subjects from the transcript. Unpack those. Then there's a step to find the greatest hits, the one-liners, the bold statements, the memorable things that are relevant to the topics. That's the proof of humanity. That's the personality, the voice, the hot takes on whatever I covered. Another step might generate what I'm calling a shadow article. Total AI slop, purely for generative search optimization, based on certain keywords from the transcript. We don't care about proof of humanity there. We don't care about my voice as a writer. Then maybe another agent compares the two, uses the SEO and GSO fodder as a foundation but inserts the greatest hits from the actual talk.
We also need image generation. At the very least, a blog header image. Reach out to something like Stable Diffusion or a third-party service that wraps these foundational models. The prompt would factor in the CyberWorld brand style, the topics covered, and the strongest statements from the human. Before we roll our own, we might just use an API and pay a small subscription.
Farther out, there's a whole audio component. Python libraries that can process voice recordings, filter out gaps, clip redundancy. Take the narrative from the audio and generate visuals to go with it. That stuff is farther down the road, but as fast as I'm moving, I don't think it'll actually be that far. The real variable is always client work. Sometimes I get a ton of clients at once and I'm just doing client work to pile up cash reserves.
Right now I've already got a node that pulls transcripts from the website API endpoint and one that uses a GPT model for the initial cleanup. I might switch to a Groq model for that step instead. But the target for the next week, hopefully over the weekend, is to handle all the text processing so these blog automations are actually publishing. The goal: I record a transcript like this, post it into my transcript interface, the automations kick off, and within minutes I've got a blog draft ready to publish. That's where I'm at. That's where I'm going next.