Yes, Code: How AI can challenge the No-Code movement
The buzz surrounding GPT-4 is palpable. The latest iteration of OpenAI's language model has entered the discourse with a bang. Enthusiasts and critics alike are eager to see if, and how, this technology can revolutionise various industries. And there is an obvious focus on software development, given the costs associated with it.
In a past article, we discussed how No-code fits into your company's software strategy. This was before GPT-4 and Copilot X arrived. In this article, we will revisit that proposition, asking if GPT-4 can replace no-code tooling. Should the no-code movement be concerned?
No-Code benefits and limitations
No-code platforms have been a game changer. The tooling empowers users to create applications and websites without writing a single line of code. The advantages of no-code tools over traditional code generation methods are great. They allow non-technical users to take part in software development. They reduce development time, and lower costs compared to hiring engineers. And they free precious engineering cycles for the needs of the business.
But, no-code platforms have their limitations. They often lack the flexibility and customisability of traditional programming languages. This can hinder more advanced users, and restricts the outcomes. You can't do what the platform doesn't support, or you need to start adding code via integrations. Users may become locked into a specific platform, resulting in vendor dependency.
And performance and security may not be at the same level as for custom-built applications.
The Advantages and Drawbacks of LLM
Language models like ChatGPT have the potential to offer benefits over no-code platforms. They can understand natural language queries. This enables users to get customised code snippets by simply asking for them. It allows for greater flexibility than no-code platforms, users can adjust the code to meet specific requirements.
Tools like ChatGPT can integrate with various programming languages and libraries. This contrasts with many no-code platforms, which are limited to their in-built functionalities. Additionally, LLMs can learn new coding practices, adapting to new patterns in real-time.
While LLMs offer many advantages, they also come with their own set of drawbacks. They need a certain level of technical expertise to use effectively. In contrast, no-code tools cater to non-technical users. LLM-generated code may not always be optimal, posing potential security and performance risks. And LLMs are not yet perfect at understanding context and nuances. This could lead to misunderstandings and inaccuracies in code generation.
Hasura GraphQL Example
Let's take the example of generating a view in Hasura, a popular GraphQL engine. With Hasura and its interface, you can create a view for a table with minimal effort. It is worth noting that we are ignoring the CLI access here, as that stops being No-Code.
For example, you would do something like the following image:
Which comes from Hasura's documentation. Creating that table will automatically create a GraphQL schema.
Yet, consider you are working with TypeScript and Apollo-Client, a popular GraphQL library. If you ask ChatGPT for a GraphQL implementation for the same table, it generates the desired code with comparable ease.
Using the following prompt:
Given this SQL table:
CREATE TABLE articles(id serial NOT NULL, title text NOT NULL, content text NOT NULL, rating integer NOT NULL, author_id serial NOT NULL, PRIMARY KEY (id));
create a GraphQL schema for the table. Use Apollo-Client and TypeScript.
We get the steps to install dependencies and create the necessary TypeScript types. It also provides examples on how to use that code in our API. We omit the output code as it is long and not relevant to the article. The reader can try the prompt above to see the result.
This example highlights how LLMs can offer similar ease of use as no-code platforms. For a user with technical experience, the experience is similar. But they enjoy the added flexibility and customisability of traditional programming languages.
It also demonstrates the potential of LLMs to cater to a variety of use cases, from simple queries to more complex implementations.
ChatGPT vs. Webflow Example
Webflow is a popular no-code platform for creating responsive websites without writing code. To create a custom website, users drag and drop elements into place and configure them using a visual interface. This process is intuitive and user-friendly, but it can be limiting in terms of flexibility and customisability.
Pitting ChatGPT against Webflow presents an interesting case. Webflow has plugins that provide integrations with other platforms, like Figma. In theory, one can build a new website in one step, from a Figma template.
A user can also create pages in Webflow. For example, they can create a new form, as per this tutorial.
This second case is a natural fit for LLMs. A prompt like the following:
Create a Html form, styled with the latest Bootstrap, that has two input fields: name and email. The form fields are stacked vertically. Make it responsive.
This prompt provides all the necessary code, along an explanation of some of the CSS classes used. This approach offers greater flexibility and control over the final product. Users can fine-tune the generated code to meet their specific needs, and it is much faster than the Webflow user interface. One could paste this into Webflow to then allow a non-technical user to tweak parameters.
But what about the first use case? Webflow generates a site from a Figma design, can GPT-4 do something similar? Well, this video shows the answer: yes. With a big caution. This doesn't seem to be available to users, as the interface to GPT-4 doesn't parse images. Yet people with early access show it is possible.
This example shows that LLMs can replace part of existing no-code platforms. To be clear, Webflow offers more than the interface. They also provide hosting services, and integrations. But many other serverless platforms provide that. The main appeal of Webflow was the designer, and that may not be relevant any more.
ChatGPT vs. Auth0 Example
Our managing partner wrote recently about his experience with GPT-4. He pointed that single-purpose SaaS products may also be at risk.
Auth0 is a known solution for user authentication and authorisation. It is also carries a meaningful price-tag, which can be expected to rise further after their acquisition by Okta.
At its core, Auth0 provides a service that could be replaced by an Oauth2 implementation. But creating that code is time-consuming and error-prone, so people pay for the service. Can LLMs change this?
If we use this prompt:
I want to let users authenticate on my platform. Using TypeScript, Postgres, and Html, generate the code I'd need to log in a user. Include:
- the login form
- the backend code to verify the credentials and return a valid JWT token, using the 0auth2 protocol
- any database code that is needed, including code to create the database tables
- and code to generate and validate the Oauth2 tokens when a request uses then as Bearer tokens
Also include any steps necessary to generate the infrastructure required for this code.
GPT-4 starts answering with
This example demonstrates how to create a user authentication system using TypeScript, PostgreSQL, and HTML, implementing the OAuth2 protocol to generate and validate JWT tokens.
We will use Express for the backend, TypeORM for the database, and jsonwebtoken for handling JWT tokens.
And proceeds to give us the code. We had to ask it to continue a couple of times, due to token limits. But we get the required code. This is only for login, but we can adjust the question to get the code for account creation.
Given this, do we still need those single purpose SaaS products? The main benefit of these services was to save precious development cycles. When building and securing an authentication platform is costly, and not your core business, you buy it. The serverless approach of building what you need and leasing the rest helped these services grow.
But when creating the functionality takes a couple of hours with an LLM, is it still worth it? Hosting is no longer a concern when using serverless. Security requirements are still similar, given that you need to protect your platform. And in exchange, one avoids lock-in for a critical part of the architecture.
The trade-offs still exist. We are not advocating to stop using single-purpose SaaS. But the formula of when to use them, and when not, has changed considerably. When creating new functionality and hosting it becomes very cheap, there must be a strong reason to outsource it at a potentially high monthly, recurring cost.
Conclusion: Are LLM a Concern for No-Code Platforms?
In summary, ChatGPT and other LLMs have the potential to challenge no-code platforms in certain contexts. They offer greater flexibility, customisability, and versatility. Understanding natural language queries means they are as easy to use as No-Code tools. And generating code across many programming languages and libraries is a benefit for its users.
Yet, no-code platforms still hold a significant advantage when it comes to non-technical users. LLMs need a certain level of technical expertise to be used effectively. This may deter a sizeable part of the no-code movement's target audience.
In the near future, it's unlikely that LLMs will completely replace no-code platforms. Instead, they may coexist, catering to different segments of the market. No-code tools will continue to appeal to non-technical users who seek a low-cost solution to software development. LLMs use will grow among those with technical skills who can piece together, and when needed, correct the LLM output. LLM's will thrive in this niché due to the greater customisability and flexibility of their output.
As LLMs continue to evolve and improve, they will increasingly encroach on the territory of no-code platforms. In the long term, we expect the line to blur to the point that they become indistinguishable.
Ultimately, this will benefit users by giving more accessible, efficient, and customisable solutions for software development.