<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Muhammad Najam Ul Hassan</title>
    <description>The latest articles on DEV Community by Muhammad Najam Ul Hassan (@itsnajam).</description>
    <link>https://dev.to/itsnajam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4218176%2Fa6d327bc-91d0-47f4-88cb-c0f5dd759b26.jpg</url>
      <title>DEV Community: Muhammad Najam Ul Hassan</title>
      <link>https://dev.to/itsnajam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itsnajam"/>
    <language>en</language>
    <item>
      <title>What it actually costs to build an app, and how to compare two quotes</title>
      <dc:creator>Muhammad Najam Ul Hassan</dc:creator>
      <pubDate>Sat, 31 Oct 2026 09:00:47 +0000</pubDate>
      <link>https://dev.to/itsnajam/what-it-actually-costs-to-build-an-app-and-how-to-compare-two-quotes-3bfk</link>
      <guid>https://dev.to/itsnajam/what-it-actually-costs-to-build-an-app-and-how-to-compare-two-quotes-3bfk</guid>
      <description>&lt;p&gt;Nobody can price an app from one sentence. Here is what the price is actually made of, and how to get a quote you can compare against another one.&lt;/p&gt;

&lt;p&gt;Short answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The number comes from screens, sign-in, payments, admin screens and integrations, not from the idea.&lt;/li&gt;
&lt;li&gt;Small jobs start at $50. A full product is quoted as one fixed price after a free call.&lt;/li&gt;
&lt;li&gt;Store accounts, hosting and any AI bill are running costs, separate from the build.&lt;/li&gt;
&lt;li&gt;The cheapest quote usually leaves something out that you pay to add back later.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why do two developers quote different numbers?
&lt;/h2&gt;

&lt;p&gt;Because they are not quoting the same thing. One is quoting the app you described, and the other is quoting the app you will want in six months: the admin screen, the refunds, the offline mode, the second language.&lt;br&gt;
There is no honest way to compare two quotes until you can see what each one includes. That is why I write the plan down before the price, so you can put my list next to anyone else's.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually moves the price?
&lt;/h2&gt;

&lt;p&gt;These are the things I count when I quote. Each one is a real piece of work, and each one is also something you can choose to leave out of the first version.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many screens there are, and how different they are from each other.&lt;/li&gt;
&lt;li&gt;Whether people sign in, and whether there are different kinds of people with different views.&lt;/li&gt;
&lt;li&gt;Whether money moves: cards, subscriptions, refunds, payouts, receipts.&lt;/li&gt;
&lt;li&gt;How much admin sits behind it. Someone has to add the products, approve the jobs and fix the mistakes.&lt;/li&gt;
&lt;li&gt;What it has to talk to: your shop platform, your accounts package, a spreadsheet, a supplier feed.&lt;/li&gt;
&lt;li&gt;Content. Writing, photography and prices take somebody's time, usually yours.&lt;/li&gt;
&lt;li&gt;The stores. Apple and Google both have accounts, rules and a submission process.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Does AI make an app cheaper?
&lt;/h2&gt;

&lt;p&gt;It makes the typing faster, not the deciding cheaper. Screens and plumbing take less time. The plan, your data, payments, admin screens and store rules are the same work.&lt;br&gt;
I wrote a separate guide on what an app built with AI costs, including the model bill that arrives after launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  What costs do people forget?
&lt;/h2&gt;

&lt;p&gt;The build is the number everyone asks about, and it is not the only one. These keep running after launch.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;When you pay it&lt;/th&gt;
&lt;th&gt;Who it goes to&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Apple developer account&lt;/td&gt;
&lt;td&gt;A yearly fee, before the app can go live&lt;/td&gt;
&lt;td&gt;Apple&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Play developer account&lt;/td&gt;
&lt;td&gt;A one-off registration fee&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Domain name&lt;/td&gt;
&lt;td&gt;Yearly&lt;/td&gt;
&lt;td&gt;Your registrar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting and database&lt;/td&gt;
&lt;td&gt;Monthly, usually small at first&lt;/td&gt;
&lt;td&gt;The host or platform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payment processing&lt;/td&gt;
&lt;td&gt;A percentage of each payment&lt;/td&gt;
&lt;td&gt;The payment provider&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI model calls, if the product uses them&lt;/td&gt;
&lt;td&gt;Monthly, based on volume&lt;/td&gt;
&lt;td&gt;The model provider&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Looking after it&lt;/td&gt;
&lt;td&gt;Monthly, if you want an engineer on call&lt;/td&gt;
&lt;td&gt;Me, on a support plan&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How much does it cost to hire an app developer?
&lt;/h2&gt;

&lt;p&gt;There is no single number, which is why quotes for the same idea range from a few hundred dollars to tens of thousands. The useful question is not the hourly rate, it is what the quote includes and who carries the risk when the estimate is wrong.&lt;br&gt;
Hourly works when the work is genuinely unknown, like a rescue where nobody knows what is broken until the code is read. It punishes you when the scope is clear, because every change reopens the bill. A fixed price works when the plan is written down, because the number stays still unless the work changes.&lt;br&gt;
Offshore teams are often cheaper per hour and cost more in the end when the time zone, the language and the handover add management you did not budget for. Local developers cost more per hour and can be faster to reach. Either way, what matters is a written plan and one person accountable for the result.&lt;br&gt;
My fixed price includes the plan, the build, testing of the main flows, the store submission when there is an app, and the fix-it promise if what I deliver does not do what the plan says. Small jobs start at $50. The Apple and Google developer accounts and any hosting or AI bills are separate running costs you own.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I quote
&lt;/h2&gt;

&lt;p&gt;A free first call, then a written plan that says what I will build and what it will not do, then one fixed price. The price does not move unless the work does, and if what I deliver does not do what the plan says, I fix it at no extra cost.&lt;br&gt;
Small jobs start at $50: a fix, a screen, a small automation. If the honest answer is that you do not need software at all, I will say that on the call instead of quoting you.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to get a quote you can compare
&lt;/h2&gt;

&lt;p&gt;Send the same short brief to everyone you ask. The more specific it is, the more the quotes mean.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who uses it, and what each kind of user needs to do.&lt;/li&gt;
&lt;li&gt;The screens you can already picture, even roughly.&lt;/li&gt;
&lt;li&gt;Whether money moves, and who receives it.&lt;/li&gt;
&lt;li&gt;Anything it has to connect to that already exists.&lt;/li&gt;
&lt;li&gt;Your deadline, and what happens if it slips.&lt;/li&gt;
&lt;li&gt;Who looks after it after launch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Price the screens, the sign-in, the money and the admin, not the idea.&lt;/li&gt;
&lt;li&gt;Compare what is included before you compare numbers.&lt;/li&gt;
&lt;li&gt;Budget for running costs from the day it goes live.&lt;/li&gt;
&lt;li&gt;Get the plan in writing, so the price means something.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q: Can you give me a price over email?&lt;br&gt;
A: I can give you a small-job price, because those start at $50. For anything bigger I need to understand it first, and I would rather be accurate than fast. The first call is free and usually settles it.&lt;/p&gt;

&lt;p&gt;Q: Do you charge by the hour?&lt;br&gt;
A: No. You get one fixed price for the work in the plan. Hourly billing puts the risk of my mistakes on you, and that is the wrong way round.&lt;/p&gt;

&lt;p&gt;Q: Is it cheaper to start with a website?&lt;br&gt;
A: Often yes. A website can be found on Google and does not need two store accounts, so for one shop or one trade it is usually the sensible first step. I will tell you if that is the case for you.&lt;/p&gt;

&lt;p&gt;Q: What if the price changes halfway through?&lt;br&gt;
A: Only if the work changes. If you add something that was not in the plan, I will tell you what it costs before I build it, and you decide.&lt;/p&gt;

&lt;p&gt;Q: Why do agencies quote more than you do?&lt;br&gt;
A: An agency has more people to pay and more coordination, so the same work carries more overhead. That is not a comment on their quality, it is a different shape of business. With me you get one person who does the work and answers you directly.&lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apple Developer Program: &lt;a href="https://developer.apple.com/programs/" rel="noopener noreferrer"&gt;https://developer.apple.com/programs/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google Play Console registration: &lt;a href="https://support.google.com/googleplay/android-developer/answer/6112435" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/answer/6112435&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Stripe pricing: &lt;a href="https://stripe.com/pricing" rel="noopener noreferrer"&gt;https://stripe.com/pricing&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;This is a republished version of a guide from my own site: &lt;a href="https://najam.dev/guides/what-an-app-costs/" rel="noopener noreferrer"&gt;https://najam.dev/guides/what-an-app-costs/&lt;/a&gt;. If you want a straight answer about your own build, the contact details are on &lt;a href="https://najam.dev" rel="noopener noreferrer"&gt;https://najam.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>n8n vs Make vs Zapier: pick by what you are actually automating</title>
      <dc:creator>Muhammad Najam Ul Hassan</dc:creator>
      <pubDate>Sat, 31 Oct 2026 03:18:55 +0000</pubDate>
      <link>https://dev.to/itsnajam/n8n-vs-make-vs-zapier-pick-by-what-you-are-actually-automating-2653</link>
      <guid>https://dev.to/itsnajam/n8n-vs-make-vs-zapier-pick-by-what-you-are-actually-automating-2653</guid>
      <description>&lt;p&gt;All three connect your tools without writing software. They differ in where they run, how they charge and how far they go before you hit a wall.&lt;/p&gt;

&lt;p&gt;Short answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zapier is the quickest to start and the most expensive at volume.&lt;/li&gt;
&lt;li&gt;Make is the best visual builder for branching and reshaping data.&lt;/li&gt;
&lt;li&gt;n8n can run on your own server, so there is no per-run fee and no limit on code steps.&lt;/li&gt;
&lt;li&gt;If the automation is the product, none of the three is the right tool.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The short answer
&lt;/h2&gt;

&lt;p&gt;For a small business that wants something running this week, Zapier or Make. For an automation that runs thousands of times a day, or that needs a real code step in the middle, n8n. The tool is rarely the reason an automation fails; an unclear rule is.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pick Zapier if you want it working today, the flow is simple and the volume is low.&lt;/li&gt;
&lt;li&gt;Pick Make if the flow branches and the data needs reshaping, and someone will look at it again.&lt;/li&gt;
&lt;li&gt;Pick n8n if the volume is high, you need a real code step, or you would rather host it yourself.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How do they compare?
&lt;/h2&gt;

&lt;p&gt;This is the comparison I run through with a client before choosing.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What matters&lt;/th&gt;
&lt;th&gt;n8n&lt;/th&gt;
&lt;th&gt;Make&lt;/th&gt;
&lt;th&gt;Zapier&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Where it runs&lt;/td&gt;
&lt;td&gt;Their cloud, or your own server&lt;/td&gt;
&lt;td&gt;Their cloud&lt;/td&gt;
&lt;td&gt;Their cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How you pay&lt;/td&gt;
&lt;td&gt;By workflow executions on their cloud, nothing extra if you host it&lt;/td&gt;
&lt;td&gt;Per operation, including steps inside a scenario&lt;/td&gt;
&lt;td&gt;Per task, per run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How many apps it connects&lt;/td&gt;
&lt;td&gt;Fewer, plus anything with an API&lt;/td&gt;
&lt;td&gt;A large library&lt;/td&gt;
&lt;td&gt;The largest library&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code in the middle&lt;/td&gt;
&lt;td&gt;A full code node, no limits&lt;/td&gt;
&lt;td&gt;Limited scripting&lt;/td&gt;
&lt;td&gt;A code step with limits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Branching and reshaping data&lt;/td&gt;
&lt;td&gt;Good, and readable once you know it&lt;/td&gt;
&lt;td&gt;The best of the three&lt;/td&gt;
&lt;td&gt;Simple cases only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Who can maintain it&lt;/td&gt;
&lt;td&gt;Someone technical&lt;/td&gt;
&lt;td&gt;Someone patient&lt;/td&gt;
&lt;td&gt;Almost anyone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Moving away later&lt;/td&gt;
&lt;td&gt;Workflows are files you keep&lt;/td&gt;
&lt;td&gt;Scenarios can be exported&lt;/td&gt;
&lt;td&gt;Setups live inside Zapier&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where does each one hurt?
&lt;/h2&gt;

&lt;p&gt;Every tool has the same complaint from the same kind of user. Knowing it in advance saves you the migration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zapier: the bill grows faster than the business, and multi-step logic gets awkward.&lt;/li&gt;
&lt;li&gt;Make: the visual map becomes hard to read once a scenario has forty modules, and operations are easy to spend without noticing.&lt;/li&gt;
&lt;li&gt;n8n: someone has to look after it, especially if you host it yourself, and non-technical colleagues will not edit it happily.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where does AI fit in?
&lt;/h2&gt;

&lt;p&gt;All three can call a model, and that is where most of my recent work has been. The useful pattern is not a chatbot: it is a narrow job, like sorting an enquiry, summarising a document or drafting a reply for a person to approve.&lt;br&gt;
I keep the model step inside written limits: what it may decide, what it may never send without a human, and a log of what it was given and what it returned. That is what makes an AI step survivable in a real business.&lt;/p&gt;

&lt;h2&gt;
  
  
  When none of them is the right tool
&lt;/h2&gt;

&lt;p&gt;An automation tool is for moving data between things that already exist. It is the wrong choice when the automation is the product, when the logic is genuinely complex, or when the volume makes a per-run fee silly.&lt;br&gt;
At that point the honest option is a small piece of software with a database, which is also easier to test and cheaper to run. I would rather tell you that on the first call than build something you outgrow in three months.&lt;/p&gt;

&lt;p&gt;Takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start with the rule you want automated, not with the tool.&lt;/li&gt;
&lt;li&gt;Count the runs before you pick, because that is what the bill follows.&lt;/li&gt;
&lt;li&gt;Put AI steps behind written limits and a human approval.&lt;/li&gt;
&lt;li&gt;If the automation is the product, build software instead.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q: Which one do you use most?&lt;br&gt;
A: All three, depending on the job. For a small business that wants to edit things itself, usually Make or Zapier. For volume or anything with a real code step, n8n.&lt;/p&gt;

&lt;p&gt;Q: Can you take over an automation someone else built?&lt;br&gt;
A: Yes. I read it, work out what it does and what breaks when it fails quietly, then tell you whether to tidy it or rebuild it.&lt;/p&gt;

&lt;p&gt;Q: What if the app I use has no integration?&lt;br&gt;
A: Then it probably has an API, and if it does not, there is usually another way in: an export, a webhook, or reading what the app already sends by email.&lt;/p&gt;

&lt;p&gt;Q: Do I own the automation you build?&lt;br&gt;
A: Yes. It is built in an account in your name, so you keep it whether or not I stay on. That is one reason I avoid setups you cannot leave.&lt;/p&gt;

&lt;p&gt;Q: How much does an automation cost to run?&lt;br&gt;
A: The tool's own fee plus any model calls. I work both out from published prices and your volume before I build, so the monthly number is not a surprise.&lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;n8n documentation: &lt;a href="https://docs.n8n.io/" rel="noopener noreferrer"&gt;https://docs.n8n.io/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;n8n pricing: &lt;a href="https://n8n.io/pricing/" rel="noopener noreferrer"&gt;https://n8n.io/pricing/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Make help centre: &lt;a href="https://help.make.com/" rel="noopener noreferrer"&gt;https://help.make.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Zapier pricing: &lt;a href="https://zapier.com/pricing" rel="noopener noreferrer"&gt;https://zapier.com/pricing&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;This is a republished version of a guide from my own site: &lt;a href="https://najam.dev/guides/n8n-vs-make-vs-zapier/" rel="noopener noreferrer"&gt;https://najam.dev/guides/n8n-vs-make-vs-zapier/&lt;/a&gt;. I build these automations for small teams and founders, so if you want a second opinion on which tool fits your case, the contact details are on &lt;a href="https://najam.dev" rel="noopener noreferrer"&gt;https://najam.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>n8nbrightdatachallenge</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I take vibe-coded demos to production. Here is what actually breaks.</title>
      <dc:creator>Muhammad Najam Ul Hassan</dc:creator>
      <pubDate>Sat, 31 Oct 2026 03:15:28 +0000</pubDate>
      <link>https://dev.to/itsnajam/i-take-vibe-coded-demos-to-production-here-is-what-actually-breaks-10bd</link>
      <guid>https://dev.to/itsnajam/i-take-vibe-coded-demos-to-production-here-is-what-actually-breaks-10bd</guid>
      <description>&lt;p&gt;AI can take an idea to a working demo in days. Getting it ready for real payments, real data and the app stores is a different job, and it starts with reading the code.&lt;/p&gt;

&lt;p&gt;Short answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A demo answers whether the idea works. Production answers whether it can hold real users, real money and real data.&lt;/li&gt;
&lt;li&gt;AI tools are confident in the places where a mistake costs the most: permissions, payments, error handling and data access.&lt;/li&gt;
&lt;li&gt;Cleanup is usually cheaper than a rebuild when the data model and the main flows are sound.&lt;/li&gt;
&lt;li&gt;The first step is a code read: a written verdict on what is there, what is missing and which route costs less.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is vibe coding cleanup?
&lt;/h2&gt;

&lt;p&gt;Vibe coding is building software by describing what you want to an AI tool and accepting what it writes. It is genuinely fast at reaching a working screen, which is why so many ideas now get their first version this way.&lt;br&gt;
Cleanup is the engineering pass between that demo and a product people can pay for. Someone who did not write the code reads all of it, tests the flows that carry money and data, and fixes the places where it would fail under real use.&lt;br&gt;
It is not a rewrite by default. Most cleanup keeps the screens and the decisions that already work and repairs the parts a demo never had to prove.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the signs an AI-built app needs cleanup?
&lt;/h2&gt;

&lt;p&gt;An AI-built app can look finished from the outside. These are the signs I look for when someone sends me one to inspect.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nobody can explain what the database tables are for, or the same fact is stored in two of them.&lt;/li&gt;
&lt;li&gt;Sign-in was added last, so some private screens can still be opened without it.&lt;/li&gt;
&lt;li&gt;Keys or passwords sit in the browser code where any visitor can read them.&lt;/li&gt;
&lt;li&gt;One failed payment or a dropped connection leaves a blank screen.&lt;/li&gt;
&lt;li&gt;There are no tests, so nobody can change a screen without guessing what else breaks.&lt;/li&gt;
&lt;li&gt;The same rule is written in three places and the three versions disagree.&lt;/li&gt;
&lt;li&gt;Nobody has loaded it with more than a handful of records.&lt;/li&gt;
&lt;li&gt;It has never been through store approval, or it was rejected and nobody knows why.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What does cleanup involve?
&lt;/h2&gt;

&lt;p&gt;The work follows whatever the code read turns up, in the order that removes the most risk first. In most projects it lands in the same few areas.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;What gets checked&lt;/th&gt;
&lt;th&gt;What usually changes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;Tables, relationships, duplicates and missing rules&lt;/td&gt;
&lt;td&gt;A structure and migrations that match how the app actually works&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;Sign-in on every private screen, and what each user can see&lt;/td&gt;
&lt;td&gt;Permission checks on the server, not just hidden buttons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Secrets&lt;/td&gt;
&lt;td&gt;Keys in the browser, in the repository and in the logs&lt;/td&gt;
&lt;td&gt;Keys moved to the server and replaced&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payments&lt;/td&gt;
&lt;td&gt;Failure, refund, retry and a double tap on Pay&lt;/td&gt;
&lt;td&gt;One payment path with states that can be tested&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Errors&lt;/td&gt;
&lt;td&gt;What a user sees when a request fails&lt;/td&gt;
&lt;td&gt;A message and a retry instead of a blank screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tests&lt;/td&gt;
&lt;td&gt;Which flows are covered and what breaks on change&lt;/td&gt;
&lt;td&gt;Tests on the flows that carry money and data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;First load, long lists and a weak connection&lt;/td&gt;
&lt;td&gt;Pagination, caching and lighter screens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stores&lt;/td&gt;
&lt;td&gt;Privacy, permissions and store rules&lt;/td&gt;
&lt;td&gt;The settings and disclosures Apple and Google require&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Cleanup or rebuild: which is cheaper?
&lt;/h2&gt;

&lt;p&gt;A rebuild is not automatically cleaner. Starting again throws away the screens that work and every decision already tested with users, and it can repeat the same mistakes if the plan does not change.&lt;br&gt;
Rebuild when the data model is wrong at the root, when the tool cannot give you usable code, or when every screen depends on every other one and no part has ever been tested. Clean up when the main flows work with real data and the problems are concentrated in a few areas.&lt;br&gt;
A code read decides it. I read the code, test the main flows and write a verdict that prices both routes, whether or not you hire me for the work.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What the read finds&lt;/th&gt;
&lt;th&gt;Cleanup&lt;/th&gt;
&lt;th&gt;Rebuild&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Main flows work with real data&lt;/td&gt;
&lt;td&gt;Usually the cheaper route&lt;/td&gt;
&lt;td&gt;Rarely worth starting over&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The tool cannot export usable code&lt;/td&gt;
&lt;td&gt;Not possible&lt;/td&gt;
&lt;td&gt;Rebuild in code you own&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The same fact is stored in three tables&lt;/td&gt;
&lt;td&gt;Possible, but expensive&lt;/td&gt;
&lt;td&gt;Often cheaper over time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The problems are access, keys and payment states&lt;/td&gt;
&lt;td&gt;This is cleanup work&lt;/td&gt;
&lt;td&gt;A rebuild repeats them unless the plan changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What does vibe coding cleanup cost?
&lt;/h2&gt;

&lt;p&gt;Cleanup is quoted as one fixed price after a code read, because the number follows what is actually in the repository rather than what the demo shows. Small jobs start at $50 for a single fix or a look at one screen.&lt;br&gt;
A cleanup that touches payments, permissions and tests is a build-sized job. It is still usually less than a rebuild, and you keep the parts that already work. The code read is the cheapest way to find out which route you are on, so ask for it before agreeing to any number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can you work with apps built in Lovable, Bolt, Base44 or Replit?
&lt;/h2&gt;

&lt;p&gt;Yes. What the tool exported matters more than which tool it was. If it gives you a code repository, the cleanup happens in that code and nothing has to be thrown away first.&lt;br&gt;
If it only gives you a hosted app with no usable export, the first job is getting the data out and deciding whether the screens are worth rebuilding. Either way, you end up owning the code, the data and the accounts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should I prepare before a code read?
&lt;/h2&gt;

&lt;p&gt;The read goes faster when I can see the app as a user sees it and reach the code in the same session.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A link to the live app, and a test login for each kind of user.&lt;/li&gt;
&lt;li&gt;Access to the code repository, or an export from the tool that built it.&lt;/li&gt;
&lt;li&gt;A short list of what worries you most, even if it is only a feeling.&lt;/li&gt;
&lt;li&gt;The flow that makes money, described in a sentence, so I test that one first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A working demo is the start of the engineering, not the end of it.&lt;/li&gt;
&lt;li&gt;AI writes plausible code. Permissions, payments and failure states still need a person to check them.&lt;/li&gt;
&lt;li&gt;Cleanup beats a rebuild when the data model and the main flows are sound.&lt;/li&gt;
&lt;li&gt;Get a written code read before you agree to a cleanup price or a rebuild.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q: What is vibe coding cleanup?&lt;br&gt;
A: It is the engineering work that turns an AI-built demo into something safe to charge money for: reading the code, fixing access and payment failures, adding tests and preparing the app for the stores. Most of the time it keeps the screens that already work.&lt;/p&gt;

&lt;p&gt;Q: How do I know if my AI-built app is safe to launch?&lt;br&gt;
A: Try it the way a stranger would. Sign out and open a private screen, pay with a test card and make the payment fail, drop the connection halfway through a form. If any of those breaks the app or shows data it should not, it is not ready.&lt;/p&gt;

&lt;p&gt;Q: Can you clean up an app built with Lovable, Bolt, Base44 or Replit?&lt;br&gt;
A: Yes. If the tool exported a code repository, the work happens in that code. If it only gave you a hosted app, the first job is getting the data out and deciding whether the screens are worth rebuilding.&lt;/p&gt;

&lt;p&gt;Q: Will cleanup break the features that already work?&lt;br&gt;
A: It should not, and that is why tests come early. Each feature that stays gets a test before it is touched, so a change that breaks something is caught before your users see it.&lt;/p&gt;

&lt;p&gt;Q: How long does a cleanup take?&lt;br&gt;
A: Days for a small app with one broken area, weeks when access, payments and tests all need work. The code read gives you a date and a fixed price before the work starts.&lt;/p&gt;

&lt;p&gt;Q: Should I rebuild instead of cleaning up?&lt;br&gt;
A: Only when the data model is wrong at the root, the tool cannot export usable code, or nothing has ever been tested. A rebuild costs more and takes longer, so it should be the answer the code gives, not the safe default.&lt;/p&gt;

&lt;p&gt;Q: Will I lose users or data during a cleanup?&lt;br&gt;
A: No. The database stays in place, and any change to its structure is planned and run against a copy first. Your users keep using the app while the work happens.&lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Submitting an app to the App Store: &lt;a href="https://developer.apple.com/app-store/submitting/" rel="noopener noreferrer"&gt;https://developer.apple.com/app-store/submitting/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google Play Developer Policy: &lt;a href="https://play.google.com/about/developer-content-policy/" rel="noopener noreferrer"&gt;https://play.google.com/about/developer-content-policy/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OWASP Top 10: &lt;a href="https://owasp.org/www-project-top-ten/" rel="noopener noreferrer"&gt;https://owasp.org/www-project-top-ten/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Stripe security documentation: &lt;a href="https://docs.stripe.com/security" rel="noopener noreferrer"&gt;https://docs.stripe.com/security&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;




&lt;p&gt;This is a republished version of a guide I wrote for my own site, and the original lives at &lt;a href="https://najam.dev/guides/vibe-coding-cleanup/" rel="noopener noreferrer"&gt;https://najam.dev/guides/vibe-coding-cleanup/&lt;/a&gt;. If you have an AI-built app and are not sure whether it can take payments or pass store review, the fastest way to find out is a code read. My contact details are on &lt;a href="https://najam.dev" rel="noopener noreferrer"&gt;https://najam.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
