Good Vibes Only - The tools are ready, are you?
Last week, I attended an Agentic AI hackathon. The homework for the event included setting up and running “Roo Code”, a module you can add to a development environment to act as an almost entirely autonomous coding agent. It was *almost* as simple as giving the instruction to “build a website that does x” and then sit back and watch the tool build documentation, code and deploy the site, launch it via a browser and test the functionality. All for a few dollars spent on the API connection to the various language models used to help out. Truly astonishing stuff and another step on the technological journey towards independence and accessibility.
Not that all applications should be built, or that *anybody* should be using these tools to build anything that comes to mind. Just like traditional software development the question should first be “what is the problem?” and then looking at the technical options for solving the problem in the best way [be that the quickest / most comprehensive / etc] rather than the question “how can we use this new shiny thing?”. The *best way* is often subjective and something individuals and businesses need to consider when approaching solution design.
Back to vibing though. Much like the “social media manager” being a laughable position in business when it started to emerge, those who “got it” were able to use this new outlet for establishing / expanding their brand, engaging with new audiences and getting their messaging out quicker and more effectively than the competition. We have seen the same emerge with “prompt engineer” in recent times, and earlier this year “Vibe Coding”.
Vibe coding is essentially asking an LLM to give you the code to build something by simply describing what it should do, rather than inputting any line of code. This opens up software development to literally anyone with an idea and the knowledge of how it might be built. Importantly, and as I mentioned before, not all applications should be built and not just “anybody” should be building these things. There are scalability and security concerns to be considered when putting together software, especially if that system is integrating into commercial applications. Right, disclaimer out of the way, what can vibe coding do for you?
Build an app, it’s as easy as 1-2-3, A-B-C, or asking Chat-G-P-T?
Why?
As I mentioned in the last blog, I have been creating stories with my daughter using Chat GPT to bring to life “Connie the Great Warrior Girl” and her home “Rainbow Ridge”. To bring the joy of personalised stories to other families and inspire other kids just as Connie had been, I added a “Multiverse Stories” page to my site where I would take some form inputs and build a story to then share. This process was pretty time consuming and not the best user experience, so I thought what better way to make this accessible than via a self-service app?
What?
Importantly – as previous – I had the question “what is the problem?” answered – the problem was there is no easy way for a user to generate a story in a readable format. So with this challenge to solve I then needed to also identify what the solution would be made up of and how it would work, before asking ChatGPT to help.
How?
A major part of making a success of your first Vibe Coding adventure is to plan and prepare what you will be building in a logical way. You need to identify each part of the application and how it will work so that the instructions you give to the LLM are specific and actionable. It’s best to ask questions to the system if you are unsure of how certain things might work so you have everything clear before you start asking for code.
I have been working with the OpenAI set of tools for some time now and as both the story generation and the images would be coming from Chat GPT and DALL-E it made sense that I would connect into the OpenAI API to call the chat functionality for text and DALL-E for images.
I also knew I wanted an input form for the user to provide an image or description for the “hero”, along with the likes / interests and a subject or premise for the story. Along with the input there would need to be the screen where the story could be read and I also wanted to be able to save a story or “add to library” and a corresponding library area to open up saved stories. Lastly I wanted to be able to login with an account so the stories were saved against the user so logging back in could show those previously saved stories.
Prepping your environment
So I had the basic skeleton of what I wanted. Next up was addressing the practical elements. I would be building an iOS app, so for that I would need my Mac with Xcode [Apple’s development environment]. For releasing to the app store [which I haven’t done as the app uses my OpenAI API which charges for use] an Apple developer account is also needed and you need to setup the account in Xcode to sync it with your new app. Sounds a bit complicated, but if you are starting out on your first project you can also simply ask ChatGPT for the “step by step process for setting up an Apple developer account and project in Xcode so you can push to the App Store”. Much like the preparation of what we want the app to do, we need to prep the environment and hardware we are working on to make this a success.
Machine and environment all set? Good, next we need to create a project and the first file[s] that we will be coding. Again for this you can ask ChatGPT for the steps needed to create a project. Either way, with project created and first file open you can then start with the vibes! Two options here – manually copy-pasting code from your chat to the development environment or automatically updating - if you are creating an iOS app you will already be on a Mac with Xcode so you should also download the ChatGPT app for Mac. There is an app-level integration which allows conversations with ChatGPT within the MacOS app to connect directly to Xcode and actually write the code in the files, rather than copy/pasting from the chat window back and forth. While not quite the fully autonomous experience of a “Cursor” or “Roo Code” it is a massive jump from having to copy from the chat window and pasting back and forth. With ChatGPT able to look directly at files that are open in Xcode it can advise on issues and add functionality without you having to play middle-man. This will no doubt become even more integrated as the roll out of OpenAI Codex moves from specialist tool to mass-adoption, but for now it’s still decent functionality.
The Power of Prompting
Now it’s finally time for the coding part of the exercise. And by coding, I mean of course “prompting”. You need to be very specific, very clear and very concise about what you want. I have always found it best to outline the exact aim of the app, along with the technologies you foresee being used before then asking for a plan for implementing it and then asking for a file-by-file or step-by-step approach where a single file of code is entered / shared by ChatGPT and that file is completed before moving to the next.
After a bit of back and forth, or clicking “yes” / “auto edit” you should hopefully be in a position where you can run the app on your machine using the emulator that comes with Xcode, or even better, if you plug in your iPhone you can run straight to that [a few developer options required to set this up, and again you can simply have ChatGPT take you through these steps].
As you run the app you will begin to move into the testing and feedback section of software development. You will naturally notice things don’t run exactly as you had envisioned, or maybe they are laid out in a format you don’t think works, or the styling is a bit off from your expectations. It’s important to note that this is not a problem, just shows that if you don’t provide the information you won’t see it in the output. Expect to have a few “back and forth” sessions at this stage, it’s a learning curve and you will find the more you refine this stage the better your initial prompts will be and the less time spent fine tuning the output at the end!
From here you can continue playing, create your next app or even launch it to the app store for listing. If you do want to list the app you’ll need an app icon [something you can have ChatGPT provide based on your description] and a name for the app as it will appear on the app store. There is also - naturally - another set of steps that will be needed, for which GPT can assist if required and Apple to have final sign-off for apps being approved.
The more you work on something the better you get at it so more practice at building these things means getting mentally aligned with the “right way” of working so you spend less time on the fixes and more time on the ideas that deserve to be built.
And that hopefully underlines the importance of the problem in all this. Find the problem first - not your solution, identify your “What?” and then think about whether it is something that could be solved by software, maybe an app. If you can describe the solution off the back of this exercise in enough detail and cover off the logic of how it would be put together who knows, you could have the next Flappy Bird on your hands without typing a single line of code!
Thinking of building something or looking for some help? Drop me a line, I would love to see what others are experimenting with.
For now though, here’s the “Storyverse”.