Is Figma no-code?

Market landscape is the people’s go-to tool whenever they are researching a new industry, and no-code is no exception. No-code landscape posts are ubiquitous and pretty much anyone who jumps into this industry has to write their own version of the no-code landscape, as it attracts new readers well. It’s a great tool, but when written incorrectly it could cause a lot of confusion, fake hype or misdirection.

I searched for the same thing when I was researching about no-code years ago, and it was weird seeing people putting all kinds of stuff into their reports.

From The Rapidly Expanding No-Code Landscape | by Vivek Goel | Medium

This is the 3rd result from the Google Images search results page for the keyword “no-code landscape”. Kudos to Vivek Goel for the hard work of researching and the virality of the content, but I think a lot of logos in this image are very questionable.

Under the design section (this is already a very questionable category), you can find tools like Figma and Designbold (proudly a product from Vietnam, unfortunately sunsetted), as they help you design without… code. Just from the top of your mind, instinctively, when introducing no-code to a friend who is absolutely clueless about the industry, would you introduce Figma? Trello is also a very questionable “no-code tool” in this diagram. How is Trello no-coding here? Are we saying that Trello is helping us organize our tasks without codes?

I swear that I once saw someone listed Photoshop as a no-code tool, as you can edit images without code. With this vague perception, literally everything is no-code: Google Chrome helps you browse the web by making HTTP requests without code; Windows is helping you control your machine without coding in a terminal; Calculator app is helping you calculate without having to manually write algorithms. What’s the point of a no-code landscape then? Is no-code even a real thing anymore? Is “no-code” simply a “web3”’s counterpart to a fancy marketing term?

How do we help with this situation? How do we define no-code in a valuable way?

May be a graphic
Some people just try to put as many things they found in one landscape report as possible, showing off their seemingly “vast” knowledge of the industry (Source: I couldn’t reverse search this on Google. It was from a post on Facebook)

Wiki’s definition of no-code

From Wiki: “No-code development platforms (NCDPs) allow creating application software through graphical user interfaces and configuration instead of traditional computer programming.” (It’s not an academic source but it’s a good example of a summarized voice of the Internet).

This has already narrowed down our scopes by a lot. Let’s analyze a few keywords within this sentence.

  • Development: This is a very frequent term when it comes to doing projects with no-code tools. Usually, when you are using no-code, you are developing something, either an app or a website. Of course you can develop a project or a person, but this is the technical, IT “development” term we are talking about. I don’t think we are “developing” something with Photoshop or Trello, and using Photoshop wouldn’t make you a “no-code developer”.
  • Creating application software: I think this is the most important factor considering whether a tool is no-code or not, that is whether it can create or help create an application software. Obviously we’re not creating an application with Photoshop or Figma here (although Figma seems to be really reaching to that point where it can really create an application).

I think this definition is already a very good definition for people with technical backgrounds, but it still seems vague for non-technical people. Albeit indefinite, I think it’s a good start. I’ll try to improve this later on.

5th generation programming language

Generations of programming languages are real terms used by scientists to measure how programming languages have evolved. Currently there are 5 known generations of programming languages:

  • 1st gen: Machine code - basically zero’s and one’s (does Minecraft count?), which machines can understand directly without translation.
  • 2nd gen: Assembly languages - more human-friendly mnemonic instructions to the machines.
  • 3rd gen: Low-level programming languages - C, Pascal, Java, etc, usually compiles directly to assembly languages and are pretty fast. They are usually used to build stuff like Operating Systems. Way easier to work with than Assembly (although C’s pointers would still pretty much kill a few brain cells of yours).
  • 4th gen: High-level programming languages - R, SQL, Javascript, usually used for specific purposes (except for the infamous Javascript), and usually compiles to 3rd gen languages.
  • 5th gen: Very high-level programming languages - This is where our no-code tools are usually categorized into, besides AI generated programs and some abstract programming languages. They focus mainly on solving logic problems or data analysis.
Ada Lovelace
Ada Lovelace’s machine should be the 0th generation, and any cardboard-based calculator. (Image source: National Geographics Kids)

As the programming languages evolve, we see patterns:

  • The next generations are usually built on top of the previous ones and in order for the machine to understand, need to be complied to the previous generations.
  • The next generations tend to focus more and more on a specific niche rather than solving generic problems, like SQL being used only for querying data.
  • The next generations are friendlier to wider audience. Assembly is hardly used by anyone other than computer scientists, but Python is vastly used by non-development roles such as data analysts.
  • The next generations are (inevitably) less performant, as it takes time to compile to the previous generations.

Yet, all generations revolve around the fundamental definition of codes: a set of instructions built for the machine. High-level, more abstract instructions are translated to more machine-friendly translations for the machine to process. These instructions are then stored, distributed, used and reused by systems and humans.

For example, building a login feature on Bubble is as simple as putting a button onto the screen and other it to “login” on click. Bubble will then convert the instruction into a bunch of JS code, which will then be compiled into queries and http requests that interact with a database and an authentication service of some sort. The instructions also need to be built, usually logical patterns that create an output based on an input. Basically a big function.

My definition of no-code

In conclusion from all the points above, no-code can be understood as:

“Tools and platforms that help users build instructions for the machines, without having the use earlier generations of languages, that can be stored, distributed and run upon requests to solve certain logical problems”.

With this definition, I believe we have scoped the landscape pretty well. Let’s look at a few examples:

  • All web apps, mobile apps, desktop apps, and automation builders are rightfully no-code tools. This is pretty much a no-brainer to all users. The apps can be triggered to do something, e.g. click on a button to log in, or click on a post to view the contents. You input a search, they spit out results.
  • Website builders are somewhat more vague, but still mostly no-code tools. For instance, you can use Webflow to drag-and-drop a website as a replacement for HTML, CSS and JS development. However, if a tool only allows you to create static sites with only HTML and CSS, which doesn’t solve any logical problem nor required any requests from users or system, would it still be a no-code tool? The answer is probably yes, as HTML and CSS are required to be converted to a lower-level language, e.g. C, in order to be run as instructions, and HTML are still instructions, e.g. this box should be 20 pixels wide. However there are grey areas here, which will be exemplified below.
  • Figma’s screens are simply images, which are not really any kinds of instructions nor are solving any logical problems, so I don’t consider Figma no-code. However, what are the real differences between a one-page static website without any interactions and an image? Besides SEO and accessbility purposes, an image and a static HTML site are pretty much interchangable, and indeed a lot of websites are built that way, with images only! Figma does produce code to a certain extent, but it doesn’t define Figma as a no-code tool but rather has some “no-code features”. To be defined as a no-code tool, I believe the “no-code aspect” of it has to be dominant.
  • Form builders are not programs like we usually understand, but they are indeed small programs that you can customize to take inputs and produce outputs in your spreadsheets or databases.
  • Trello doesn’t seem like no-code to me, and to pretty much all users. You don’t build any instructions with Trello, besides some automations it has. Once again, it’s more like “with no-code features” rather than “being no-code”.
  • Excel is no-code. It’s one of the first actually. It’s even Turing complete.
  • Stripe has no-code features, but dominantly most of its instructions are built - you don’t really have to build anything besides some tax rules. I don’t see Stripe as a no-code tool.
  • Chatbots seem to be in the same area as form builders, as no-code tools that can create small programs serving a specific need.
  • Course builders, ecommerce platforms, podcasts platforms, etc are simply apps with no-code features. Some are even without no-code - please don’t mistake dragging and dropping your courses content into a hierarchy the same thing as dragging and dropping your logical functions like with Zapier.
  • Email automations should be categorized into the same segment as with Stripe.
  • Game builders like GameMaker are no-code tools. They are even more no-code than a lot of regular app builders. We just don’t think of them when talking about no-code primarily because of no-code being most discussed in the business context; but inherently you can build a CRM with a game builder. Gamification is already putting a lot of apps on the middle line anyway.

My proposed map

I’d like to share this following map as a summary of the analysis, which seems to be a better way of navigating the no-code landscape:

Disclaimer: This is not representing the absolute positions, nor all categories in the no-code industry. This is rather to give you a better sense of what are and what are not no-code tools.

We can consider anything on the left of the diagram to be no-code, and anything on the right to be not. There will certainly be a couple of tools and platforms that lie directly on the middle line (like Notion?), and I haven’t got an idea of how we should categorize them yet. Perhaps I’ll be able to think of a new segment for them later on.

I hope this somewhat helps you navigate a lot better amidst the unfathomable scope of this uprising industry, especially when inspecting no-code landscape maps on the Internet. I’ll produce my own version of the landscape in an upcomming post. Stay tuned.

Have project in mind? Let’s talk.

Our team will contact you within hours.