Note: This is not an instruction manual or tutorial. These are simply the assignments I gave to my students, presented exactly as they received them. The sparse nature is intentional—learning to ask the right questions of AI is the core skill of vibecoding.

The beauty of vibecoding is that you don't need step-by-step guides to do anything. Claude and ChatGPT can spontaneously generate step-by-step guides for any problem. All you have to do is tell it what you're trying to do, and Claude and ChatGPT will tell you exactly how. This is exactly how I learned how to vibecode. I am a philosophy major, and no one else taught me. If I can do it, so can you. Although we are using AI to build our apps, all the words written on this page were written by me. I have written them for someone with no coding experience. I myself have not taken a computer science course.


The assignments I gave Mattias and Michelle to master vibecoding fundamentals were exactly as follows. You'll notice they are sparse. This is because the real skill you're mastering when vibecoding is how to ask questions. I hope to prove to you that if you can imagine something and ask the right question, AI will find a way to make it real. Bonam fortunam.

Assignment 1: Build an IOS to-do list app using XCode, Claude Code, and Google Firebase. Use Firebase to add a Google Sign-In feature. Download Claude Code and use XCode + Native Swift to build the app.

Assignment 2: Build any kind of website using a GitHub repository, GitHub desktop, and Claude Code. (Some examples of a simple website: coin flipper, calculator)

These instructions are plenty to get you started, but I'm guessing that most people are going to be unsatisfied with how little instructions I'm providing, so I'll provide a few pointers.

The first thing to clarify is why I chose these two assignments. A to-do list app is an ideal first assignment because you'll learn the difference between frontend and backend. Frontend is the user's interface and experience (UI and UX). Backend is everything working behind the scenes—functionality and data management. Your IOS to-do list app will have a Swift frontend and a Google Firebase backend.

Different interfaces on different platforms are going to be built on different coding languages. All IOS apps are built using the coding language Swift, which was developed by Apple to create a cohesive look between apps. Websites are built on HTML. The frontend of websites is typically built with CSS, but you can also use ReactNative (on both websites and apps) for a more custom look. If you're trying to maintain a uniform look between app and website experiences, ReactNative is the way to go.

XCode

IOS apps are built in XCode, which serves as both a coding station and "bundler" (i.e. packages the app for the AppStore). There are many different coding platforms, but XCode is the only one that can publish apps to the AppStore.

Since we are vibecoding, we'll be using Claude Code to write code, but we still build and run the app through XCode. A crucial feature of XCode is its "console", which is where a list of messages show up to help with debugging. When you troubleshoot, you can copy and paste the console messages and upload them to Claude Code. You can also upload screenshots.

Claude Code

Claude Code is the ultimate AI coding tool. It lives inside your Terminal, so it can touch all the files on your entire computer if you give it permission to. This makes it really powerful but also a little scary. To give Claude free reign over your computer and make it the most powerful, you can run a special command: claude --dangerously-skip-permissions. I use it, but you may not want to.

Google Firebase

All apps require data management. For cross-device syncing, data needs to be saved to the Cloud. We will be using Google Firebase as our Cloud storage. Google Firebase stores a series of "indexes", which are essentially spreadsheets of information that can be accessed from multiple devices.

GitHub

GitHub is a platform where developers store and share code online. Think of it like Google Drive for programmers—you can save your projects, track changes over time, collaborate with others, and publish websites (GitHub Pages). I'd say GitHub is the trickiest to learn among all of these platforms, but it is indispensable for coding.

If you're a solo developer, you will not need to worry about some of GitHub's more advanced features, but if you would like to collaborate with others, ask Claude or Chat how to properly set up branches in a repository. Branches ensure that you do not step on the toes of your colleagues when you're simultaneously working on the same project.


Few things to note with Claude code:

  • To navigate to a specific folder on your computer, you type "cd + space" and then drag the folder into the terminal text field. This will "tether" Terminal to that folder. Otherwise it doesn't know where to look. I tend to do this before launching Claude Code.
  • The command "/init" will generate a claude.md file. This will serve as the "DNA file" for your project. This is how Claude can navigate files without rereading all of them every time. I ask Claude code to update the md file periodically so that it can remember milestones. I do this especially after I've solved a difficult problem and want it to remember the solution.
  • The command "shift + tab" will switch between compose and plan mode. Before doing a big change, it's good to switch to plan mode so you can review Claude's plan before it executes.
  • Ask Claude code to commit to Git, which will serve as a revision history for your app. This is like Google Doc's revision history, where you can restore old versions.
  • You can ask Claude to add a "canvas preview" in XCode, which should open up a side by side preview so you don't have to build the app every time you wanna see a change.
  • You can upload screenshots as well as website links to Claude code.

Overview Tutorials: