vincentdnl

Problems I have with no-code tools

April 25th, 2020

On paper I'm a huge fan of any tool that helps me be more productive. Why bother spending time, scratching your head on a text editor when you can just draw the interface you want in a visual tool?

When you are a business owner, time to market is important. When you don't know how to code, developers are expensive. So you might be tempted to jump into using a SaaS solution that allows you to prove your concept very fast. And that might be the right move for you. But before you invest 6 months of your work in one of these platforms, you might want to read this article so that you know the pros and the cons of doing so.

First let's clear things up. When I say no-code or low-code tools, I refer to closed-sourced platforms. I know there are exceptions. Some no-code tools are open-source, and I'm keeping an eye on these. Without dropping names, I'll be referring mostly to tools that help you build websites, hold your data or help you connect between other SaaS products.

You don't own your business logic

I've stumbled upon a Tweet of someone saying that their ten years old did their first mobile application using a no-code tool. See? these things are so easy that even kids can use them!

Except there is a problem: you don't own your business logic. The easiness comes with a trade-off.

I'm a developer. Let's say I'm building a web service using the Python programming language. I'll be writing code in Python and once I'm done, I'll be deploying the code online. Python is open-source under a GPL software license, meaning that I know for sure that I'll always be able to run my service, no matter what happen!

Things are different when you create your logic on a SaaS tool. You will spend time creating your app on their platform but in the end, you are just renting your business to the platform. For now, you may just have spent one or two days creating your app but what if you invested several years creating your product and the platform either:

  • shut down for economic reasons. Here are possible reasons: bankruptcy, another company buys it and kill it because they have a competing product.
  • banned your account for no explicit reason (maybe your product is competing with another one from their shareholders?)
  • change their pricing. Now you have no other choice than either pay them or rewrite your whole application somewhere else.
  • stop adding features / they remove a feature you were using / they add a new feature you don't need
  • start having quality issues that impact your business

It is called vendor-locking. In all these cases it can be very painful. It cripples or even kill your business.

You are vendor-locked

The second thing that can be vendor-locked is your data. As a developer if I'm choosing an open-source database solution (like PostgreSQL for example), I'm sure that in case of a problem, I can export my data and recreate my database somewhere else.

To be fair, lots of SaaS database solution allow you to export your data in case you want to go somewhere else. But it might take time to make the data compatible with the new system.

Easy things are easy, hard things are hard

Simple things are easy to make with no-code tools. "Look at how easy it is to create one simple page!" Except in real life, nothing is as simple as a TODO list. Business requirements are piling up. When you need more complex data processing you might get stuck. Or you end up connecting the services using API connection services (for example something that would react to an email from a customer and create an order on your e-commerce website).

Instead of a few lines of code your will recreate a pile of mess, distributed between dozens of services. The more services you'll connect the less control over your product you'll have.

And what if one of these blocks fail? What if your trigger a refund for a client for example, and the email is sent but the payment processing doesn't work? Distributed systems are complex and if you recreate them with SaaS tools, just make sure you know what you are getting into...

Testability

When I write code, I also write tests, which is code that makes sure things work as intended (and keep working after you modified your product). With no-code you usually assume it works or have to test everything manually (which can be very time-consuming).

There are probably tools that can help you test your interface, but you might want to test your business rules independently and there are no ways to do so that I am aware of.

Wrapping up

I don't hate no-code tools. I think it's great that non-programming people can pursue their side hustle without needing to go through years of programming. I just regret that most tools are made to completely lock users into their ecosystem, letting them invest time into their product, knowing they will reach the point of no return someday and pay.

I'm all in for tools that help you create things that you can own. I'd love using tools that help me build websites and at the end of the day I can take my project and deploy it where I want, being virtually immune to pricing changes.

Of course, if you are a small business, you'll have to use some SaaS services for some of your needs. Just make sure that you own the core of your business! Using a mailing service is ok. You would spend too much time to recreate one on your own. But your unique value proposition should be something that belongs to you.

I hope this article helped you to see the two sides of the coin and make an informed decision if you want to use a SaaS platform for your business.