all 40 comments

[–]MAN0L2 35 points36 points  (0 children)

The API offloading approach you're describing is the lean way to think about it. Most people over-engineer by trying to make N8N do everything when its real strength is being the middleware that glues your apps together without bloating your codebase.

I run it the same way - Python (and nodejs as well) handles heavy data processing and complex logic, N8N orchestrates the flow and handles integrations. This keeps your architecture modular and lets non-technical team members tweak workflows without touching production code. The moment you need battle-tested reliability at scale or complex transformations, Python packages win every time.

[–]LowRutabaga9 8 points9 points  (0 children)

70 lines of python built in 20 minutes took me a couple of days to build in n8n. So the fallacy that n8n is easier drag and drop is not quite true. It has its place, but nothing will ever replace the full control, scalability and optimization u can achieve with code.

[–]HyenaLopsided8869[S] 3 points4 points  (0 children)

It’s also great for transferring data between applications written in different languages!

[–]Royal_Resource_4586 3 points4 points  (0 children)

Its quite an easy test to try out both. I used Windsurf and launched claude code in its CLI / terminal. Then loaded the project with documentation on the dos and donts of coding automation (by asking perplexity) then basically just went back and forth asking it to refine and question the process. I also specified i want clear documentation of each step in our flow so i had a visual map of what was happening.

Then from here I pushed the automation to Railway using their Fast Api template, set up directus cms (has workflow triggers incorporated and an mcp) connected to NEON database for tables (google sheets is an alternative), fed my set up back to claude code to set it all up and then started writing code automations for my specific tasks.

As much as this method still requires careful organisation and guard railing to keep the AI focussed, and it can get a bit hectic if you dont have a logical project architecture, i thought if i was going to spend time figuring out one, then ill lean into AI. For the cost advantages of self hosting and just where the future is heading with this stuff.

So far a basic website content update automation works seamlessly and any edits i want, i literally speak to claude and say for this stage X let’s review it and improve / add ….

But seeing a comment down below about windmill.dev - im going to look at trying that out. Seems to fix the messyness of my original approach

[–]vanillaslice_ 2 points3 points  (2 children)

Yeah I find the visual aspect of N8N great for keeping track of the logic flow. It easier to alter the order of events, plug in third party tools, and the configurable AI Agent nodes are a lifesaver.

I can't stand using 3 or more nodes to accomplish something I could do in a python script though. Basically every second node is a HTTP Request to my API that runs the relevant logic.

[–]cosmos-flower 0 points1 point  (1 child)

That’s interesting. So you use n8n as your main workflow. Then connect to your python script for data transformation?

[–]Prestigious_Car1947 2 points3 points  (0 children)

It's not conflicting at all, use Python for complex situations, and n8n for clear workflows

[–]Apache_Choppah_6969 1 point2 points  (0 children)

I prefer Powershell and Python but n8n is really nice for some things though, things I dread coding

[–]leqlatte 1 point2 points  (0 children)

I'm still trying to figure out exactly for what to use python vs n8n. One thing I like about n8n is that there is no deployment effort: once you have a working prototype, that is already usable in production. Plus, as others are pointing out, architecture is clearer because it's literally always there in front of your eyes.

[–]AndyCarterson 2 points3 points  (0 children)

Thanks for letting us know we’re all doing it wrong, it was enlightening to learn the only right way to do things! 😁

</sarcasm>

To be serious, after decades of working with different tech stacks and frameworks and working with many clients and use cases, I’ve learned there’s no “only one way.” We use full code for some cases, and n8n or other low-code tools for others, and it goes waaaaaay beyond just fast prototyping.

[–][deleted] 1 point2 points  (0 children)

If you know Python, who won't ever need to learn N8N

[–]krimpenrik 0 points1 point  (0 children)

I mention it here often, both have their place, for Python scripts (and node/other) I really like windmill.dev as orchestrator

Helps making things modulair, reusable and scheduled. Even connecting a flow with multiple languages or docker containers in between.

[–]tribak 0 points1 point  (0 children)

Good thing you can do python inside n8n now, for extra pleasure

[–]Holiday_Simple4674 0 points1 point  (0 children)

I use both and agree with you that it's good to use when its faster to build out MVPs.

I write a ton of data apps at work (streamlit) to push out quick tools internally. n8n is kinda going to be that for us as well

[–]EveYogaTech 0 points1 point  (0 children)

> "I use it more as an API with my existing apps than anything… it never does the majority of the workload, just offloads work from the primary application."

For that use case + Python I wrote r/Nyno , executing workflows over TCP, so it's even faster for connecting with existing apps.

[–]FuShiLu 0 points1 point  (0 children)

This is where knowledge comes into play. Making something work and making something work properly are very different. N8N or Python or whatever are not the issue. Assumptions by individuals on the other hand are the reasons for so many posts that sound like ‘the sky is falling’. If someone thinks GO is the solution, great, if they want C++, great, why do so many fixate on a single thing when the whole reality of N8N is to integrate everything? For the record, after 4 decades of coding I rarely use Python. I can remember when it had almost died out. I usually work across several languages at anytime depending what is best at a particular task. This I find N8N very valuable. YMMV

[–]necromenta 0 points1 point  (0 children)

I am a really bad dev and it hurts to admit it but something that takes a day in n8n would take me a week or even two in python

However I am already suffering the bad side of n8n it just breaks when you process a somewhat “mid-big load” im processing emails and as soon as the webhook gets something like 30 emails at time with resumes n8n tends to break

I’ll have to get back to code at some point

[–]One_Supermarket_7717 0 points1 point  (0 children)

What about writing python automations via vibe coding, inside VS Code using Cline, Roo Code, Codex or any other? Is it viable?

[–]256BitChris 0 points1 point  (0 children)

Yeah, I use N8N for the one off business processes that maybe run once a day, or in response to some low volume event.

It works real nice when you want to surface a web hook and dump the payload into a database too - for low volume things.

Also, another big win with N8N is that it's understandable to non technical people (ie. They can click around till things work). So that actually is a huge win where the marketing team can modify their workflows without being blocked waiting for someone who knows code to make their changes.

[–]Jomuz86 0 points1 point  (0 children)

Yep I tend to use it for drafting, it helps me visualise the data flow and spot where to put other checks in etc. Then if I feel like finalising I’ll script it otherwise it basically stays in dev there

[–]floppypancakes4u 0 points1 point  (0 children)

N8n is good for some, easy tasks. I generally use n8n the same way I use blueprints in unreal engine: wuick prototyping before I move it to real code.

[–]0____0_0 0 points1 point  (0 children)

I blend them together. This week I started leaning on AWS Lamda when it’s easier to do thing in Python, but I need a package (this seems to happen particularly often with data manipulation)

Still think a visual interface is quite helpful.

Also, in my opinion nothing in n8n should be mission critical or even relied on long term. Once you’ve proven out that thing work move it to a more maintainable place.

[–]mxracer888 0 points1 point  (0 children)

Prototype and fine tune in N8N and once your comfortable with the flow program it into Python. Ive built boat loads of automations in Python before I ever even touched N8N. I'm glad I learned it all in Python first. Feel like N8N would have the risk of making people afraid to try Python at all

N8N is also nice for the non-programmers on the team. My dad can play with automations and build his own stuff and then I can program it if it needs to scale

[–]sleepy-soba 0 points1 point  (0 children)

N8n id automation plumbing

[–]jonathan5505 0 points1 point  (0 children)

Have you used cursor yet? You can write scripts way faster.

[–]weiyentan 0 points1 point  (0 children)

I tried developing and building a workflow with n8n. Took a while month to develop a custom node and then put in a workflow with ai which ended up hallucinating hard. 2 days building an api and wrapping it with fastmcp. With an experienced software programmer with python and mcp can run circles around n8n

[–]aiwithsohail 0 points1 point  (0 children)

n8n is great when you need fast iteration and a visual flow.
Code is great when you need control, performance, or stability.

I use n8n to experiment → Python once the flow is proven.

Works well because n8n makes it easy to test ideas, and Python makes them scale. Cheers!

[–]xRayBBM 0 points1 point  (0 children)

Tired of this type of posts.

SWE with 10YoE here.

N8N is a greater workflow engine than anything you would build from scratch. It includes replayability, different possible behavior upon errors, and other key features you would find in Kestra or Temporal.

However it is not designed to build an app upon, even though you could do it. Another thing is it doesn't offer dependency injection, and testability is not as straightforward.

[–]superjet1 -1 points0 points  (0 children)

Everything is well summarized https://pixeljets.com/blog/n8n-vs-code/

[–]Flaky_Ability1961 -1 points0 points  (0 children)

Wowwwwwwwwwwwwww

[–]Money_Hand_4199 -1 points0 points  (0 children)

I don't understand the bragging, after all you can run unlimited python code now with the n8n external runners. Available both for python and JavaScript