From Frustration to Flexibility: How ChatGPT and JavaScript Frameworks are Redefining No-Code Website Development

Andrew Poydence
6 min readJan 25, 2023

--

AI generated art of our future developers

To start, a few disclaimers. I work on Google’s no-code platform AppSheet. I’m a software engineer on the team. Which leads to the next disclaimer, I actually know how to write code pretty effectively and enjoy it. This article is about my exploration into building a website. My goal was to use Bubble.io for the frontend and a custom backend written in Go. Given I work at Google, I planned to host the backend in AppEngine Standard as it has a generous free tier and I’m quite familiar with it.

I started my journey by creating an API in Go. I won’t go into it here, but effectively I created a set of RESTful endpoints and deployed them to AppEngine. Easy. Now, I consider myself a backend engineer. Which in different words means “I’m afraid of CSS”. While I know when a website looks appealing, I find it hard to get something there. So I figured a no-code platform would help. Given I work at AppSheet, it’s a fair assumption to think I would start there. However I didn’t for two reasons.

  1. I already know AppSheet pretty well and the whole point of this journey isn’t to start a business or something but just to poke around and learn. I have been wanting to explore Bubble.io and its feature-set so this seemed like a great chance to learn.
  2. AppSheet isn’t really for building websites. It’s for building internal “things” such as sites and workflows. So Bubble.io it is.

I read the docs and found that it has a plug-in system that allows the site to be pretty dynamic and extensible. The plugin that seemed most interesting for connecting to my backend is the API Connector. For my site, it looked like this is what I would need. Great! So to start, I figured I would read the docs. I went and got myself a cup of coffee and prepared to really dive in. I went in assuming Google Cloud Platform style docs. Detailed, lengthy, maybe awkwardly written… Instead I found a few short paragraphs that only described the most obvious path. My first thought was optimistic, this must “just work” and is self explanatory. So I began actually building…

At this point, I felt pretty good about my chances of doing what I wanted with Bubble.io. But… This is also where it started to fall apart for me. While dragging things around trying to get the layout I wanted I started to remember something about myself… This type of “programming” always feels limiting to me. Bubble.io bragged that it could support numerous layouts, however while I was trying to get the site to look a certain way it just never quite conformed. I found myself constantly Googling things only to find a community posts where some poor soul was struggling too. Far too often the post was left unanswered or had the dreaded answer: “I figured it out.”

I felt my frustration rising. Time for a different strategy. Enter ChatGPT. I asked it questions on how to achieve the layout I wanted and it always confidently gave me answers… That were unsuccessful. Fine. I’ll live with the ugly layout I managed to get. We’ll come back to it later.

Next up is wiring up the data part. This should be easy. After-all, the docs are so concise, it must just work! Wrong again. I ended up falling into a similar path where I Googled and ChatGPT’d only to find more dead ends. At this point, I went and got another cup of coffee. This time, I At this point, I went and got another cup of coffee… Maybe it was an Irish one. Time to reassess. What other options do I have here? I could obviously start over with a different no-code technology (e.g., weweb.io), but I felt myself not being invested in that path. I wanted something that could just be generated for me…

This brings me to the heart of my article. In case you’ve been living under a rock, generative AI can write code now. This is huge. So instead of being confined within the limitations of a no-code product and being subject to their bugs, limited features and docs, I can just… create and host my own site! Of course, many of you who are reading this are already thinking of the drawbacks to this. Lets list the two most obvious:

  1. Hosting a site is tricky. Deploying to servers isn’t for the faint of heart. If done poorly, your site will either have massive downtime or cost you a small fortune (or both). Have you ever hosted your own Wordpress? It can cost several dollars a month. Use the wrong database type… It ends up costing 100s of dollars a month. This is just a toy, I don’t want to bother with that!
  2. Writing code is slow. As I said before, writing code is great, right up until you have to debug something. I also mentioned that I’m a backend developer, which means I will definitely mess up the frontend code, hate how it looks and take forever learning new things.

Obviously valid concerns. So if I move forward, how can I make sure these don’t derail me. Enter Svelte. Svelte is similar to React (a JavaScript framework by Facebook), but with more guardrails. It lets you write your HTML and JavaScript all together. They had a simple tutorial to get me moving. I could host it in AppEngine Standard for cheap and most importantly… ChatGPT could generate large swaths of it. To my surprise, after starting with a simple hello world like app in SvelteKit, I had a website that looked fairly nice. I did very little CSS, and what little was needed, ChatGPT was up for the task. I read VERY little docs, troubleshot very infrequently and ChatGPT helped where it could. Where I had struggled with Bubble.io for several hours, I now had a site up and running in about two with Svelte.

Lets pause for a minute. Because to be honest, this wasn’t at all where I had planned on going with this journey. What happened here? In the past I’ve done similar things. Plan on making a website, start on the frontend and then lose interest. What changed? I think two things:

  1. Svelte was pleasant to work with. It held my hand just enough so I didn’t have to dive head first into docs and become an expert but was flexible enough to let me get my ideas out.
  2. ChatGPT. I knew what I wanted but had no idea how to do it. ChatGPT took my ideas and turned them into code. Code that mostly just worked. As I saw the output, I could take it back to the AI and adjust. This was like pairing. I was the domain expert and knew the requirements while the AI was the technology expert and could implement. Together, we built a site quite quickly.

So what did I learn from all this? I think if I worked for Bubble.io, I’d be worried. Generative AI has lowered the bar for building a website. This isn’t surprising. I’m sure this isn’t the first article that you’ve read about doing something with it. These no-code platforms are VERY limited in functionality. They have to be. They have to pick a subset of features to go and make great. Bubble.io does that. However, I couldn’t just generate the site from AI and I instead had to struggle through community posts to push myself forward. I feel like I can eat pain pretty well, but given it was so easy to break out of their platform and just do it myself is pretty appealing.

So what should these no-code platforms do to stay relevant? I think it’s obvious. Allow users to generate a site with AI. Allow for the generation to be conversational and therefore iterative. And finally, make this shift fast. It’s likely we’re about to see a bunch of new platforms that basically just generate HTML, CSS and JavaScript and call themselves a platform. Shoot, I was thinking about doing this myself. Basically just automate the stack I came up with (Svelte deployed on AppEngine written by ChatGPT). I could make… 100s of dollars (maybe)!

Ultimately, this journey became what looks to be quite… common. ChatGPT changes everything (you’ve heard that a few times I’m sure). If you’re a content creator, it’s getting easier but more competitive. If you’re a platform hoping to host a creator’s content, then its an evolve or die type moment.

Maybe one day I’ll update this article with the link to the aforementioned website I built, but for now, I wish you all happy innovating.

--

--

Andrew Poydence

#Cloud Developer at @Google. I am love with writing #Go, exploring #GCP and the cloud in general. Opinions stated here are my own.