How to build an app with AI

This guide walks you through building an app with an AI assistant, from a one-paragraph idea to a published app, then through selling it and improving it from what users tell you. It works with any capable AI, including ChatGPT, Claude and Gemini. The method is the same whichever you use; what changes is how much you check the answers.

Reading time: 35 min 16 steps No coding experience required Updated August 2026

What you will build

By the end you will have a working app that runs on a phone or in a browser, a way to store its data, a place where it is published, a price and a listing, your first users, and a routine for improving it from their feedback. The example used throughout is a simple habit tracker, but the steps apply to any app of similar size: a booking tool, a calculator for your trade, a checklist app, a small game.

Expect the first working version to take a few evenings. Publishing and polishing takes longer than the code does.

Note

AI writes the code. You still make the decisions, run the app, test it and publish it. Do not skip the testing steps; they are where most first apps fail.

Before you begin

You need the following. All of it is free to start.

RequirementWhy
An AI assistantChatGPT, Claude, Gemini, or a workspace that gives you several of them. A paid tier helps because you will have long conversations with a lot of code in them.
A computerMac, Windows or Linux. You will run the app on it before it runs anywhere else.
A code editorVisual Studio Code is free and is what most AI-generated instructions assume.
Node.jsRuns JavaScript on your computer. Most app frameworks need it. Install the LTS version from nodejs.org.
Git and a GitHub accountSaves versions of your code so a bad change can be undone. Free at github.com.
A phone (optional)To test a mobile app on a real device.
Tip

Create one text file called CONTEXT.md in your project folder before you start. Every decision, every screen and every "we tried X and it did not work" goes in there. You will paste it into new AI conversations so the assistant does not lose track of what you decided. This one file prevents most of the frustration people have with AI coding.

Part 1 · Build
1

Write the brief

10 min

Describe the app in one paragraph, in plain language. Do not think about technology yet. Answer four questions: who is it for, what problem does it solve, what is the one thing it must do, and what does the person see first when they open it.

Example brief
Habit Streaks is for people who want to keep one or two daily habits going.
The problem: existing habit apps have too many features and lose your streak
unfairly when you travel across time zones. The one thing it must do: let me
tick off a habit for today and show my current streak. The first screen is a
list of my habits with a tick button next to each one.

Save this in CONTEXT.md. Everything that follows is built from it.

2

Choose the platform

15 min

This is the first decision that is hard to undo. For a first app, build a web app unless you have a specific reason to go native.

OptionBest forTrade-offsTypical framework
Web appAlmost every first app. Tools, dashboards, trackers, calculators.Fastest to build and publish. No store review. Can be added to a phone home screen. Limited access to phone hardware.React with Vite, or Next.js
Mobile app (iOS and Android)Apps that need notifications, camera, offline use, or must be in the app stores.Store review, developer accounts (Apple charges a yearly fee), more setup. One codebase can serve both platforms.Expo (React Native), or Flutter
Browser extensionSmall tools that act on web pages you visit.Narrow but quick to build. Published through browser stores.Plain JavaScript

Ask the AI to argue for and against each option for your brief, then decide. Write the decision and the reason in CONTEXT.md.

Prompt
Here is my app brief: [paste brief]. Should the first version be a web app
or a native mobile app? Argue both sides for my specific case, then recommend
one and name the framework you would use. Assume I have no coding experience.
Tip

If you have access to more than one AI, ask two of them this question. When they recommend different things, the reasons they give are usually the real trade-off for your app.

3

Turn the brief into a spec

30 min

A spec is a short document that lists what the app does precisely enough to build it. Ask the AI to write it from your brief, then correct it. It should contain:

  • A list of screens, and what is on each one
  • What data the app stores (for the habit tracker: habits, and which days each was completed)
  • What happens on each button
  • What is deliberately not in version one
  • Every assumption the AI made
Prompt
Turn this brief into a one-page spec for version one: list every screen and
what is on it, the data the app stores, what each button does, and what is
out of scope. At the end, list every assumption you made so I can correct them.
Keep version one as small as possible. Brief: [paste brief]

Read the assumptions carefully. This is where the AI decides things you did not say (for example, that the app needs user accounts, or that streaks reset at midnight UTC). Correct anything wrong, ask for a revised spec, and save the final version in CONTEXT.md.

Warning

Do not proceed with a spec you have not read. Everything built in the next steps follows it exactly, including its mistakes.

4

Set up your tools

30 min

Install Node.js, Git and Visual Studio Code if you have not already. Then open a terminal (on Mac: the Terminal app; on Windows: PowerShell) and check they work:

Terminal
node --version
npm --version
git --version

Each command should print a version number. If one prints an error, paste the exact error into the AI and ask what to do; installation problems are the one area where AI answers are almost always right.

Create a folder for the app and turn it into a Git repository:

Terminal
mkdir habit-streaks
cd habit-streaks
git init
Note

From now on, every time something works, save a version: git add . then git commit -m "describe what works". When the AI later breaks something, you can go back.

5

Generate the skeleton

20 min

Create the empty app using the framework's own starter command, not code the AI types out. Starters are maintained and tested; AI-typed project files often have outdated versions.

Web app (React with Vite):

Terminal
npm create vite@latest . -- --template react
npm install
npm run dev

Mobile app (Expo):

Terminal
npx create-expo-app@latest .
npx expo start

Open the address the terminal prints (for a web app, usually http://localhost:5173). You should see the framework's placeholder page. For Expo, install the Expo Go app on your phone and scan the QR code.

Now give the AI the layout of the project so it knows what exists. Ask it to explain the files:

Prompt
I created a new [Vite React / Expo] project. Here is the file list: [paste the
output of `ls` or the folder tree]. Explain in plain language what each file
is for and which ones I will edit. Then tell me which file the first screen
should go in.

Commit: git add . && git commit -m "empty app runs".

6

Build screen by screen

Several sessions

This is the loop you will repeat for every screen and every feature. Doing it in small pieces is what makes AI coding work; asking for the whole app at once is what makes it fail.

  1. Describe one screen. Paste the spec section for that screen, and the current contents of the file it goes in.
  2. Ask for the code and an explanation. "Write the code for this screen, then explain what each part does in two or three sentences."
  3. Put the code in the file and run it. Look at it in the browser or on the phone. Click everything.
  4. Report back exactly what happened. If there is an error, paste it word for word. If something looks wrong, describe what you see and what you expected.
  5. Repeat until the screen works, then commit.
Prompt
Build the habit list screen from this spec: [paste spec section]. It goes in
src/App.jsx, which currently contains: [paste file]. Use plain, simple code
with no extra libraries. After the code, explain what each part does.
Tip

Ask for one change at a time and say "only change what I asked for". AI assistants tend to rewrite or "improve" code you did not mention, which is how working features break.

Start with the screen the person sees first. For the habit tracker: the list of habits with a tick button. Then add habits. Then the streak count. Each is one pass through the loop.

7

Add data storage

1 to 2 sessions

Your app needs to remember things between opens. Use the simplest option that works, in this order:

OptionUse whenLimits
On-device storage (localStorage on the web, AsyncStorage in Expo)Data belongs to one person on one device. Most first apps.Lost if the app is deleted. Not shared between devices.
Hosted database (Supabase, Firebase)Data must survive reinstalls, sync across devices, or be shared between users.Needs an account and a few settings. Free tiers are generous.

Ask the AI to design the data first, then to add the storage code:

Prompt
Based on the spec, what data does this app store, and in what shape? Show it
as a simple example. Then add code to save it to [localStorage / Supabase] and
load it when the app opens. Explain how I can check the saved data myself.
Warning

Dates and time zones cause more bugs in small apps than anything else. Ask specifically: "How does this handle a user in a different time zone, and what happens at midnight?" For the habit tracker, this is the difference between a fair streak and an angry review.

8

Add sign-in and payments (only if you need them)

1 to 2 sessions

Many first apps do not need either. If yours does, use a hosted service and never handle passwords or card numbers in your own code.

  • Sign-in: Supabase Auth, Firebase Auth or Clerk. All handle passwords, email links and "sign in with Google/Apple" for you.
  • Payments: Stripe for web apps. For mobile apps sold through the stores, Apple and Google require their own in-app purchase systems for digital goods; RevenueCat makes that manageable.
Prompt
Add sign-in with [Supabase Auth] to this app. Show me exactly which settings to
create in the Supabase dashboard, then the code. Do not store passwords
anywhere in my code. Explain what happens if someone is not signed in.
Warning

Secret keys (API keys, database passwords) must never be inside the app's code or in Git. Ask the AI: "Which of these values are secrets, and where should they live instead?" The usual answer is an .env file that is listed in .gitignore.

9

Test and review

1 session, then ongoing

Code that runs is not code that works. Before publishing, do three kinds of testing.

Use it like a stranger would

Open the app fresh, with no data. Add nothing and look at every screen: are the empty states sensible? Then add too much: 50 habits, a name with emoji, a very long name. Turn off the internet. Rotate the phone. Close and reopen. Write down everything odd.

Have the code reviewed by an AI, ideally a different one

An assistant reviewing its own code tends to approve it. If you can, paste the code into a different AI and ask for problems. If you only have one, start a fresh conversation so it has no memory of writing it.

Prompt
Review this code as a senior developer who did not write it. List bugs,
security problems and things that will break for real users, ordered by
severity. For each, show the exact fix. Be critical; do not praise the code.
[paste file]

Check the usual suspects

  • Time zones and midnight (see step 7)
  • What happens when storage is empty, full or corrupted
  • Double taps: pressing a button twice quickly
  • Data from the previous version of the app after an update
  • On mobile: older phones, small screens, dark mode, notifications denied

Fix what you found using the loop in step 6. Commit.

10

Publish

Web: 1 hour · Stores: days

Web app

Push your code to GitHub, then connect the repository to a hosting service. Vercel, Netlify and Cloudflare Pages all do this for free and rebuild the site every time you push a change.

Terminal
git remote add origin https://github.com/YOUR-NAME/habit-streaks.git
git push -u origin main

Then, in the hosting service's dashboard: New project, import from GitHub, choose the repository, deploy. You get a public address within minutes. Add your own domain later if you want one.

Mobile app

With Expo, the EAS Build service produces the files the stores need. You will also need an Apple Developer account (paid yearly) and a Google Play developer account (one-time fee). Store review takes from a day to a week and commonly rejects apps for missing privacy policies, crashes on launch, and screenshots that do not match the app.

Publishing checklist

Ask the AI to produce this for your specific app and platform, then work through it:

  • App name, icon, and screenshots at the sizes the store requires
  • A privacy policy page (required by both stores and by most hosting terms if you collect any data)
  • Error reporting, so you learn about crashes before users tell you (Sentry has a free tier)
  • Basic analytics, so you know whether anyone is using it
  • A support email address
  • For stores: the review notes, including a test account if sign-in is required
Part 2 · Sell
11

Decide how it makes money

1 hour

Decide this before you write a single line of marketing, because the price shapes the message. There are four common models for a small app:

ModelWorks well whenWatch out for
Free, then one paid upgradeConsumer apps where people need to feel the value first (trackers, utilities).The upgrade must be something people want after they are attached, not a nag on day one.
SubscriptionThe app does ongoing work or stores growing data (business tools, sync, reports).Cancellations. People must see value every month, not once.
One-time purchaseSimple tools with no running cost to you.No recurring income; every month starts at zero.
FreeCommunity apps, portfolio pieces, apps you build for your own business.Hosting and your time still cost something.

Ask the AI to argue the options for your specific app. This is another place where a second AI's opinion is worth having, because pricing advice from a single assistant tends to be generic.

Prompt
Here is my app and who it is for: [paste brief]. Compare free-with-upgrade,
subscription and one-time purchase for this app. For each: who pays, what
they get, a realistic price, and the biggest risk. Then recommend one and
tell me what the paid part should be. Be specific to this app, not generic.
Note

Your first price is a guess. Pick something reasonable, write it in CONTEXT.md, and plan to revisit it after the first fifty users. Changing a price is easy; not launching because you cannot decide is the expensive mistake.

12

Write the listing and the landing page

2 hours

Whether your app lives in a store or on the web, people decide in a few seconds from a title, a sentence and a screenshot. AI is very good at drafting these, and very bad at knowing your user. You supply the user; it supplies the words.

Start with a positioning sentence

One sentence in the form: [App] helps [who] do [what] without [the annoying thing]. For the example: "Habit Streaks helps busy people keep one or two daily habits without losing their streak to a time-zone glitch." Everything else is built from this.

Prompt
Here is my positioning sentence: [sentence]. Write five alternative versions,
each emphasising a different benefit. Then tell me which one you would put
on a billboard and why. Avoid hype words like "revolutionary" or "seamless".

App store listing

Store listings are searched like a search engine. Ask the AI for the words people would actually type when looking for an app like yours, then use them in the title and the first two lines of the description, where they matter most.

Prompt
Write an App Store and Google Play listing for this app: [positioning
sentence and feature list]. Include: a title under 30 characters, a subtitle,
the first two lines of the description (these are the only ones people see
before tapping "more"), a full description, and 20 search keywords people
would actually type. Plain language, no exclamation marks.

Landing page

A web app needs a landing page; a mobile app benefits from one too, because it is where you send people from social posts and emails. A good first landing page has five parts: headline, one sentence under it, a screenshot or short video, three short benefits, and one button. Ask for exactly that, then have it built with the same screen-by-screen loop from step 6.

Prompt
Write the copy for a one-screen landing page: headline (under 10 words),
one supporting sentence, three benefits of one line each, and the button
text. The reader is [describe your user]. Then write the page as a simple
HTML file I can publish, with the copy in place and a spot for a screenshot.
Tip

Screenshots matter more than words. Ask the AI what five screenshots would convince someone, in which order, and what one-line caption to put on each. Then take those screenshots from your real app.

13

Find the first users

2 to 4 weeks

The first fifty users almost never come from ads. They come from places where your users already talk to each other, and from you personally asking. AI helps you find those places and write the messages; it cannot do the asking for you.

Map where your users are

Prompt
My app is for [describe user]. List 20 specific places online where these
people already gather: subreddits, Facebook groups, Discord servers,
forums, newsletters, YouTube channels, podcasts. For each, say what kind of
post would be welcome there and what would get me banned.

Check each one yourself. Read the rules. Spend a week being useful there before you mention your app. Communities can tell when someone arrives only to promote.

Write the launch messages

You need a handful of pieces: a short post for communities, a launch post for a site like Product Hunt if it fits, a direct message to people you know who match the user, and a one-line reply you can use when someone asks "what do you do?". Ask for all of them at once, in your voice.

Prompt
Here is my positioning sentence and my landing page copy: [paste]. Write:
1) a 120-word community post that leads with the problem, not the app;
2) a Product Hunt style launch description; 3) a personal message to a
friend who fits the user, asking them to try it and tell me honestly what
is wrong with it; 4) a one-line answer to "what are you working on?".
Write the way I write: [paste two or three sentences you wrote yourself].

Ask for feedback, not for praise

Every first user is worth more as a source of feedback than as a download. Ask each one three questions: what did you expect it to do, what confused you, and would you miss it if it disappeared. Put the answers in a file; you will use them in step 15.

Warning

Do not ask the AI to write fake reviews, testimonials or "user stories" for your listing. Stores remove apps for it, and users can tell. Real quotes from real users, with permission, are the only kind worth having.

14

Keep marketing with AI

A few hours a week

Once the first users are in, marketing becomes a routine rather than a launch. AI makes the routine affordable for one person. Pick two of these channels, not all of them.

Articles people search for
Ask the AI for the twenty questions your users type into a search engine that your app answers. Write one useful article a week answering one of them, with the AI drafting and you adding what only you know. Put it on your landing page's domain. This compounds slowly and is the cheapest long-term channel.
Social posts
Give the AI one real thing that happened this week (a user story, a bug you fixed, a number) and ask for three short posts about it in your voice. Post the one you would actually say out loud. Generic AI posts about "productivity tips" get ignored.
Onboarding emails
If people give you an email address, send three short emails in the first week: how to get the first win, the one feature people miss, and a question asking what they think. Ask the AI to draft the sequence from your spec, then cut every sentence that sounds like marketing.
Small paid tests
Only after the free channels show that people who arrive actually stay. Ask the AI for five ad variations built on your positioning sentence, run them with a small budget, and let the numbers pick the winner.
Prompt
My app: [positioning sentence]. List 20 questions my users would type into
a search engine that my app helps answer. Rank them by how likely someone
asking is to want the app. For the top one, outline a 700-word article that
answers it properly, and tell me where I should add my own experience.

Read the numbers with AI

Once a month, export whatever your analytics and store dashboards give you (installs, sign-ups, people still active after a week, cancellations) and paste the table in. Ask what changed, what it suggests, and what one thing to try next. An AI is a patient analyst for numbers you do not have time to study.

Tip

Keep a MARKETING.md next to CONTEXT.md: your positioning sentence, your user description, the channels you chose, and what worked. Paste it into every marketing conversation so the AI writes for your user, not for a generic one.

Part 3 · Improve
15

Turn feedback into the next version

Weekly routine

Once real people use the app, the work changes from building to listening. Most apps improve or die on this step. The routine below takes an hour a week and works with any AI.

  1. Collect everything in one place. Store reviews, support emails, community replies, crash reports from your error tool, and the three-question answers from step 13. One text file or spreadsheet, one row per item, with the date.
  2. Let the AI group it. Paste the week's items and ask for groups by underlying cause. Ten complaints often turn out to be three problems.
  3. Rank by how many people and how badly. A crash that hits everyone beats a feature request from one person, however loudly they asked.
  4. Fix the top item with the loop from step 6. Point the AI at the likely place in the code, get the fix, run it, test the exact scenario the user described.
  5. Ship a small version and tell the people who asked. A one-line reply, "this is fixed in 1.1, thank you for reporting it", turns a complainer into a fan more reliably than any feature.
Prompt
Here are this week's user reviews, support emails and error reports:
[paste]. Group them by underlying cause and tell me which ones are the same
problem. Rank the groups by how many users are affected and how severe it
is. For the top three, point to the likely place in my code (here is the
file list: [paste]) and propose the fix. Then draft release notes for 1.1
in plain language, and a short, polite reply to each person who reported
something, saying what changed.

Separate bugs from wishes

Bugs get fixed. Feature requests get written down and counted. Ask the AI to keep a running list of requests with a tally, and only build a feature when several unrelated people ask for the same thing. This is how you avoid building an app that does everything for nobody.

Watch what people do, not only what they say

If your analytics show that people open the app twice and never return, that is feedback too, even though nobody wrote it down. Paste the numbers in with the reviews and ask the AI what the two together suggest. The usual answer is that the first-run experience is confusing, which no one bothers to report; they just leave.

Note

Update CONTEXT.md after every release: what changed, why, and what was decided against. The next conversation should start from the app as it is now, not as it was in the original spec.

16

Handle support with AI

Minutes a day

Support is where small apps quietly lose users: a question goes unanswered for a week and the person is gone. AI lets one person answer quickly and kindly without it taking over the day.

Build a short help document

Ask the AI to turn your spec and your feedback file into a plain-language FAQ: the ten questions people actually ask, with clear answers. Put it on your landing page and in the app. Half of support requests stop arriving once this exists.

Prompt
From my spec and this list of user questions [paste], write a help page with
the ten most common questions and short, friendly answers. Where an answer
depends on something I have not told you, say so instead of guessing.

Draft replies, then send them yourself

Paste each support email into the AI along with the help document and ask for a reply in your voice. Read it, fix anything wrong, and send it from your own address. Keep the human in the loop: users forgive slow, they do not forgive wrong.

Prompt
Here is a support email: [paste]. Here is my help document: [paste]. Draft a
reply that answers the question directly in the first sentence, is warm
without being chatty, and admits it if this is a bug on my side. If the
answer is not in the help document, tell me what I need to find out first.

Feed support back into the product

Every support question is a design flaw or a missing sentence in the app. Add each one to the feedback file from step 15. When the same question arrives three times, the fix belongs in the app, not in another reply.

Tip

If you have more than one AI available, use one to draft the reply and another to check it: "Is anything in this reply wrong, unclear, or likely to annoy the person?" Support replies are short and high-stakes; a second reading is cheap.

Working with AI effectively

These habits matter more than which assistant you use.

Give context every time
Paste CONTEXT.md and the relevant file at the start of a conversation. The assistant knows nothing you have not shown it in this conversation. Some workspaces let you attach files and instructions once so every conversation starts from them; that saves a great deal of pasting.
Paste errors exactly
Never paraphrase an error message. Copy the whole thing, including the file names and line numbers.
Ask for the smallest change
"Fix only this" produces better results than "make it better".
Ask why, not just what
"Explain this in two sentences" after every piece of code. Over a few weeks you will understand your own app, which matters when something breaks at a bad time.
Get a second opinion on anything important
Platform choice, data design, sign-in, payments, and any code the AI calls "done". A second model, or at least a fresh conversation, catches what the first one was confident about and wrong.
Commit whenever something works
Git is your undo button. Use it before every risky change.

Troubleshooting

The code the AI gave me does not run
Paste the exact error back, together with the file it mentions. Ask: "What is the cause, and what is the smallest fix?" If two fixes in a row do not work, undo to your last commit and describe the feature again from scratch in a new conversation.
The AI forgot what we decided
Conversations have limits and the assistant only knows what is in the current one. Start a new conversation and paste CONTEXT.md. Keep that file current.
It keeps changing things I did not ask about
Add "Only change the part I asked about; return the full file with everything else identical" to your prompt. Compare the result with your committed version before accepting it.
It says the code is fine but the app is wrong
The assistant cannot run your app. Describe what you see on screen, step by step, and what you expected instead. If it still insists, ask a different AI.
It suggests a library or service I have never heard of
Ask whether the same thing can be done without it. For a first app, fewer dependencies means fewer things that break.
Store review rejected my app
Paste the rejection text into the AI and ask for the specific change and the reply to the reviewer. Most rejections are about privacy policies, missing test accounts, or crashes on first launch.

Frequently asked questions

Can I build an app with AI without knowing how to code?
Yes, for apps of the size described here. You will not need to write code, but you will read some, run commands, and make decisions. Expect to learn a little as you go; that is a feature, not a cost.
Which AI is best for building apps?
ChatGPT, Claude and Gemini can all do this. Their strengths shift with each release. The safer approach is to use more than one: build with one, review with another. What matters most is the process in this guide, not the assistant.
How long does it take?
A first working version: a few evenings. A published web app: about a week. A mobile app in the stores: two to four weeks, mostly waiting on review and setup. Finding the first fifty users usually takes longer than building the app did.
What does it cost?
The tools in this guide are free to start. Paid AI tiers help with long conversations. Hosting for a small web app is free. Apple's developer account is a yearly fee; Google's is one-off.
Should I use a no-code app builder instead?
No-code builders are faster for standard apps that fit their templates, and you are limited to what the builder allows, on their pricing. The approach here takes longer to learn and gives you code you own and can take anywhere.
Who owns the app?
You do. Code produced by AI assistants for you is yours to use; check your assistant's terms if you are unsure. Keep your code in your own GitHub account and your data with providers you control.

Ready to start?

Open a workspace, paste your brief from step 1, and begin. The same workspace carries you through building, selling and improving the app.

Start now

Continue learning

Open MultipleChat