Andrew Davison is a British founder who built and sold an app by learning to code with ChatGPT. He had a problem with exporting multiple tables from Airtable databases so he built a tool to help him automate the process. Andrew used new tools like ChatGPT and Replit to a) figure out the code he would need and b) host the app online with ease. Check out his interview below for more details:
Can you introduce yourself?
I’m originally from the UK, but left to travel in 2012 and never went back. A year later I ended up Hungary and have called it home ever since.
Before that I started - and eventually dropped out of - a computer science degree. The theory fascinated me, but I couldn’t get my head around coding. So I bounced round various jobs, in a brand design agency, a media company and then an app development shop before travelling and eventually gravitating to being a Zapier consultant which I’ve done for the last 6 years now.
Why did you create Export My Base?
As it was my first ‘proper’ project since taking up coding, I wanted it to be a single feature app that solved a small problem - something that I had a good chance of seeing through! Previously I've needed to download multiple tables from an Airtable base and found there's no native way to do this - so that seemed like a good candidate.
How did you learn to code your site?
My aborted computer science degree finally came back around here. Although I couldn’t code, I knew what code looked like, and I had an idea of how concepts like functions, loops, variables etc worked - in my head I could visualise what different pieces would be needed to make my app work.
Then it was a case of just describing that to ChatGPT and asking to to show me code. Early on I asked it to recommend a tech stack and it suggested Python and Flask so that’s what I went with.
It was quite the iterative process. That app was a single python file and single HTML template which kept things simple. It probably took 5-10 hours to get a first version working, but it was using API key authentication (for when people connect their Airtable account) which I quickly realised wouldn’t be very secure for the user - so I decided I’d implement OAuth.
This proved to be the hardest part of the process. ChatGPTs context window made it quite hard to feed in all the Airtable API docs, so I forced myself to learn how OAuth works and then I was able to build it up part by part in my app with ChatGPT helping with errors.
When that was (finally!) working I had something that worked, but looked pretty ugly, so then I must have spent another 10 hours or so playing around with CSS to get a good layout that worked well on both desktop and mobile. To be honest I don’t love the final result, but there came that moment where I’d had enough building and just wanted to ship!
What are the advantages of using Replit?
Using Replit was another early on suggestion from ChatGPT (although I’d heard of it before). For beginners like me it pitched itself as a cloud-based app where I could code, deploy, host and manage an app all in one place - which sounded great to me because I just wanted to get going!
In that respect it’s delivered on its promise, and although I suppose I don’t know what I’m missing elsewhere, that I’ve managed to build, deploy and sell Export My Base from scratch in Replit makes me think I’ve made a good choice!
It’s also worth noting that while I used ChatGPT to help generate the code, while I was working on the app, Replit launched it’s Ghostwriter feature which is basically ChatGPT in Replit, with the added bonus of full visibility of your codebase. It can suggest code, troubleshoot bugs and also answer general questions as you’re building.
What coding languages did you use and why?
ChatGPT suggested Python and Flask and I went with it without doing any research. As I’ve built more and gained familiarity with the language I reckon it’s a good choice for beginners. Python has pretty forgiving syntax and packages that support just about any functionality you might want to add to your apps.
I’ve made a conscience decision, at least for now, to not get distracted trying to learn any other languages. I want to focus on getting good with one. Whether that’s a good choice in the long-run, we’ll see!
How did you sell the app?
I had fun building the app, and while I could see a path to marketing it as a backup tool, it had been a learning experience and I was ready to move onto the next thing.
I thought about just letting it run, but decided on a whim to see if anyone would buy it. Scoring a ‘exit’, however small, seemed like it would be a good confidence boost and a sort of final chapter for my education.
There are quite a few marketplaces for selling apps, but most require some revenue before letting you list. The main exception was Borderline - so in 10 minutes I put up a listing and forgot about it.
Quite by surprise, next day I got emails from two people, one of them seeming pretty serious and keen to move quickly. We agreed a price and and a 50/50 payment plan. The buyer set up a Replit account themselves so transferring the app was a simple change of ownership. Then I just had to transfer the domain and everything was sorted in about a week.
While I can’t say the price, it’s not life changing by any means. However, just being able to say I had an idea for an app, built it and I found someone willing to pay money for it is really fulfilling (especially as someone who dropped out of a computer science degree)
What’s your top tip for non-coders using Replit and ChatGPT?
Just get started. Even if you don’t have any development background, just think about your app in terms of pieces of a puzzle (an input form, something happening to that data, an output etc), and ask ChatGPT - or Replit’s Ghostwriter - how you’d go about making that happen with code.
It won’t work at first, and you’ll get errors, but go ahead and feed those back into ChatGPT and it’ll help you fix them. With persistence you’ll eventually get something that works.
Bonus points if you try to understand the code as you go - and ChatGPT is there to help with that - as it will make the next projects easier. That’s certainly been true for me.
Where can people find out more about you?
I’m most active on Twitter.