<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>YouCanBuildTech articles</title>
  <subtitle>Practical explanations, comparisons, build notes, and evidence for people building with modern technology.</subtitle>
  <link href="https://youcanbuildtech.com/feed.xml" rel="self" />
  <link href="https://youcanbuildtech.com/" />
  <updated>2026-09-06T00:00:00Z</updated>
  <id>https://youcanbuildtech.com/</id>
  <author>
    <name>YouCanBuildTech</name>
  </author>
  <entry>
    <title>What Is Debugging in the AI Era? | YCBT</title>
    <link href="https://youcanbuildtech.com/ai-development/what-is-debugging/" />
    <updated>2026-09-06T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/ai-development/what-is-debugging/</id>
    <content type="html">&lt;p&gt;You might have heard a lot about &lt;strong&gt;debugging&lt;/strong&gt; and that it is one of those things you absolutely need to learn if you want to become a coder — or even a vibe coder.&lt;/p&gt;
&lt;p&gt;Traditionally, that was true. Debugging was one of the fundamental skills of software development. You wrote code, something went wrong, and then you had to investigate your own code to figure out what was causing the problem.&lt;/p&gt;
&lt;p&gt;But here is the thing: in the modern era, debugging is becoming something conceptually different.&lt;/p&gt;
&lt;p&gt;When you work with a capable &lt;a href=&quot;https://youcanbuildtech.com/ai-coding/what-is-ai-coding/&quot;&gt;coding agent&lt;/a&gt; such as Codex, Claude, or another agent that understands your whole project, a huge amount of traditional code-level debugging can be performed by the agent itself. It can search the project, inspect functions, follow data, read errors, and find where something went wrong without you manually tracing every line.&lt;/p&gt;
&lt;p&gt;In our experience, the overwhelming majority of that lower-level debugging work has effectively moved to the coding agent.&lt;/p&gt;
&lt;p&gt;That does not mean debugging has disappeared. The human part has moved upward. Increasingly, your job is to &lt;strong&gt;recognize exactly what is wrong, describe exactly what happened, and explain exactly what you wanted instead&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And sometimes the bug is not something you wrote wrong in the code.&lt;/p&gt;
&lt;p&gt;Sometimes it is something you &lt;strong&gt;said wrong&lt;/strong&gt;.&lt;/p&gt;
&lt;nav class=&quot;article-toc&quot; aria-labelledby=&quot;article-toc-title&quot;&gt;
  &lt;p class=&quot;article-toc__title&quot; id=&quot;article-toc-title&quot;&gt;On this page&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#what-is-debugging&quot;&gt;What Is Debugging?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#what-do-bugs-actually-look-like&quot;&gt;What Do Bugs Actually Look Like?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#the-traditional-debugging-vocabulary&quot;&gt;The Traditional Debugging Vocabulary&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#the-good-bug-and-the-bad-bug&quot;&gt;The Good Bug and the Bad Bug&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#coding-agents-changed-the-investigation&quot;&gt;Coding Agents Changed the Investigation&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#modern-debugging-is-learning-to-say-specifically-what-is-wrong&quot;&gt;Modern Debugging Is Learning to Say Specifically What Is Wrong&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#what-happened-and-what-should-have-happened&quot;&gt;What Happened, and What Should Have Happened?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#sometimes-the-bug-is-something-you-said-wrong&quot;&gt;Sometimes the Bug Is Something You Said Wrong&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#the-better-the-plan-the-fewer-real-bugs-we-see&quot;&gt;The Better the Plan, the Fewer Real Bugs We See&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#modern-debugging-requires-software-literacy&quot;&gt;Modern Debugging Requires Software Literacy&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#what-should-a-vibe-coder-actually-learn&quot;&gt;What Should a Vibe Coder Actually Learn?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/#debugging-has-moved-up-a-level&quot;&gt;Debugging Has Moved Up a Level&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
&lt;/nav&gt;
&lt;h2 id=&quot;what-is-debugging&quot;&gt;What Is Debugging?&lt;/h2&gt;
&lt;p&gt;At its simplest, &lt;strong&gt;debugging is the process of finding out why software is not behaving the way it should and correcting the problem&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A bug can be obvious. A page might not load. An application might crash. A button might do nothing when you click it.&lt;/p&gt;
&lt;p&gt;But bugs can also be subtle. The application may run perfectly while producing the wrong result. A setting might appear to save but disappear after restarting the app. A user interface might look correct on desktop but overlap on mobile. Everything might work until one particular sequence suddenly breaks something.&lt;/p&gt;
&lt;p&gt;Traditionally, figuring out why could mean examining source code, reproducing the problem, studying console errors and logs, reading a stack trace, inspecting variables, &lt;a href=&quot;https://developer.chrome.com/docs/devtools/javascript/breakpoints&quot;&gt;setting breakpoints&lt;/a&gt;, stepping through functions, and eventually finding the &lt;strong&gt;root cause&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Those concepts still exist. It is worth knowing what they mean even if you never become an expert in manually using all of them.&lt;/p&gt;
&lt;h2 id=&quot;what-do-bugs-actually-look-like&quot;&gt;What Do Bugs Actually Look Like?&lt;/h2&gt;
&lt;p&gt;For someone who has never programmed before, the word &lt;em&gt;bug&lt;/em&gt; can sound more mysterious than it really is.&lt;/p&gt;
&lt;p&gt;Usually, the programmer first notices that &lt;strong&gt;something is wrong&lt;/strong&gt;. The page does not appear. The answer is incorrect. A button suddenly stops working. Everything was fine until the user did one particular thing.&lt;/p&gt;
&lt;p&gt;Here are three traditional examples.&lt;/p&gt;
&lt;section class=&quot;article-example&quot; data-example=&quot;Example 1&quot; aria-labelledby=&quot;bug-example-1-the-page-does-not-load&quot;&gt;
&lt;h2 id=&quot;bug-example-1-the-page-does-not-load&quot;&gt;Bug Example 1: The Page Does Not Load&lt;/h2&gt;
&lt;p&gt;Imagine a website that loads a user&#39;s account information from a server. The programmer refreshes the page expecting to see a profile, but the profile area is blank.&lt;/p&gt;
&lt;p&gt;The browser console shows:&lt;/p&gt;
&lt;pre class=&quot;console-output&quot; tabindex=&quot;0&quot; aria-label=&quot;Console output&quot;&gt;&lt;code&gt;Uncaught TypeError: Cannot read properties of undefined (reading &#39;name&#39;)
    at renderProfile (profile.js:14)
    at loadProfile (profile.js:8)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The relevant JavaScript might look like this:&lt;/p&gt;
&lt;pre class=&quot;source-code&quot; tabindex=&quot;0&quot; aria-label=&quot;JavaScript source code&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;async function loadProfile(userId) {
    const response = await fetch(`/api/users/${userId}`);
    const data = await response.json();

&lt;span class=&quot;code-line code-line--fault&quot;&gt;    renderProfile(data.user);&lt;/span&gt;
}

function renderProfile(user) {
    const profile = document.querySelector(&quot;#profile&quot;);

    profile.innerHTML = `
        &amp;lt;h2&amp;gt;${user.name}&amp;lt;/h2&amp;gt;
        &amp;lt;p&amp;gt;${user.email}&amp;lt;/p&amp;gt;
    `;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The server actually returned:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
    &amp;quot;name&amp;quot;: &amp;quot;Jordan&amp;quot;,
    &amp;quot;email&amp;quot;: &amp;quot;jordan@example.com&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The faulty line is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;renderProfile(data.user);&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It should have been:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;renderProfile(data);&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The code expects &lt;code&gt;data.user&lt;/code&gt; to exist, but there is no &lt;code&gt;user&lt;/code&gt; object inside the returned data. &lt;code&gt;renderProfile()&lt;/code&gt; receives &lt;code&gt;undefined&lt;/code&gt;, and JavaScript throws an error when it tries to read &lt;code&gt;user.name&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This is classic old-school debugging. The programmer sees the symptom — the profile does not appear — and uses the &lt;strong&gt;console error&lt;/strong&gt; and &lt;strong&gt;stack trace&lt;/strong&gt; as clues until they find the wrong assumption in the code.&lt;/p&gt;
&lt;p&gt;The process starts with a simple question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The page does not load. Why?&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section class=&quot;article-example&quot; data-example=&quot;Example 2&quot; aria-labelledby=&quot;bug-example-2-everything-works-but-the-output-is-wrong&quot;&gt;
&lt;h2 id=&quot;bug-example-2-everything-works-but-the-output-is-wrong&quot;&gt;Bug Example 2: Everything Works, but the Output Is Wrong&lt;/h2&gt;
&lt;p&gt;Not every bug produces an error message.&lt;/p&gt;
&lt;p&gt;Imagine a checkout where a customer buys two products costing $50 each. The cart works, the checkout loads, and there are no red console errors.&lt;/p&gt;
&lt;p&gt;But the page displays:&lt;/p&gt;
&lt;pre class=&quot;console-output&quot; tabindex=&quot;0&quot; aria-label=&quot;Console output&quot;&gt;&lt;code&gt;Order total: $150&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The correct answer should be $100.&lt;/p&gt;
&lt;p&gt;The function might look like this:&lt;/p&gt;
&lt;pre class=&quot;source-code&quot; tabindex=&quot;0&quot; aria-label=&quot;JavaScript source code&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;function calculateOrderTotal(items) {
    let subtotal = 0;

    for (const item of items) {
        subtotal += item.price * item.quantity;
    }

    const shipping = 50;
&lt;span class=&quot;code-line code-line--fault&quot;&gt;    const total = subtotal + shipping;&lt;/span&gt;

    return total;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The faulty logic is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;const total = subtotal + shipping;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For this store, shipping was supposed to be free.&lt;/p&gt;
&lt;p&gt;Nothing about the JavaScript is invalid. The program has not crashed, and there may be no warning at all.&lt;/p&gt;
&lt;p&gt;The computer is doing exactly what the programmer told it to do.&lt;/p&gt;
&lt;p&gt;It was simply told to do the wrong thing.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;logic bug&lt;/strong&gt;. Traditional debugging was never only about red error messages. Programmers also had to recognize when the result itself was wrong.&lt;/p&gt;
&lt;/section&gt;
&lt;section class=&quot;article-example&quot; data-example=&quot;Example 3&quot; aria-labelledby=&quot;bug-example-3-everything-is-fine-until-you-do-this&quot;&gt;
&lt;h2 id=&quot;bug-example-3-everything-is-fine-until-you-do-this&quot;&gt;Bug Example 3: Everything Is Fine... Until You Do This&lt;/h2&gt;
&lt;p&gt;Some bugs are harder because the application appears completely normal most of the time.&lt;/p&gt;
&lt;p&gt;Imagine a business application with a customer record screen. A user opens a customer, changes the information and presses Save. It works.&lt;/p&gt;
&lt;p&gt;Then somebody discovers another sequence: open the customer, make a change, leave without saving, return to the screen, and press Save.&lt;/p&gt;
&lt;p&gt;Now nothing happens.&lt;/p&gt;
&lt;p&gt;The console shows:&lt;/p&gt;
&lt;pre class=&quot;console-output&quot; tabindex=&quot;0&quot; aria-label=&quot;Console output&quot;&gt;&lt;code&gt;TypeError: Cannot set properties of null (setting &#39;name&#39;)
    at saveCustomer (customer.js:31)
    at handleSave (customer.js:42)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The relevant code might look like this:&lt;/p&gt;
&lt;pre class=&quot;source-code&quot; tabindex=&quot;0&quot; aria-label=&quot;JavaScript source code&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;let currentCustomer = null;

function openCustomer(customer) {
    currentCustomer = customer;

    document.querySelector(&quot;#name&quot;).value = customer.name;
    document.querySelector(&quot;#email&quot;).value = customer.email;
}

function leaveCustomerScreen() {
&lt;span class=&quot;code-line code-line--fault&quot;&gt;    currentCustomer = null;&lt;/span&gt;
    showDashboard();
}

function returnToCustomerScreen() {
    showCustomerScreen();
}

function saveCustomer() {
    const name = document.querySelector(&quot;#name&quot;).value;
    const email = document.querySelector(&quot;#email&quot;).value;

&lt;span class=&quot;code-line code-line--fault&quot;&gt;    currentCustomer.name = name;&lt;/span&gt;
&lt;span class=&quot;code-line code-line--fault&quot;&gt;    currentCustomer.email = email;&lt;/span&gt;

    updateCustomer(currentCustomer);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The program finally fails here:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;currentCustomer.name = name;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;currentCustomer.email = email;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But the actual problem began earlier:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;currentCustomer = null;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When the user left the screen, the application cleared the selected customer. When they returned, the screen appeared again, but the customer object behind it was never restored.&lt;/p&gt;
&lt;p&gt;The important discovery is the sequence:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Open customer → leave screen → return → press Save.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Traditionally, a programmer might reproduce those steps, add logging, set a &lt;strong&gt;breakpoint&lt;/strong&gt;, inspect &lt;code&gt;currentCustomer&lt;/code&gt;, and find exactly when it became &lt;code&gt;null&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This is why &lt;strong&gt;reproducing a bug&lt;/strong&gt; has always been such an important debugging skill. “The Save button sometimes doesn&#39;t work” is vague. “It fails after I leave the customer screen, return, and press Save” gives you something concrete to investigate.&lt;/p&gt;
&lt;p&gt;That principle has become even more useful in the AI era.&lt;/p&gt;
&lt;/section&gt;
&lt;h2 id=&quot;the-traditional-debugging-vocabulary&quot;&gt;The Traditional Debugging Vocabulary&lt;/h2&gt;
&lt;p&gt;If you spend time around programmers, you will hear a number of terms associated with debugging.&lt;/p&gt;
&lt;p&gt;A &lt;a href=&quot;https://en.wikipedia.org/wiki/Debugger&quot;&gt;&lt;strong&gt;debugger&lt;/strong&gt;&lt;/a&gt; is a tool that lets a programmer inspect software while it is running. A &lt;strong&gt;breakpoint&lt;/strong&gt; pauses the program at a particular point so you can see what is happening. A &lt;strong&gt;stack trace&lt;/strong&gt; shows the sequence of functions that led to an error. &lt;strong&gt;Logs&lt;/strong&gt; are messages generated by the program, while the &lt;strong&gt;console&lt;/strong&gt; is one of the places developers see those messages, warnings and errors.&lt;/p&gt;
&lt;p&gt;You may also hear about &lt;strong&gt;syntax errors&lt;/strong&gt;, &lt;strong&gt;runtime errors&lt;/strong&gt;, &lt;strong&gt;exceptions&lt;/strong&gt;, &lt;strong&gt;logic bugs&lt;/strong&gt;, &lt;strong&gt;crashes&lt;/strong&gt;, &lt;strong&gt;regressions&lt;/strong&gt;, and &lt;strong&gt;root causes&lt;/strong&gt;. A syntax error means the code cannot be interpreted correctly. A runtime error happens while the software is running. A logic bug produces a valid but incorrect result. A regression happens when a new change breaks something that previously worked.&lt;/p&gt;
&lt;p&gt;You should know that these things exist. But that does not mean you need to spend months mastering all of them before you can build software with AI.&lt;/p&gt;
&lt;h2 id=&quot;debugging-used-to-mean-investigating-the-code-yourself&quot;&gt;Debugging Used to Mean Investigating the Code Yourself&lt;/h2&gt;
&lt;p&gt;Traditional debugging could consume a huge amount of a programmer&#39;s time. Something went wrong, so the developer had to reproduce the error, inspect logs, find the relevant code, add temporary logging, set breakpoints, inspect variables, and gradually narrow down the problem.&lt;/p&gt;
&lt;p&gt;The goal was to move from the visible &lt;strong&gt;symptom&lt;/strong&gt; to the underlying &lt;strong&gt;root cause&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If clicking a button crashed an application, the button itself might be fine. The actual cause could be several functions later, where a missing value causes something else to fail.&lt;/p&gt;
&lt;p&gt;Historically, the programmer had to discover that chain.&lt;/p&gt;
&lt;h2 id=&quot;the-good-bug-and-the-bad-bug&quot;&gt;The Good Bug and the Bad Bug&lt;/h2&gt;
&lt;p&gt;There is something else about traditional debugging that we think has been lost in the AI era.&lt;/p&gt;
&lt;p&gt;When we were programming back in 2013, debugging was often part of &lt;strong&gt;learning the programming language itself&lt;/strong&gt;. You wrote something, it failed, and then you spent twenty minutes, an hour, or sometimes much longer figuring out why.&lt;/p&gt;
&lt;p&gt;Sometimes that was incredibly valuable.&lt;/p&gt;
&lt;p&gt;We could call this &lt;strong&gt;the good bug&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Maybe you misunderstood how a function worked. You did not understand scope. You made the wrong assumption about an object or variable. Eventually you found the problem, fixed it, and understood the language better than you did an hour earlier.&lt;/p&gt;
&lt;p&gt;There was also a genuine dopamine hit when it finally worked. That moment when a program had been broken for an hour and then suddenly did exactly what you wanted was part of programming.&lt;/p&gt;
&lt;p&gt;But there was also &lt;strong&gt;the bad bug&lt;/strong&gt;: forty minutes wasted because of a typo, a missing character, the wrong file path, or some tiny mistake that taught you almost nothing.&lt;/p&gt;
&lt;p&gt;Modern coding agents are very good at removing both.&lt;/p&gt;
&lt;p&gt;That is an enormous productivity improvement, but it changes the learning experience. If Codex finds the wrong variable, fixes the function and verifies the result in seconds, you may never need to understand exactly what went wrong.&lt;/p&gt;
&lt;p&gt;For a vibe coder, that may be completely fine. But AI has started to separate &lt;strong&gt;fixing the bug&lt;/strong&gt; from &lt;strong&gt;learning why the bug existed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you want the learning experience, you may now have to choose it. Ask the agent what caused the problem. Ask why the fix works. Look at the changed code.&lt;/p&gt;
&lt;p&gt;Otherwise, you can simply continue building.&lt;/p&gt;
&lt;h2 id=&quot;coding-agents-changed-the-investigation&quot;&gt;Coding Agents Changed the Investigation&lt;/h2&gt;
&lt;p&gt;A few years ago, AI-assisted coding often meant copying a piece of code into a chat window. If you showed the AI one function, it knew about that function. If the real problem existed somewhere else in a 20,000-line project, you had to figure out what additional context to provide.&lt;/p&gt;
&lt;p&gt;Modern coding agents can work across the project itself. They can search the repository, inspect related files, follow function calls, examine configuration, read console output, trace state, and make coordinated changes across the codebase.&lt;/p&gt;
&lt;p&gt;In our experience, this means that the overwhelming majority of traditional code investigation can now be delegated to the coding agent.&lt;/p&gt;
&lt;p&gt;This is where we think the meaning of debugging begins to change.&lt;/p&gt;
&lt;h2 id=&quot;modern-debugging-is-learning-to-say-specifically-what-is-wrong&quot;&gt;Modern Debugging Is Learning to Say Specifically What Is Wrong&lt;/h2&gt;
&lt;p&gt;If we had to reduce modern debugging to one skill for an AI-assisted builder, it would probably be this:&lt;/p&gt;
&lt;aside class=&quot;key-point&quot;&gt;
&lt;p&gt;&lt;strong&gt;Learn to say specifically what is wrong and specifically what you want.&lt;/strong&gt;&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Telling an agent, “Fix this,” gives it very little useful information. “The menu is broken” is slightly better, but still leaves a lot open to interpretation.&lt;/p&gt;
&lt;p&gt;Compare that with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On mobile, when I open the navigation menu, it covers the page heading. The menu should open beneath the header without overlapping the heading.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That tells the agent where the problem happens, what triggers it, what the result is, and what should happen instead.&lt;/p&gt;
&lt;p&gt;Or:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When I select a new theme, the preview changes correctly. After I refresh the page, it returns to the default theme. I want the selected theme to remain saved.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You may have no idea whether the problem is in frontend state, local storage, an API route, the backend or a database.&lt;/p&gt;
&lt;p&gt;That is fine. The agent can investigate that.&lt;/p&gt;
&lt;p&gt;Your job is increasingly to describe the behavior clearly enough that the agent knows what to investigate.&lt;/p&gt;
&lt;h2 id=&quot;what-happened-and-what-should-have-happened&quot;&gt;What Happened, and What Should Have Happened?&lt;/h2&gt;
&lt;p&gt;A useful modern bug report usually contains four pieces of information: &lt;strong&gt;what you did, what happened, what you expected to happen instead, and where or when the difference appears&lt;/strong&gt;.&lt;/p&gt;
&lt;ol class=&quot;debugging-rule&quot; aria-label=&quot;The four parts of a useful modern bug report&quot;&gt;
  &lt;li&gt;&lt;span&gt;1&lt;/span&gt;What you did&lt;/li&gt;
  &lt;li&gt;&lt;span&gt;2&lt;/span&gt;What happened&lt;/li&gt;
  &lt;li&gt;&lt;span&gt;3&lt;/span&gt;What you expected&lt;/li&gt;
  &lt;li&gt;&lt;span&gt;4&lt;/span&gt;Where or when&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Compare:&lt;/p&gt;
&lt;div class=&quot;instruction-example instruction-example--vague&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;The Save button doesn&#39;t work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;with:&lt;/p&gt;
&lt;div class=&quot;instruction-example instruction-example--useful&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;If I open an existing project, change the title and press Save, it works. If I go to Preview, return to the editor and then press Save, nothing happens. The project should save normally in both cases.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;The second description gives the coding agent a reproducible condition. Once you can describe the problem precisely, the agent can usually take over the technical investigation.&lt;/p&gt;
&lt;h2 id=&quot;narrow-down-when-the-problem-happens&quot;&gt;Narrow Down When the Problem Happens&lt;/h2&gt;
&lt;p&gt;Another useful skill is narrowing the conditions that cause the problem.&lt;/p&gt;
&lt;p&gt;“The app crashes” tells you very little. “The app crashes only when I upload a large image on Android” tells you much more.&lt;/p&gt;
&lt;p&gt;Does it happen only on mobile? Only after restarting? Only for one account? Only after a particular sequence? Does it work in one browser but not another?&lt;/p&gt;
&lt;p&gt;You do not need to know why yet. You are just narrowing the problem.&lt;/p&gt;
&lt;h2 id=&quot;one-of-the-best-questions-what-changed&quot;&gt;One of the Best Questions: What Changed?&lt;/h2&gt;
&lt;p&gt;If something worked before and suddenly stopped working, one of the oldest debugging questions is still one of the best:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What changed?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Maybe you added a feature, changed a setting, updated a package, or changed something that seemed unrelated.&lt;/p&gt;
&lt;p&gt;This is where &lt;a href=&quot;https://youcanbuildtech.com/concepts/what-is-github/&quot;&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;/a&gt; becomes useful. Git keeps a history of changes, and a &lt;strong&gt;diff&lt;/strong&gt; shows what changed between two versions.&lt;/p&gt;
&lt;p&gt;A coding agent can often inspect that history itself:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This worked before the last change. Check what changed and find what caused it to stop working.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That can narrow the investigation very quickly.&lt;/p&gt;
&lt;h2 id=&quot;do-not-guess-the-cause-unless-you-know-it&quot;&gt;Do Not Guess the Cause Unless You Know It&lt;/h2&gt;
&lt;p&gt;Suppose a button does nothing.&lt;/p&gt;
&lt;p&gt;You might tell the agent:&lt;/p&gt;
&lt;div class=&quot;instruction-example instruction-example--vague&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;The event listener is broken. Fix it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;But perhaps the event listener is fine. Another element may be covering the button. The click may work while the server request fails. The server may respond correctly while the screen fails to update.&lt;/p&gt;
&lt;p&gt;By confidently diagnosing the wrong cause, you can point the agent in the wrong direction.&lt;/p&gt;
&lt;p&gt;A better report is:&lt;/p&gt;
&lt;div class=&quot;instruction-example instruction-example--useful&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Clicking the Save button produces no visible result. It worked before the previous change. It should save the project and show the confirmation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Tell the agent what you &lt;strong&gt;know&lt;/strong&gt;. Let it investigate what you do not know.&lt;/p&gt;
&lt;h2 id=&quot;not-every-problem-is-actually-a-bug&quot;&gt;Not Every Problem Is Actually a Bug&lt;/h2&gt;
&lt;p&gt;Sometimes the software is doing exactly what it was told to do.&lt;/p&gt;
&lt;p&gt;The problem is that what it was told to do was wrong.&lt;/p&gt;
&lt;p&gt;Maybe you changed your mind about how a feature should behave. Maybe the plan was unclear. Maybe two parts of the specification contradict each other.&lt;/p&gt;
&lt;p&gt;Before changing code, it can be useful to ask:&lt;/p&gt;
&lt;aside class=&quot;key-point&quot;&gt;
&lt;p&gt;&lt;strong&gt;Is the software broken, or is our expectation wrong?&lt;/strong&gt;&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;A coding agent can correctly implement a bad instruction.&lt;/p&gt;
&lt;p&gt;The code works.&lt;/p&gt;
&lt;p&gt;The idea does not.&lt;/p&gt;
&lt;h2 id=&quot;sometimes-the-code-is-fine&quot;&gt;Sometimes the Code Is Fine&lt;/h2&gt;
&lt;p&gt;A problem can also look like a bug even when the source code itself is fine.&lt;/p&gt;
&lt;p&gt;Something might work on your computer but fail after deployment. It might work on desktop but fail on a phone. A file may be missing from the build. An &lt;strong&gt;environment variable&lt;/strong&gt; might not be set. A dependency might be a different version.&lt;/p&gt;
&lt;p&gt;You may hear these described as &lt;strong&gt;environment&lt;/strong&gt;, &lt;strong&gt;build&lt;/strong&gt;, &lt;strong&gt;configuration&lt;/strong&gt;, &lt;strong&gt;dependency&lt;/strong&gt;, or &lt;strong&gt;deployment&lt;/strong&gt; problems.&lt;/p&gt;
&lt;p&gt;For the AI-assisted builder, the useful observation may simply be:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It works locally, but fails after deployment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It works on desktop, but not in the Android build.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That gives the coding agent somewhere more specific to look.&lt;/p&gt;
&lt;h2 id=&quot;sometimes-the-bug-is-something-you-said-wrong&quot;&gt;Sometimes the Bug Is Something You Said Wrong&lt;/h2&gt;
&lt;p&gt;This is where debugging in the modern era becomes much more interesting.&lt;/p&gt;
&lt;p&gt;When programmers wrote the implementation themselves, a large part of debugging involved finding something they &lt;strong&gt;wrote wrong&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When a coding agent writes the implementation, sometimes the mistake is something you &lt;strong&gt;said wrong&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Maybe you explained a feature badly. Maybe you left something ambiguous. Maybe you described one approach in your project instructions and later asked for another without realizing they conflicted. Maybe your &lt;code&gt;AGENTS.md&lt;/code&gt; file says one system controls something while another instruction says something else should control it.&lt;/p&gt;
&lt;p&gt;The agent may not have misunderstood you. It may have implemented exactly what you asked for.&lt;/p&gt;
&lt;p&gt;The problem is that what you asked for was contradictory, incomplete, or simply different from what you had pictured in your head.&lt;/p&gt;
&lt;p&gt;That turns part of debugging into a &lt;strong&gt;human communication problem&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;debugging-your-instructions&quot;&gt;Debugging Your Instructions&lt;/h2&gt;
&lt;p&gt;When something behaves strangely, one of the questions we increasingly ask is not just, “Which function is wrong?”&lt;/p&gt;
&lt;p&gt;We ask whether the instructions are wrong.&lt;/p&gt;
&lt;p&gt;Did we describe the behavior clearly? Is there an old instruction sitting in &lt;code&gt;AGENTS.md&lt;/code&gt;? Did we tell the agent two different things? Did we explain the normal case but forget an edge case?&lt;/p&gt;
&lt;p&gt;Sometimes changing the code fixes the symptom while changing the specification fixes the real problem.&lt;/p&gt;
&lt;p&gt;That is another kind of debugging:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;debugging the instructions themselves.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;sometimes-you-are-debugging-the-design&quot;&gt;Sometimes You Are Debugging the Design&lt;/h2&gt;
&lt;p&gt;The idea goes even deeper.&lt;/p&gt;
&lt;p&gt;Sometimes the problem is not the syntax, the code or even one bad instruction. Two ideas inside the product simply conflict.&lt;/p&gt;
&lt;p&gt;One system may save changes immediately while another assumes the user must press Save. One screen may treat a setting as belonging to the whole account while another treats it as belonging to one project. The frontend may expect data one way while the backend is designed around another.&lt;/p&gt;
&lt;p&gt;Both systems may work exactly as designed.&lt;/p&gt;
&lt;p&gt;They simply do not work together.&lt;/p&gt;
&lt;p&gt;At that point, debugging starts to become a &lt;strong&gt;design and architecture question&lt;/strong&gt;. You are debugging assumptions, relationships, ownership and behavior.&lt;/p&gt;
&lt;p&gt;The coding agent may be perfectly capable of implementing Approach A and Approach B.&lt;/p&gt;
&lt;p&gt;The problem is that you asked it to implement both.&lt;/p&gt;
&lt;h2 id=&quot;the-better-the-plan-the-fewer-real-bugs-we-see&quot;&gt;The Better the Plan, the Fewer Real Bugs We See&lt;/h2&gt;
&lt;p&gt;This leads to one of our strongest opinions about AI-assisted programming.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In a well-planned project using a good coding agent, genuinely mysterious code-level bugs have become surprisingly rare in our experience.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We do not mean software can never have bugs. Of course it can.&lt;/p&gt;
&lt;p&gt;We mean that the classic picture of programming — constantly fighting broken syntax, mysterious functions and endless crashes — increasingly does not resemble how our better-planned AI projects actually develop.&lt;/p&gt;
&lt;p&gt;Most of the problems we encounter now are understandable. An instruction was unclear. A requirement changed. Two systems had different assumptions. We missed an edge case. Something looked wrong and needed adjusting.&lt;/p&gt;
&lt;p&gt;Those are problems, but they often do not feel like the mysterious bugs people traditionally associate with programming.&lt;/p&gt;
&lt;h2 id=&quot;our-mp3-player-was-a-good-example&quot;&gt;Our MP3 Player Was a Good Example&lt;/h2&gt;
&lt;p&gt;Our &lt;a href=&quot;https://youcanbuildtech.com/build-notes/how-we-built-our-mp3-player-with-ai/&quot;&gt;MP3 player project&lt;/a&gt; is a good example.&lt;/p&gt;
&lt;p&gt;It is not a tiny application. It contains music-library behavior, playback systems, multiple player interfaces, metadata handling, persistent state, visualizers, playlists, favorites, queue behavior, sorting, search and many interconnected features.&lt;/p&gt;
&lt;p&gt;Despite that, the project has been remarkably smooth from a debugging perspective. When something did not behave as intended, the problem was usually understandable and easy to describe.&lt;/p&gt;
&lt;p&gt;We believe a major reason is that we had already spent a lot of time deciding what the MP3 player actually &lt;strong&gt;was&lt;/strong&gt; before asking the coding agent to implement it.&lt;/p&gt;
&lt;p&gt;We had thought through how playback should behave, what should persist, what should not be stored, what different player interfaces could change, what systems should remain shared, and where the boundaries of the product were.&lt;/p&gt;
&lt;p&gt;The code came after the concept.&lt;/p&gt;
&lt;h2 id=&quot;we-have-seen-the-same-thing-beyond-40-000-lines-of-code&quot;&gt;We Have Seen the Same Thing Beyond 40,000 Lines of Code&lt;/h2&gt;
&lt;p&gt;We have seen the same pattern in even larger projects.&lt;/p&gt;
&lt;p&gt;We have worked on SaaS-level software containing more than &lt;strong&gt;40,000 lines of code&lt;/strong&gt; where serious bugs were surprisingly rare. The size of the codebase did not automatically create chaos because the agent had a coherent architecture and a carefully defined concept to work from.&lt;/p&gt;
&lt;p&gt;That experience changed how we think about AI coding.&lt;/p&gt;
&lt;p&gt;Forty thousand lines implementing a coherent system can be easier to work with than five thousand lines implementing a confused one.&lt;/p&gt;
&lt;p&gt;The quality of the concept matters. The architecture matters. The relationships between systems matter.&lt;/p&gt;
&lt;p&gt;And meticulous planning matters.&lt;/p&gt;
&lt;h2 id=&quot;most-bugs-begin-before-the-code&quot;&gt;Most Bugs Begin Before the Code&lt;/h2&gt;
&lt;p&gt;We increasingly think many software problems begin before the faulty code is written.&lt;/p&gt;
&lt;p&gt;They begin when nobody has decided which system controls something, when a feature has only been described superficially, when two parts of the application have overlapping responsibilities, or when the expected result exists in the builder&#39;s head but has never actually been explained.&lt;/p&gt;
&lt;p&gt;Eventually the coding agent reaches that missing decision and has to make a choice.&lt;/p&gt;
&lt;p&gt;Sometimes it makes the choice you wanted. Sometimes it makes another perfectly reasonable choice.&lt;/p&gt;
&lt;p&gt;If you never told it which one was correct, that is not necessarily an AI coding failure.&lt;/p&gt;
&lt;p&gt;It may be a planning failure.&lt;/p&gt;
&lt;h2 id=&quot;why-we-plan-the-whole-concept&quot;&gt;Why We Plan the Whole Concept&lt;/h2&gt;
&lt;p&gt;This is also why our approach differs from some traditional software-development advice.&lt;/p&gt;
&lt;p&gt;We do not automatically believe every application needs to be built as an endless sequence of tiny milestones where the agent only sees the next miniature task.&lt;/p&gt;
&lt;p&gt;Milestones can obviously be useful. But modern coding agents benefit enormously from understanding the &lt;strong&gt;whole concept&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Before building, we prefer to think about what the finished product should be, what its major systems are, how they relate, what should be configurable, what should stay fixed, and what important edge cases exist.&lt;/p&gt;
&lt;p&gt;Once the concept is coherent, we are often comfortable letting the agent implement substantial parts of it relatively quickly.&lt;/p&gt;
&lt;p&gt;The important thing is not making every coding step tiny.&lt;/p&gt;
&lt;aside class=&quot;key-point&quot;&gt;
&lt;p&gt;&lt;strong&gt;The important thing is giving the agent a clear destination.&lt;/strong&gt;&lt;/p&gt;
&lt;/aside&gt;
&lt;h2 id=&quot;planning-files-matter&quot;&gt;Planning Files Matter&lt;/h2&gt;
&lt;p&gt;Files such as &lt;code&gt;AGENTS.md&lt;/code&gt;, architecture documents, feature specifications and project notes can help keep that destination clear.&lt;/p&gt;
&lt;p&gt;A good project instruction file can tell the coding agent how important systems should behave, what should stay consistent, what should not be changed, and what is intentionally outside the scope of the project.&lt;/p&gt;
&lt;p&gt;The goal is not to create thousands of rules. Too many rules can create their own conflicts.&lt;/p&gt;
&lt;p&gt;The goal is clarity.&lt;/p&gt;
&lt;h2 id=&quot;fix-the-problem-not-half-the-project&quot;&gt;Fix the Problem, Not Half the Project&lt;/h2&gt;
&lt;p&gt;Coding agents can change huge amounts of code very quickly.&lt;/p&gt;
&lt;p&gt;That does not mean they should.&lt;/p&gt;
&lt;p&gt;If one button is broken, the entire navigation system probably does not need to be rebuilt.&lt;/p&gt;
&lt;p&gt;A useful instruction can be:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Find the root cause and make the smallest reasonable fix. Do not rewrite unrelated systems unless there is a real reason.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sometimes the investigation really will reveal an architectural problem. But if the problem is small, the fix can usually stay small too.&lt;/p&gt;
&lt;h2 id=&quot;a-fix-can-cause-another-bug&quot;&gt;A Fix Can Cause Another Bug&lt;/h2&gt;
&lt;p&gt;Fixing one problem can also break something that used to work.&lt;/p&gt;
&lt;p&gt;That is called a &lt;strong&gt;regression&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You fix the mobile menu and suddenly the desktop menu breaks. The first bug is gone, but the software is not really fixed.&lt;/p&gt;
&lt;p&gt;This is where testing comes in. A coding agent can rerun the behavior that originally failed, check related features, or run an &lt;strong&gt;automated test&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The basic distinction is enough:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Debugging finds and fixes the problem. Testing checks that the fix really worked.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;modern-debugging-requires-software-literacy&quot;&gt;Modern Debugging Requires Software Literacy&lt;/h2&gt;
&lt;p&gt;If you no longer need to manually trace every function yourself, what should you actually learn?&lt;/p&gt;
&lt;p&gt;We think one of the most important skills is &lt;strong&gt;software literacy&lt;/strong&gt;: understanding what the different parts of software are so you can recognize where a problem appears and communicate it accurately.&lt;/p&gt;
&lt;p&gt;You do not necessarily need to know how to build every component manually.&lt;/p&gt;
&lt;p&gt;But you should know what you are looking at.&lt;/p&gt;
&lt;h2 id=&quot;learn-the-parts-of-a-web-page&quot;&gt;Learn the Parts of a Web Page&lt;/h2&gt;
&lt;p&gt;Take a website.&lt;/p&gt;
&lt;p&gt;You should be able to identify a &lt;strong&gt;heading&lt;/strong&gt;, &lt;strong&gt;paragraph&lt;/strong&gt;, &lt;strong&gt;button&lt;/strong&gt;, &lt;strong&gt;navigation menu&lt;/strong&gt;, &lt;strong&gt;header&lt;/strong&gt;, &lt;strong&gt;footer&lt;/strong&gt;, &lt;strong&gt;image&lt;/strong&gt;, &lt;strong&gt;form&lt;/strong&gt;, &lt;strong&gt;background&lt;/strong&gt;, and &lt;strong&gt;content section&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You should understand that these elements have positions and sizes. They can sit above or beneath other elements, overlap, or be pushed outside the visible screen.&lt;/p&gt;
&lt;p&gt;On the web, you will encounter words such as &lt;strong&gt;CSS&lt;/strong&gt;, &lt;strong&gt;margin&lt;/strong&gt;, &lt;strong&gt;padding&lt;/strong&gt;, &lt;strong&gt;responsive design&lt;/strong&gt;, &lt;strong&gt;viewport&lt;/strong&gt;, and &lt;strong&gt;z-index&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You do not need to memorize every CSS property.&lt;/p&gt;
&lt;p&gt;But this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The mobile navigation is overlapping the heading.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;is much more useful than:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The top looks weird.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Knowing what you are looking at helps you say what is wrong.&lt;/p&gt;
&lt;h2 id=&quot;learn-what-frontend-and-backend-mean&quot;&gt;Learn What Frontend and Backend Mean&lt;/h2&gt;
&lt;p&gt;You should also understand the basic difference between the &lt;strong&gt;frontend&lt;/strong&gt; and the &lt;strong&gt;backend&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The frontend is generally the part the user sees and interacts with: screens, forms, buttons, menus, text and images.&lt;/p&gt;
&lt;p&gt;The backend handles things behind the interface, such as &lt;strong&gt;databases&lt;/strong&gt;, accounts, business logic, storage, &lt;strong&gt;APIs&lt;/strong&gt;, and communication with other services.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;server&lt;/strong&gt; can receive a request from the frontend, get information from a database and send it back.&lt;/p&gt;
&lt;p&gt;If information never appears on the screen, the problem might be in the frontend, the request, the server, or the database.&lt;/p&gt;
&lt;p&gt;You do not need to manually fix all of those layers. You just need to understand that they exist.&lt;/p&gt;
&lt;h2 id=&quot;learn-to-see-an-app-as-parts&quot;&gt;Learn to See an App as Parts&lt;/h2&gt;
&lt;p&gt;The same idea applies to mobile apps, desktop software, games and SaaS products.&lt;/p&gt;
&lt;p&gt;Do not think of everything as one giant object called &lt;em&gt;the app&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Look at the pieces.&lt;/p&gt;
&lt;p&gt;There are screens, buttons, text, images, navigation, data, state, configuration, audio, animations, storage, APIs, databases and other systems depending on what you are building.&lt;/p&gt;
&lt;p&gt;Visually, something can be above another element, underneath it, hidden behind it, clipped by it, or pushed outside the screen.&lt;/p&gt;
&lt;p&gt;Internally, information can also live in different places. A setting might exist only while the app is running, be stored on the device, be saved in a database, or come from a server.&lt;/p&gt;
&lt;p&gt;The more clearly you see these parts, the more clearly you can explain what is wrong.&lt;/p&gt;
&lt;h2 id=&quot;learn-what-state-is&quot;&gt;Learn What State Is&lt;/h2&gt;
&lt;p&gt;One concept you will hear constantly is &lt;strong&gt;state&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;State is basically what the application currently knows.&lt;/p&gt;
&lt;p&gt;Which user is logged in? Which screen is open? Which items are in the cart? Which setting is selected? Has something been saved?&lt;/p&gt;
&lt;p&gt;A lot of strange software behavior turns out to be a state problem.&lt;/p&gt;
&lt;p&gt;You may not know how the state system is programmed, but you can still say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The setting changes correctly, but after restarting the app it returns to the old value.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is enough to give the agent somewhere to start.&lt;/p&gt;
&lt;h2 id=&quot;error-messages-are-still-valuable&quot;&gt;Error Messages Are Still Valuable&lt;/h2&gt;
&lt;p&gt;None of this means you should ignore technical errors.&lt;/p&gt;
&lt;p&gt;If the console shows &lt;code&gt;404 Not Found&lt;/code&gt;, &lt;code&gt;500 Internal Server Error&lt;/code&gt;, &lt;code&gt;TypeError&lt;/code&gt;, &lt;code&gt;ReferenceError&lt;/code&gt;, or another wall of red text, give it to the coding agent.&lt;/p&gt;
&lt;p&gt;You may not understand the stack trace.&lt;/p&gt;
&lt;p&gt;You do not necessarily need to.&lt;/p&gt;
&lt;p&gt;A good beginner rule remains:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If something breaks and red text appears, show the red text to the agent.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-agent-understands-the-code-you-understand-the-result&quot;&gt;The Agent Understands the Code. You Understand the Result.&lt;/h2&gt;
&lt;p&gt;There is an interesting division of labor emerging in AI-assisted software development.&lt;/p&gt;
&lt;p&gt;The coding agent can read thousands of lines of code, search the repository, inspect functions and trace relationships that would take a human a long time to follow manually.&lt;/p&gt;
&lt;p&gt;But the human understands something the agent does not automatically know:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;what you actually wanted the product to be.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You know the button should save. You know the screen should not reset. You know the menu should not cover the heading. You can look at the product and know when the result does not match the idea.&lt;/p&gt;
&lt;p&gt;The agent understands the implementation.&lt;/p&gt;
&lt;p&gt;You understand the intention.&lt;/p&gt;
&lt;p&gt;Modern debugging increasingly happens between those two things.&lt;/p&gt;
&lt;h2 id=&quot;what-should-a-vibe-coder-actually-learn&quot;&gt;What Should a Vibe Coder Actually Learn?&lt;/h2&gt;
&lt;p&gt;We do not think AI means you should learn nothing about software.&lt;/p&gt;
&lt;p&gt;We think the emphasis has changed.&lt;/p&gt;
&lt;p&gt;A modern AI-assisted builder should understand the main parts of an application, basic frontend and backend concepts, servers, databases, APIs, state, interface components, positioning, console output and some basic software architecture.&lt;/p&gt;
&lt;p&gt;You should know what a debugger is. You should know what a breakpoint does. You should broadly understand stack traces, logs, runtime errors, logic bugs and regressions.&lt;/p&gt;
&lt;p&gt;You should learn how to reproduce a problem, narrow it down, ask what changed, provide useful error messages, and explain what happened compared with what should have happened.&lt;/p&gt;
&lt;p&gt;But we do not believe every beginner needs to master manual breakpoint debugging or spend months tracing variables through source code before they can build useful software with a modern coding agent.&lt;/p&gt;
&lt;p&gt;The more important practical skill is learning to &lt;strong&gt;see software clearly&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;debugging-has-moved-up-a-level&quot;&gt;Debugging Has Moved Up a Level&lt;/h2&gt;
&lt;p&gt;Traditional debugging often began with the question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Which line of code did I write wrong?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Modern debugging can begin with a different question:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What exactly is the software doing wrong, and what should it be doing instead?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From there, you might discover a normal programming bug. Or you might discover that your instruction was unclear, two ideas conflict, an edge case was never planned, the environment is different, or the agent implemented exactly what you asked for even though you later realized you asked for the wrong thing.&lt;/p&gt;
&lt;p&gt;That is why, in our opinion, debugging in the modern era is partly technical investigation, partly design, partly architecture, partly communication, and partly planning.&lt;/p&gt;
&lt;p&gt;A capable coding agent can search through a huge codebase much faster than we can. What it needs from us is clarity about the intended result.&lt;/p&gt;
&lt;p&gt;So instead of saying:&lt;/p&gt;
&lt;div class=&quot;instruction-example instruction-example--vague&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Fix this.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Explain what you did, what happened, when it happened and what should have happened instead. Include the error when there is one. Explain how to reproduce the problem. Mention whether it worked before. Name the part of the interface or system if you know what it is.&lt;/p&gt;
&lt;p&gt;Then let the coding agent investigate the implementation.&lt;/p&gt;
&lt;aside class=&quot;key-point&quot;&gt;
&lt;p&gt;&lt;strong&gt;You no longer always need to find the broken line of code yourself. You need to clearly identify the broken behavior.&lt;/strong&gt;&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;That, more than anything else, is what we think debugging is becoming in the modern era.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>How We Built Our MP3 Player With AI | YCBT</title>
    <link href="https://youcanbuildtech.com/build-notes/how-we-built-our-mp3-player-with-ai/" />
    <updated>2026-09-05T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/build-notes/how-we-built-our-mp3-player-with-ai/</id>
    <content type="html">&lt;p&gt;Here at You Can Build Tech, we practice what we preach and build real projects on a weekly basis.&lt;/p&gt;
&lt;p&gt;One of the things we want to show is that there is a big difference between the heavily marketed AI app builders you see every day on YouTube and social media, and using AI as part of a more complete development process.&lt;/p&gt;
&lt;p&gt;You don&#39;t necessarily need months of planning before starting a project. But spending some time figuring out what you actually want to build before handing everything over to a coding agent can make an enormous difference.&lt;/p&gt;
&lt;p&gt;For our latest project, we decided to build a full MP3 player.&lt;/p&gt;
&lt;p&gt;The result is actually a relatively simple app underneath. It imports music, plays it, organizes it and remembers what the user is doing. But visually we went much further, with several completely different player interfaces inspired by the dedicated MP3 players of the 2000s.&lt;/p&gt;
&lt;p&gt;And despite eventually growing to more than 22,000 lines of code, this turned out to be one of our smoothest AI-assisted builds so far.&lt;/p&gt;
&lt;h2&gt;Here&#39;s How We Planned Our MP3 Player&lt;/h2&gt;
&lt;p&gt;We didn&#39;t start by writing a giant technical specification.&lt;/p&gt;
&lt;p&gt;Instead, once we had decided what kind of MP3 player we wanted to make, we asked ChatGPT to take us through the product &lt;strong&gt;one feature at a time&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;ChatGPT would suggest a feature or behavior, explain what it could add to the player, and then we would approve it, reject it or modify it before moving on to the next one.&lt;/p&gt;
&lt;p&gt;We probably accepted somewhere around &lt;strong&gt;80–90% of the suggestions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Some were exactly what we wanted immediately. Others were good ideas that we customized further, and occasionally we decided that a suggestion simply didn&#39;t belong in the app.&lt;/p&gt;
&lt;p&gt;This gave ChatGPT quite a lot of freedom to contribute to the product rather than using it purely as a machine waiting for us to tell it what to do.&lt;/p&gt;
&lt;p&gt;At the same time, we retained the final say over everything that actually became part of the player.&lt;/p&gt;
&lt;h2&gt;We Went Deep Into the Small Details&lt;/h2&gt;
&lt;p&gt;The basic feature set of an MP3 player is obviously not difficult to imagine. You need playback, a music library, queues, playlists, favorites and the usual playback controls.&lt;/p&gt;
&lt;p&gt;We went considerably deeper than that.&lt;/p&gt;
&lt;p&gt;We discussed exactly what should appear inside menus, how queues should behave, how playlists should work, when a song should count as having been played, what statistics should be remembered, which metadata should be displayed, how the app should behave when reopened, what equalizer controls should be available and how different player interfaces could present those controls differently.&lt;/p&gt;
&lt;p&gt;We also discussed what &lt;strong&gt;not&lt;/strong&gt; to include.&lt;/p&gt;
&lt;p&gt;For the music side of the application, we mostly concentrated on features that belonged in a real music player. We weren&#39;t interested in adding features simply because AI could build them.&lt;/p&gt;
&lt;p&gt;Our main reference point was the era of standalone MP3 players rather than modern streaming applications. We were thinking about devices such as Apple&#39;s iPod, Microsoft&#39;s Zune, Creative players, Sony music players and the enormous variety of smaller MP3 players people used before smartphones took over.&lt;/p&gt;
&lt;p&gt;That gave the project a very clear identity.&lt;/p&gt;
&lt;h2&gt;AI Designed Most of the Technical Architecture&lt;/h2&gt;
&lt;p&gt;Where we did &lt;strong&gt;not&lt;/strong&gt; spend much time was manually deciding which software component should communicate with which other component.&lt;/p&gt;
&lt;p&gt;Once the features and behavior had been established, AI worked out most of that for us.&lt;/p&gt;
&lt;p&gt;It decided how the application should be divided, what should belong to the shared music system, what should belong to the individual player interfaces, what needed to reach Android or iOS directly, and how the different parts should communicate.&lt;/p&gt;
&lt;p&gt;So it would be inaccurate to say that we designed the complete architecture and then gave it to AI to code.&lt;/p&gt;
&lt;p&gt;The process was much closer to &lt;strong&gt;designing the product together with AI, approving the important decisions and then allowing AI to determine a sensible technical implementation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For this particular project, that worked extremely well.&lt;/p&gt;
&lt;h2&gt;What Was Our Tech Stack?&lt;/h2&gt;
&lt;p&gt;The bulk of our technology stack was also decided during the planning phase.&lt;/p&gt;
&lt;p&gt;For the main application framework, we used &lt;strong&gt;React Native 0.86 with React 19&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;React Native was originally developed at Facebook, now Meta, and allows most of our application to exist in one shared codebase while still giving us access to native Android and iOS functionality when we need it.&lt;/p&gt;
&lt;p&gt;We purposely stayed away from the myriad of generic UI kits and larger navigation frameworks available for React Native because we wanted as much control over the appearance of the player as possible.&lt;/p&gt;
&lt;p&gt;That turned out to be important.&lt;/p&gt;
&lt;p&gt;Our app doesn&#39;t have one conventional mobile interface with several themes applied to it. The individual player designs can have completely different proportions, controls, screens, menus, visualizers and ways of displaying album artwork.&lt;/p&gt;
&lt;p&gt;Using a generic UI system everywhere would have introduced restrictions we simply didn&#39;t need.&lt;/p&gt;
&lt;p&gt;This was another decision we discussed with ChatGPT before serious coding began.&lt;/p&gt;
&lt;h2&gt;Plan With a Chatbot, Then Move Into a Coding Agent&lt;/h2&gt;
&lt;p&gt;This project has reinforced a workflow that we have increasingly come to like.&lt;/p&gt;
&lt;p&gt;We use a conversational AI such as ChatGPT to explore and plan the product first. Then, once we know what we want, we move into a coding agent such as Codex or Claude Code for the implementation.&lt;/p&gt;
&lt;p&gt;The first stage gives us room to talk through ideas, reject features, compare approaches and change our minds without constantly modifying the actual codebase.&lt;/p&gt;
&lt;p&gt;The coding agent then receives a much clearer idea of what it is supposed to build.&lt;/p&gt;
&lt;p&gt;For us, that gives substantially more control over the finished product than simply opening a coding agent and typing something like &amp;quot;build me an MP3 player.&amp;quot;&lt;/p&gt;
&lt;h2&gt;What Did We Use for Android Audio?&lt;/h2&gt;
&lt;p&gt;For Android playback and several of the player-specific audio features, we went with &lt;strong&gt;AndroidX Media3 and ExoPlayer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;ExoPlayer is now part of Google&#39;s Media3 framework and provides a mature native Android playback system, so there is very little reason for us to try to invent our own audio engine from scratch.&lt;/p&gt;
&lt;p&gt;It is also open-source software under the Apache 2.0 license.&lt;/p&gt;
&lt;p&gt;So we&#39;ll give Richard Stallman a symbolic thank-you for helping create the world in which we can build software on top of excellent free and open-source components, even though he obviously didn&#39;t write ExoPlayer himself.&lt;/p&gt;
&lt;p&gt;For some of the more specialized audio functionality, including equalization and visualization, our application also reaches Android&#39;s native audio and media systems.&lt;/p&gt;
&lt;h2&gt;What About the iOS Version?&lt;/h2&gt;
&lt;p&gt;We haven&#39;t completed the native iOS implementation yet, but the application was planned for both Android and iPhone from the beginning.&lt;/p&gt;
&lt;p&gt;For iOS, we plan to use Apple&#39;s &lt;strong&gt;AVFoundation&lt;/strong&gt; family of frameworks for the native audio side, including AVPlayer or related components where appropriate.&lt;/p&gt;
&lt;p&gt;One small technical distinction is that AVFoundation is mainly concerned with media. Importing and accessing files will use Apple&#39;s appropriate document and file APIs rather than pretending AVPlayer itself is a file-management system.&lt;/p&gt;
&lt;p&gt;We also plan to use &lt;strong&gt;Core Motion&lt;/strong&gt; for some of our more unusual player designs.&lt;/p&gt;
&lt;p&gt;Core Motion exposes data from hardware such as the iPhone&#39;s accelerometer and gyroscope. That means we can potentially have certain interfaces visually respond when the user tilts or moves the phone.&lt;/p&gt;
&lt;p&gt;Unlike Media3, Apple&#39;s frameworks aren&#39;t free software in the Richard Stallman sense. They are proprietary Apple platform frameworks, although there isn&#39;t a separate AVFoundation license fee that you pay every time you use them in an iOS application.&lt;/p&gt;
&lt;h2&gt;Why Did We Use TypeScript?&lt;/h2&gt;
&lt;p&gt;The shared React Native portion of the application is primarily written in &lt;strong&gt;TypeScript&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;TypeScript is Microsoft&#39;s typed extension of JavaScript. In simple terms, it allows the code to describe more clearly what kind of information different functions and components expect.&lt;/p&gt;
&lt;p&gt;We think that works particularly well with coding agents.&lt;/p&gt;
&lt;p&gt;When different parts of an application have explicit types and relatively simple interfaces, there is less ambiguity about what the agent is supposed to pass between them. This is one reason we think strongly typed languages and clearly defined interfaces are becoming increasingly interesting in the AI coding era.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://youcanbuildtech.com/studies/fastest-growing-programming-languages-in-the-ai-era/&quot;&gt;Programming Languages That Are Growing in the AI Era&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;How Does TypeScript Reach Android and iOS?&lt;/h2&gt;
&lt;p&gt;For communication between our TypeScript code and native Android or iOS implementations, we use &lt;strong&gt;React Native Turbo Native Modules and Codegen&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This is the modern React Native approach for building typed interfaces between the shared application and native platform code.&lt;/p&gt;
&lt;p&gt;We define what the React Native side needs from the native implementation, and Codegen generates much of the repetitive plumbing needed to connect those interfaces.&lt;/p&gt;
&lt;p&gt;On Android, the platform-specific implementation can then be written in Kotlin and talk directly to Android.&lt;/p&gt;
&lt;p&gt;The equivalent iOS implementation can reach Apple&#39;s native frameworks.&lt;/p&gt;
&lt;p&gt;So yes, this native layer is essentially the part that allows the shared React Native application to &lt;strong&gt;reach down into the operating system&lt;/strong&gt; when JavaScript or TypeScript alone isn&#39;t the right tool for the job.&lt;/p&gt;
&lt;h2&gt;Metro, Babel and Hermes&lt;/h2&gt;
&lt;p&gt;As you would normally expect with React Native, the project also uses &lt;strong&gt;Metro, Babel and Hermes&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Metro is the bundler used by React Native. Babel handles JavaScript transformations where required, while Hermes is the JavaScript engine that runs the React Native JavaScript code on the device.&lt;/p&gt;
&lt;p&gt;These technologies aren&#39;t really part of the personality of our MP3 player, and the user will hopefully never have any reason to know they exist.&lt;/p&gt;
&lt;p&gt;But they are part of the machinery underneath the application.&lt;/p&gt;
&lt;h2&gt;Testing and Code Quality&lt;/h2&gt;
&lt;p&gt;For testing and code quality, we used &lt;strong&gt;Jest, React Test Renderer, ESLint, Prettier and the TypeScript compiler&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Interestingly, this area also gave us one of the few genuine workflow problems we encountered during the project.&lt;/p&gt;
&lt;p&gt;We started noticing that Codex was sometimes consuming a surprisingly large number of tokens on relatively small fixes.&lt;/p&gt;
&lt;p&gt;Eventually we discovered one of the reasons.&lt;/p&gt;
&lt;p&gt;During one fairly minor change to the player user interface, Prettier ended up &lt;strong&gt;reformatting around 2,400 lines of code&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The application had not suddenly become 2,400 lines better. Most of the changes were simply formatting.&lt;/p&gt;
&lt;p&gt;This becomes particularly wasteful when a coding agent is involved because unnecessary code changes create larger diffs, require the agent to process more code and ultimately consume more tokens.&lt;/p&gt;
&lt;p&gt;We don&#39;t regularly sit down and manually admire the formatting of thousands of lines of AI-generated TypeScript anyway, so there was very little benefit to doing this.&lt;/p&gt;
&lt;h2&gt;We Eventually Gave Codex Its Own Rules&lt;/h2&gt;
&lt;p&gt;After noticing this behavior, we created a small Markdown (&lt;code&gt;.md&lt;/code&gt;) instruction file telling Codex not to rewrite working code simply because another version might look prettier.&lt;/p&gt;
&lt;p&gt;The idea was not to prevent Codex from making architectural changes.&lt;/p&gt;
&lt;p&gt;That would be counterproductive.&lt;/p&gt;
&lt;p&gt;Instead, we told it that when a small direct change can solve a problem, it should prefer that approach rather than performing a large unrelated rewrite.&lt;/p&gt;
&lt;p&gt;If something genuinely needs restructuring, the agent can still do it.&lt;/p&gt;
&lt;p&gt;We just don&#39;t want 2,400 lines changing because a formatting tool has strong opinions about whitespace.&lt;/p&gt;
&lt;h2&gt;How Is the App Structured?&lt;/h2&gt;
&lt;p&gt;At a high level, the application ended up divided into three major areas: the shared music system, the different player frontends and a relatively thin native platform layer.&lt;/p&gt;
&lt;p&gt;That separation is one of the reasons we can create so many different-looking players without rebuilding the actual music functionality each time.&lt;/p&gt;
&lt;h2&gt;The Music Engine&lt;/h2&gt;
&lt;p&gt;The music engine owns the important state and functionality of the player.&lt;/p&gt;
&lt;p&gt;That includes playback, the current song, queues, the music library, playlists, favorites, listening statistics, equalizer settings, search and other music-related behavior.&lt;/p&gt;
&lt;p&gt;It also handles &lt;strong&gt;persistence&lt;/strong&gt;, which simply means saving important information so it is still there after the application is closed and reopened.&lt;/p&gt;
&lt;p&gt;For example, the app can remember which song you were listening to, your queue, your playback position, playlists, favorites, equalizer settings and other information that would be annoying to lose every time you closed the application.&lt;/p&gt;
&lt;p&gt;The equalizer can also appear differently depending on the player interface.&lt;/p&gt;
&lt;p&gt;One interface might expose simple controls such as Bass, Mid and Treble, while another can expose presets such as Rock, Pop, Jazz, Classical or Electronic.&lt;/p&gt;
&lt;p&gt;They can look completely different while still controlling the same underlying audio system.&lt;/p&gt;
&lt;h2&gt;The Player Frontends&lt;/h2&gt;
&lt;p&gt;The second major part of the application is the collection of player frontends.&lt;/p&gt;
&lt;p&gt;This is where most of the visual personality lives.&lt;/p&gt;
&lt;p&gt;We can have as many player interfaces as we want, including designs inspired by both small and large standalone MP3 players from the 2000s.&lt;/p&gt;
&lt;p&gt;Each can have its own screen arrangement, physical proportions, controls, menus, artwork presentation and visualizers.&lt;/p&gt;
&lt;p&gt;The important part is that these are not completely separate music applications.&lt;/p&gt;
&lt;p&gt;They sit on top of the same shared music system.&lt;/p&gt;
&lt;p&gt;If a song is already playing and the user changes from one player to another, the new frontend picks up the same state. The queue remains intact, the current track remains intact and the playback position remains intact.&lt;/p&gt;
&lt;p&gt;Only the presentation changes.&lt;/p&gt;
&lt;p&gt;This turned out to be one of the most useful architectural decisions AI made for the project because it means we can continue creating radically different player interfaces without duplicating the music engine.&lt;/p&gt;
&lt;h2&gt;The Native Platform Layer&lt;/h2&gt;
&lt;p&gt;The third part consists of relatively thin native adapters that handle work requiring closer access to Android or iOS.&lt;/p&gt;
&lt;p&gt;This includes things such as playing local files, importing music, accessing platform storage, responding to device motion, processing equalizer behavior, generating visualizer data and integrating with operating-system media functionality.&lt;/p&gt;
&lt;p&gt;On Android, this is where our Kotlin code enters the picture.&lt;/p&gt;
&lt;p&gt;On iOS, the equivalent functionality will use Apple&#39;s native APIs.&lt;/p&gt;
&lt;p&gt;Most of the application therefore remains inside our shared TypeScript codebase, while the platform-specific layer deals with the jobs where Android and iOS genuinely need to be treated differently.&lt;/p&gt;
&lt;h2&gt;How Much Code Did the MP3 Player Take?&lt;/h2&gt;
&lt;p&gt;By the time we took the screenshots for this article, the repository had grown to around &lt;strong&gt;22,159 lines of code across 165 files&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That might sound surprisingly large for something we have described as a relatively simple application, but the interesting part is where those lines actually went.&lt;/p&gt;
&lt;p&gt;The project is overwhelmingly written in &lt;strong&gt;TypeScript and TSX&lt;/strong&gt;, which together represent more than 90% of the codebase. Kotlin currently accounts for around 7%, while there is almost no Swift yet because the native iOS implementation has not been completed.&lt;/p&gt;
&lt;figure class=&quot;article-figure&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/dUNKdzfBjr-1434.avif&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/dUNKdzfBjr-1434.webp&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/dUNKdzfBjr-1434.png&quot; width=&quot;1434&quot; height=&quot;817&quot; alt=&quot;Onefetch repository summary showing 22,159 lines across 165 files, with TSX, TypeScript, and Kotlin making up nearly all of the MP3 player codebase&quot; loading=&quot;lazy&quot;&gt;&lt;/picture&gt;
  &lt;figcaption&gt;Overall repository breakdown for the MP3 player.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The shared React Native application itself currently contains around &lt;strong&gt;15,476 lines of TypeScript and TSX&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Most of the Shared Code Is Actually the Player Designs&lt;/h2&gt;
&lt;p&gt;The most interesting number in our code breakdown is probably the frontend.&lt;/p&gt;
&lt;p&gt;Our &lt;code&gt;frontends&lt;/code&gt; section currently contains around &lt;strong&gt;9,481 lines of code&lt;/strong&gt;, while the actual music engine and music-related features contain around &lt;strong&gt;3,415 lines&lt;/strong&gt;.&lt;/p&gt;
&lt;figure class=&quot;article-figure&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/cAITsVYU_p-1080.avif&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/cAITsVYU_p-1080.webp&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/cAITsVYU_p-1080.png&quot; width=&quot;1080&quot; height=&quot;1070&quot; alt=&quot;PowerShell line counts showing 15,476 lines of shared application code, including 9,481 frontend lines and 3,415 music-engine lines&quot; loading=&quot;lazy&quot;&gt;&lt;/picture&gt;
  &lt;figcaption&gt;Shared React Native application code breakdown.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;In other words, roughly 61% of our shared application code currently lives in the player frontend area.&lt;/p&gt;
&lt;p&gt;That describes this project extremely well.&lt;/p&gt;
&lt;p&gt;Playing an MP3 file isn&#39;t particularly exotic technology. Modern operating systems already give developers extremely capable media frameworks.&lt;/p&gt;
&lt;p&gt;What took considerably more work was making the application feel like a collection of actual music players rather than a generic mobile screen containing Play, Pause and Skip buttons.&lt;/p&gt;
&lt;p&gt;Every player can have its own layout, screen proportions, controls, menu behavior, visualizer presentation and album artwork treatment. Once you start building genuinely different interfaces rather than simply recoloring the same screen, the amount of frontend code naturally grows very quickly.&lt;/p&gt;
&lt;p&gt;A large part of this application&#39;s code exists because we wanted the product to &lt;strong&gt;look and feel far more elaborate than its basic purpose really is&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;One Music System Underneath All of Them&lt;/h2&gt;
&lt;p&gt;Even though the player frontend code is large, the individual player designs don&#39;t each contain their own separate playback systems.&lt;/p&gt;
&lt;p&gt;They all operate on top of the same shared music state.&lt;/p&gt;
&lt;p&gt;This means adding another visual player doesn&#39;t mean rebuilding playlists, favorites, queues, playback or the music library again.&lt;/p&gt;
&lt;p&gt;A new frontend is essentially another way of displaying and controlling the music system that already exists.&lt;/p&gt;
&lt;p&gt;That separation gives us considerable freedom on the visual side without making the underlying application unnecessarily complicated.&lt;/p&gt;
&lt;h2&gt;How Much Native Android Code Did We Need?&lt;/h2&gt;
&lt;p&gt;At the time of writing, the Android playback area contained around &lt;strong&gt;1,586 lines of custom Kotlin&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We also had only around &lt;strong&gt;82 lines of TurboModule specifications&lt;/strong&gt; defining parts of the communication between the shared TypeScript application and the native platform layer.&lt;/p&gt;
&lt;figure class=&quot;article-figure&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/H6LgzJxkkO-1080.avif&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/H6LgzJxkkO-1080.webp&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/H6LgzJxkkO-1080.png&quot; width=&quot;1080&quot; height=&quot;645&quot; alt=&quot;PowerShell line counts showing 1,586 lines of custom Android Kotlin, no native iOS modules yet, and 82 lines of TurboModule specifications&quot; loading=&quot;lazy&quot;&gt;&lt;/picture&gt;
  &lt;figcaption&gt;Native Android and TurboModule code breakdown.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;These numbers are another good illustration of why we chose React Native.&lt;/p&gt;
&lt;p&gt;We don&#39;t need to write the entire application again in Kotlin for Android.&lt;/p&gt;
&lt;p&gt;Most of the application can remain shared, while the relatively small native layer handles the jobs where direct Android access genuinely makes sense.&lt;/p&gt;
&lt;p&gt;When we complete the iOS side, Swift and Apple&#39;s frameworks will naturally become a larger part of the repository as well.&lt;/p&gt;
&lt;h2&gt;More Than 22,000 Lines Doesn&#39;t Mean We Typed 22,000 Lines&lt;/h2&gt;
&lt;p&gt;There is another fairly obvious point worth making in an article about AI-assisted development.&lt;/p&gt;
&lt;p&gt;We did not manually type 22,159 lines of code.&lt;/p&gt;
&lt;p&gt;That is precisely what makes this type of development interesting.&lt;/p&gt;
&lt;p&gt;The coding agent handled the overwhelming majority of the implementation. Our time was much more heavily concentrated on deciding what the product should do, testing what had been built, identifying things we didn&#39;t like and refining the result.&lt;/p&gt;
&lt;p&gt;And despite eventually reaching more than 22,000 lines, the actual coding phase was almost bump-free.&lt;/p&gt;
&lt;h2&gt;We Never Encountered a Major Bug&lt;/h2&gt;
&lt;p&gt;Throughout this project, we never encountered what we would describe as a major bug.&lt;/p&gt;
&lt;p&gt;That doesn&#39;t mean everything was perfect on the first attempt.&lt;/p&gt;
&lt;p&gt;One example was a song failing to continue correctly after switching from one player interface to another. That needed to be fixed.&lt;/p&gt;
&lt;p&gt;But problems at roughly that level were about as dramatic as the project became.&lt;/p&gt;
&lt;p&gt;Much more commonly, the things we asked Codex to change were visual.&lt;/p&gt;
&lt;p&gt;A control needed moving slightly. Spacing didn&#39;t look quite right. A visualizer needed adjusting. One player screen needed different proportions. An element needed to sit a little higher or lower.&lt;/p&gt;
&lt;p&gt;Most of the development time was therefore not spent rescuing broken software. It was spent &lt;strong&gt;polishing software that was already working&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For an application of this size, that made the entire project feel surprisingly straightforward.&lt;/p&gt;
&lt;h2&gt;The Code Count Is Slightly Misleading&lt;/h2&gt;
&lt;p&gt;Looking at more than 22,000 lines of code can make the project sound much more technically complicated than it really is.&lt;/p&gt;
&lt;p&gt;At its core, the application has a fairly simple purpose.&lt;/p&gt;
&lt;p&gt;It imports music, organizes it, plays it properly and remembers the user&#39;s state.&lt;/p&gt;
&lt;p&gt;The reason the codebase grew substantially larger is that we put so much effort into the different ways that simple functionality can be presented.&lt;/p&gt;
&lt;p&gt;The core music engine is relatively modest compared with the amount of code devoted to the player interfaces.&lt;/p&gt;
&lt;p&gt;That was intentional.&lt;/p&gt;
&lt;p&gt;We weren&#39;t trying to make an MP3 player technically complicated just for the sake of it. We wanted to take something fundamentally simple and make it feel unusually polished, fun and complete.&lt;/p&gt;
&lt;p&gt;The final result looks far more elaborate than the underlying concept really is, and when you use it, it behaves exactly the way a real MP3 player should.&lt;/p&gt;
&lt;h2&gt;How Is the Finished App Configured?&lt;/h2&gt;
&lt;p&gt;The appearance and available options of a finished version of the app can largely be described using a &lt;strong&gt;versioned JSON configuration bundle&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The important distinction is that the JSON file is not generating the entire application from nothing.&lt;/p&gt;
&lt;p&gt;The player frontends, music engine and underlying capabilities already exist.&lt;/p&gt;
&lt;p&gt;The configuration determines things such as which frontends are available, which colorways they use, which assets belong to them and which optional features should be enabled.&lt;/p&gt;
&lt;p&gt;The application validates this configuration before using it so that broken or incomplete combinations can be caught rather than blindly loaded.&lt;/p&gt;
&lt;p&gt;Because the presentation and music state are separated, switching player designs doesn&#39;t destroy what the user was doing. The current track, queue and playback position can remain intact while the interface around them changes.&lt;/p&gt;
&lt;p&gt;This gives us a remarkably flexible application without needing to create separate versions of the music engine for every visual design.&lt;/p&gt;
&lt;h2&gt;What Did We Learn From Building It?&lt;/h2&gt;
&lt;p&gt;One of the clearest lessons from this project was how effective &lt;strong&gt;feature-by-feature planning with AI&lt;/strong&gt; can be.&lt;/p&gt;
&lt;p&gt;We didn&#39;t walk into the project knowing every feature we wanted.&lt;/p&gt;
&lt;p&gt;Instead, we allowed ChatGPT to contribute ideas.&lt;/p&gt;
&lt;p&gt;It suggested something, we considered it and then we approved, rejected or refined it before moving on.&lt;/p&gt;
&lt;p&gt;By the end of that process, we had effectively produced a very detailed product specification through conversation without sitting down and manually writing one from scratch.&lt;/p&gt;
&lt;p&gt;AI then translated those decisions into the technical architecture and the coding agent implemented it.&lt;/p&gt;
&lt;p&gt;For this project, the process worked exceptionally well.&lt;/p&gt;
&lt;p&gt;The app itself isn&#39;t conceptually complicated, and that probably helped. But we also believe the amount of planning we did before serious implementation contributed to how few technical problems we encountered later.&lt;/p&gt;
&lt;p&gt;We spent a lot of time deciding what we wanted before asking a coding agent to build it.&lt;/p&gt;
&lt;p&gt;Once development began, most of our effort could therefore go into refinement rather than repeatedly changing the fundamental product underneath it.&lt;/p&gt;
&lt;p&gt;That distinction is increasingly important to how we think about AI development at You Can Build Tech.&lt;/p&gt;
&lt;p&gt;There is a big difference between simply asking AI to build you an app and &lt;strong&gt;actually building an app with AI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The amount of manual coding required has changed dramatically.&lt;/p&gt;
&lt;p&gt;The importance of deciding what is worth building has not.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>How Much Money Can You Make With Google AdMob? | YCBT</title>
    <link href="https://youcanbuildtech.com/launch-and-grow/how-much-money-can-you-make-with-google-admob/" />
    <updated>2026-09-02T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/launch-and-grow/how-much-money-can-you-make-with-google-admob/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; Launch &amp;amp; Grow&lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;h1&gt;How Much Money Can You Make With Google AdMob?&lt;/h1&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-09-02&quot;&gt;September 2, 2026&lt;/time&gt;&lt;/span&gt;
  
&lt;/p&gt;


  &lt;/header&gt;

  &lt;figure class=&quot;article-hero-media&quot;&gt;
    &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/JcCWOCaK8o-1672.avif&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/JcCWOCaK8o-1672.webp&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/JcCWOCaK8o-1672.png&quot; width=&quot;1672&quot; height=&quot;941&quot; alt=&quot;A mobile app surrounded by ad-performance charts and stacks of coins, illustrating mobile advertising revenue.&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
  &lt;/figure&gt;

  &lt;article class=&quot;article-card&quot;&gt;
    &lt;h2&gt;What Is Google AdMob?&lt;/h2&gt;

    &lt;p&gt;AdMob is an ad service created by Google that enables you to run advertisements in your mobile game or app. It&#39;s easy to set up an account, but it requires some coding to get it working inside your app.&lt;/p&gt;

    &lt;p&gt;This article is meant to give you a solid understanding of what AdMob is, how it works, and the kind of money you can expect to earn using it.&lt;/p&gt;

    &lt;p&gt;Let&#39;s get started.&lt;/p&gt;

    &lt;h2&gt;A Short History of AdMob&lt;/h2&gt;

    &lt;p&gt;AdMob is a mash-up of the words &quot;advertising on mobile.&quot; It&#39;s been owned by Google since 2010, and it makes it easy to earn money with your app by showing in-app ads.&lt;/p&gt;

    &lt;p&gt;&lt;a href=&quot;https://admob.google.com/home/&quot;&gt;Google AdMob&lt;/a&gt;&lt;/p&gt;

    &lt;h2&gt;How Does Google AdMob Work?&lt;/h2&gt;

    &lt;p&gt;You make money with AdMob by integrating ads into your mobile app, and you get paid when users view or interact with those ads.&lt;/p&gt;

    &lt;p&gt;It&#39;s simple to set up and only requires you to sign up on the Google AdMob platform using your Google account. After that, you integrate the Google AdMob Software Development Kit, or SDK, into your mobile app&#39;s codebase.&lt;/p&gt;

    &lt;h2&gt;How Much Does AdMob Pay You?&lt;/h2&gt;

    &lt;p&gt;This is a tricky question that no one can give a definitive answer to. Not even AdMob gives us one fixed number because it uses a variety of factors to calculate your payouts.&lt;/p&gt;

    &lt;p&gt;These include the type of ad, such as full-screen ads, banner ads, or video ads, and the geographical location of the views.&lt;/p&gt;

    &lt;p&gt;Ad views from a wealthy country can pay significantly more than views from less-developed countries.&lt;/p&gt;

    &lt;h2&gt;But What Are the Actual Numbers?&lt;/h2&gt;

    &lt;p&gt;Like we said, there is no fixed number, but for a simple example we can use an estimated $6 USD per 1,000 ad views.&lt;/p&gt;

    &lt;p&gt;This essentially means that if your app gets some moderate traction and gains 10,000 users who use your app once per day, that could equal 300,000 or more ad views per month.&lt;/p&gt;

    &lt;p&gt;Divide those views by 1,000:&lt;/p&gt;

    &lt;p&gt;300,000 / 1,000 = 300&lt;/p&gt;

    &lt;p&gt;Then multiply that by $6 USD:&lt;/p&gt;

    &lt;p&gt;300 × $6 = $1,800 USD&lt;/p&gt;

    &lt;p&gt;That gives you an estimated payout of &lt;strong&gt;$1,800 USD per month&lt;/strong&gt;.&lt;/p&gt;

    &lt;h2&gt;AdMob Payout Estimates for Your App&lt;/h2&gt;

    &lt;p&gt;Basically:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;10,000 users:&lt;/strong&gt; around $1,800 per month&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;1,000 users:&lt;/strong&gt; around $180 per month&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;100 users:&lt;/strong&gt; around $18 per month&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;This number could potentially be 2–5 times higher if users spend a while inside your app and see multiple ads during each session. However, it could also be lower if they don&#39;t use your app every day.&lt;/p&gt;

    &lt;p&gt;So at the end of the day, this is just a very speculative estimation.&lt;/p&gt;

    &lt;h2&gt;What Do Real App Developers Report?&lt;/h2&gt;

    &lt;p&gt;Real-world reports from app developers show just how much AdMob earnings can vary.&lt;/p&gt;

    &lt;p&gt;One developer reported usually seeing around &lt;strong&gt;$15–$25 eCPM for interstitial ads in the US&lt;/strong&gt;. &lt;a href=&quot;https://www.reddit.com/r/iOSProgramming/comments/145bh74/how_much_money_do_you_earn_per_interstitial_advert/&quot;&gt;Reddit discussion&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Another developer with users mainly in Egypt and the Middle East reported around &lt;strong&gt;$0.70–$1.20 eCPM for interstitial ads&lt;/strong&gt;, with rewarded ads earning around &lt;strong&gt;$1.50–$2.50 eCPM&lt;/strong&gt;. &lt;a href=&quot;https://www.reddit.com/r/admob/comments/1nurhxq/30000_active_users_daily_each_user_views_one/&quot;&gt;Reddit discussion&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;There are also examples showing how much the size and location of your audience matter. One developer with around 2,000 active users, 42% of them from the US, reported earning around &lt;strong&gt;$200–$250 per month from one game&lt;/strong&gt;. &lt;a href=&quot;https://www.reddit.com/r/admob/comments/1auyd7s/hi_how_much_money_do_you_make_from_admob_ive/&quot;&gt;Reddit discussion&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;These are individual developer reports and not official AdMob payout figures, but they demonstrate why there is no single answer to how much AdMob pays.&lt;/p&gt;

    &lt;p&gt;Your users, their location, the type of ads you show, and how often they use your app can make an enormous difference.&lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>Which Programming Languages Are Growing Fastest in the AI Era? | YCBT</title>
    <link href="https://youcanbuildtech.com/studies/fastest-growing-programming-languages-in-the-ai-era/" />
    <updated>2026-08-30T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/studies/fastest-growing-programming-languages-in-the-ai-era/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; Studies &amp;amp; Statistics&lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;Studies &amp;amp; Statistics&lt;/p&gt;
    &lt;h1&gt;Which Programming Languages Are Growing Fastest in the AI Era?&lt;/h1&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-08-30&quot;&gt;August 30, 2026&lt;/time&gt;&lt;/span&gt;
  
&lt;/p&gt;


  &lt;/header&gt;

  &lt;figure class=&quot;article-hero-media&quot;&gt;
    &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/2dJ21QTJSe-1672.avif&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/2dJ21QTJSe-1672.webp&quot; width=&quot;1672&quot; height=&quot;941&quot; alt=&quot;TypeScript, Rust, Python, and Go flow into an AI chip beside an upward growth arrow.&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
  &lt;/figure&gt;

  &lt;article class=&quot;article-card&quot;&gt;
    &lt;p&gt;Although much of the reason for these languages being the fastest-growing is due to their corporate utility in the AI era, it doesn&#39;t mean that they are irrelevant to vibe coders. Neither does it mean that vibe coders should use these languages simply because they are being used heavily in the corporate world due to agentic coding becoming the new standard.&lt;/p&gt;

    &lt;p&gt;What&#39;s useful to take away from this article is the types of applications they are being used in and why they are so effective with &lt;a href=&quot;https://youcanbuildtech.com/ai-coding/what-is-ai-coding/&quot;&gt;AI / agentic coding practices&lt;/a&gt;.&lt;/p&gt;

    &lt;h2&gt;1. TypeScript — 66.6% YoY Growth&lt;/h2&gt;

    &lt;p&gt;TypeScript is the typed version of the legendary web language called JavaScript, which was invented for easy-to-do browser coding.&lt;/p&gt;

    &lt;p&gt;And now, in the age of AI, it&#39;s become quite clear that coding agents work better when they use a strongly typed language, which means less ambiguity about the type of data used in the program.&lt;/p&gt;

    &lt;p&gt;So since TypeScript adds static typing and JavaScript is a dynamically typed language, companies are now finding out that they can take on much larger rewrites and migrations of websites and web apps in TypeScript using AI.&lt;/p&gt;

    &lt;p&gt;This is likely one of the main reasons we see TypeScript beating out both Python and JavaScript in GitHub&#39;s latest YoY programming language data.&lt;/p&gt;

    &lt;p&gt;TypeScript grew 66.63% year over year in monthly contributors and overtook both Python and JavaScript to become the most-used language on GitHub by contributor count in August 2025.&lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;&lt;strong&gt;Source: &lt;a href=&quot;https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/&quot;&gt;GitHub Octoverse 2025&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

    &lt;h2&gt;2. Rust — More Than Doubled Since 2022&lt;/h2&gt;

    &lt;p&gt;High-performance software has always needed languages that were low on abstraction and closer to the CPU and hardware, and historically those languages were C and its younger brother C++.&lt;/p&gt;

    &lt;p&gt;But in 2015, a new language named Rust was released that was intended to compete with C and C++ on raw speed while introducing new code-safety features that prevent your code from exploding and sinking the entire ship.&lt;/p&gt;

    &lt;p&gt;However, it wasn&#39;t so easy to use since it required very structured programs and lots of jumping through hoops.&lt;/p&gt;

    &lt;p&gt;Yet Rust saw slow but steady growth for years, but it&#39;s not until lately that developers and companies are realizing that Rust may just be the perfect language for coding high-performance software with a coding agent.&lt;/p&gt;

    &lt;p&gt;One particularly interesting reason is that Rust&#39;s strict compiler can give the coding agent very specific feedback when something is wrong, allowing the agent to fix the problem and try again.&lt;/p&gt;

    &lt;p&gt;Rust is now described by SlashData as the fastest-growing major programming language community, with its developer community more than doubling in size since 2022.&lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;&lt;strong&gt;Source: &lt;a href=&quot;https://www.slashdata.co/post/global-developer-population-trends-2025-how-many-developers-are-there&quot;&gt;SlashData — Global Developer Population Trends 2025&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

    &lt;h2&gt;3. Python — 50.7% YoY Growth in AI Repositories&lt;/h2&gt;

    &lt;p&gt;Python was always a very people-friendly language and beloved by both serious scientists &amp;amp; academics and beginner coders alike due to its uncomplicated readability and writability, and the high-level abstraction that makes it easy to accomplish tasks in a shorter and less complicated way.&lt;/p&gt;

    &lt;p&gt;In fact, Python has always been strongly associated with AI, but since the dawn of mainstream AI / LLMs, we are seeing a massive spike in Python use.&lt;/p&gt;

    &lt;p&gt;Python sits right at the center of the modern AI ecosystem and also acts as the glue for human-written code that connects these heavy LLMs to the everyday practical applications that we use in business, medicine, science and education.&lt;/p&gt;

    &lt;p&gt;GitHub found that Python-powered AI repositories grew 50.7% year over year, while Python itself grew 48.78% in monthly contributors.&lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;&lt;strong&gt;Source: &lt;a href=&quot;https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/&quot;&gt;GitHub Octoverse 2025&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

    &lt;h2&gt;4. Go (Golang) — One of the Fastest-Growing Modern Languages&lt;/h2&gt;

    &lt;p&gt;Go is a modern programming language that was invented at Google to handle large software systems, networking, concurrency and infrastructure across major industries, and thus it is quickly becoming a go-to language (pun not intended) for the very infrastructure that powers the AI era.&lt;/p&gt;

    &lt;p&gt;It is built from the ground up to be simple, straightforward and lightweight, which are features that all contribute to it being a great language to use with agentic coding on backend services of any scale.&lt;/p&gt;

    &lt;p&gt;Its deliberately simple syntax and strict tooling also give coding agents fewer complicated ways to arrive at the same solution.&lt;/p&gt;

    &lt;p&gt;Go developers are already heavily adopting AI development tools. In the official 2025 Go Developer Survey, 53% said they used AI-powered development tools daily, while another 40% said they were at least occasionally trying agentic modes of working.&lt;/p&gt;

    &lt;p&gt;Go itself also continues to gain developer adoption. JetBrains&#39; 2025 research found that Go has steadily gained market share over the past five years, with more developers saying they planned to adopt Go next than any other programming language.&lt;/p&gt;

    &lt;p&gt;Don&#39;t be surprised if we continue to see more growth with this particular language in the coming years.&lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;&lt;strong&gt;Sources: &lt;a href=&quot;https://devecosystem-2025.jetbrains.com/&quot;&gt;JetBrains State of Developer Ecosystem 2025&lt;/a&gt; and the &lt;a href=&quot;https://go.dev/blog/survey2025&quot;&gt;2025 Go Developer Survey&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>Small Developers Already Dominated the App Store. Now They Have AI</title>
    <link href="https://youcanbuildtech.com/studies/small-developers-already-dominated-the-app-store-now-they-have-ai/" />
    <updated>2026-08-28T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/studies/small-developers-already-dominated-the-app-store-now-they-have-ai/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; Studies &amp;amp; Statistics&lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;Studies &amp;amp; Statistics&lt;/p&gt;
    &lt;h1&gt;Small Developers Already Dominated the App Store. Now They Have AI&lt;/h1&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-08-28&quot;&gt;August 28, 2026&lt;/time&gt;&lt;/span&gt;
  
&lt;/p&gt;


  &lt;/header&gt;

  &lt;picture class=&quot;article-hero-media&quot;&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/af1rYKdtMx-1672.avif&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/af1rYKdtMx-1672.webp&quot; width=&quot;1672&quot; height=&quot;941&quot; alt=&quot;Small developers building with AI as an upward arrow rises from an AI chip.&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;

  &lt;article class=&quot;article-card&quot;&gt;
    &lt;h2&gt;AI Changed the Speed of Development&lt;/h2&gt;

    &lt;p&gt;Since the dawn of the LLM era, we have seen a steady increase in software productivity. With the initial tentative and apprehensive approach seen in the early days, we now (August 2026) see broad acceptance that AI can write code at a speed no human developer could ever hope to match manually, while producing increasingly high-quality results.&lt;/p&gt;

    &lt;p&gt;Here at You Can Build Tech, we started leveraging AI assistance much earlier than the industry average when we experimented with the &quot;copy-and-paste&quot; method by simply chatting with the &quot;regular&quot; ChatGPT. We found that by the summer of 2024, it was highly capable of rapidly increasing the speed of development. By May 2025, &lt;a href=&quot;https://openai.com/index/introducing-codex/&quot;&gt;OpenAI released Codex&lt;/a&gt;, its autonomous agentic coding service, and it was blatantly clear that the entire game had changed.&lt;/p&gt;

    &lt;p&gt;And this leads us to the topic of this article, which is the rapid increase of software products being released into the market. Here at You Can Build Tech, we focus heavily on what the solo developer or small team can accomplish in this new world of &lt;a href=&quot;https://youcanbuildtech.com/ai-coding/what-is-ai-coding/&quot;&gt;agentic coding&lt;/a&gt;.&lt;/p&gt;

    &lt;h2&gt;Small Developers Were Already Everywhere&lt;/h2&gt;

    &lt;p&gt;In fact, small developers already made up the overwhelming majority of App Store developers before the agentic coding era. A &lt;a href=&quot;https://www.apple.com/newsroom/pdfs/small-business-developers-and-app-creators-on-the-app-store-in-2022.pdf&quot;&gt;May 2023 study done by Apple / Analysis Group&lt;/a&gt; found that more than 90% of App Store developers fit Apple&#39;s definition of a &quot;small developer.&quot;&lt;/p&gt;

    &lt;h2&gt;Big Tech Never Owned App Development&lt;/h2&gt;

    &lt;p&gt;This blows to pieces the idea that software development or the App Store is solely the territory of &quot;Big Tech&quot; companies, and shows that computers are, and always were, an open frontier that empowers the people far beyond what was possible before.&lt;/p&gt;

    &lt;figure class=&quot;article-figure&quot;&gt;
      &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/L5lJXn3eN7-1122.avif&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/L5lJXn3eN7-1122.webp&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/L5lJXn3eN7-1122.png&quot; width=&quot;1122&quot; height=&quot;1402&quot; alt=&quot;More than 90% of App Store developers were small developers, according to Apple and Analysis Group in May 2023.&quot; loading=&quot;lazy&quot;&gt;&lt;/picture&gt;
    &lt;/figure&gt;

    &lt;h2&gt;Then Coding Got 55% Faster&lt;/h2&gt;

    &lt;p&gt;Another early statistic comes from the famous code-hosting platform &lt;a href=&quot;https://github.blog/news-insights/research/research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/&quot;&gt;GitHub&#39;s 2022 research on developer productivity and happiness&lt;/a&gt;.&lt;/p&gt;

    &lt;p&gt;The findings included that developers using GitHub Copilot completed a coding task 55% faster than developers who completed the same task without Copilot. This meant that a coding task that took the non-Copilot group an average of 2 hours and 41 minutes took the Copilot group only 1 hour and 11 minutes to complete.&lt;/p&gt;

    &lt;figure class=&quot;article-figure&quot;&gt;
      &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/xf8KxtfVFi-1122.avif&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/xf8KxtfVFi-1122.webp&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/xf8KxtfVFi-1122.png&quot; width=&quot;1122&quot; height=&quot;1402&quot; alt=&quot;GitHub Copilot users completed a coding task 55% faster: 1 hour 11 minutes with Copilot compared with 2 hours 41 minutes without it.&quot; loading=&quot;lazy&quot;&gt;&lt;/picture&gt;
    &lt;/figure&gt;

    &lt;h2&gt;And That Was Only the Beginning&lt;/h2&gt;

    &lt;p&gt;Of course, this was only the beginning of the AI coding era, and we&#39;ve seen enormous progress in just these last four years. But it points to the almost astronomical effect AI is having on coding productivity that we are currently experiencing.&lt;/p&gt;

    &lt;h2&gt;More Power in the Hands of Developers&lt;/h2&gt;

    &lt;p&gt;So it&#39;s undoubtedly an exciting time in the software industry and for developers, and You Can Build Tech is thrilled to be a part of it. We are proud that we are able to help educate individuals on how to harness this incredible power and use it to build software that can change people&#39;s lives for the better.&lt;/p&gt;

    &lt;p&gt;See what current research suggests about the &lt;a href=&quot;https://youcanbuildtech.com/studies/fastest-growing-programming-languages-in-the-ai-era/&quot;&gt;programming languages growing fastest in the AI era&lt;/a&gt;.&lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>App Builder or Coding Agent? The Real Difference | YCBT</title>
    <link href="https://youcanbuildtech.com/comparisons/using-an-app-builder-versus-a-coding-agent/" />
    <updated>2026-08-25T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/comparisons/using-an-app-builder-versus-a-coding-agent/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; &lt;a href=&quot;https://youcanbuildtech.com/comparisons/&quot;&gt;Comparisons&lt;/a&gt; &amp;rarr; App builder or coding agent?&lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;Choosing your building environment&lt;/p&gt;
    &lt;h1&gt;App Builder or Coding Agent? The Real Difference&lt;/h1&gt;
    &lt;p class=&quot;page-hero__lead&quot;&gt;Choose the app builder when you want the shortest road to a working app. Choose the coding agent when you care more about how far that road can eventually go.&lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-08-25&quot;&gt;August 25, 2026&lt;/time&gt;&lt;/span&gt;
  
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/GYhn7Qe1FY-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/GYhn7Qe1FY-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/GYhn7Qe1FY-1672.png&quot; alt=&quot;A visual app builder and coding agent shown at a fork in the road&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
&lt;p&gt;You have an app idea.&lt;/p&gt;
&lt;p&gt;Now you have two very different ways to build it with AI.&lt;/p&gt;
&lt;p&gt;You can open an &lt;strong&gt;AI app builder&lt;/strong&gt;, describe what you want, and have the app appear inside a ready-made environment.&lt;/p&gt;
&lt;p&gt;Or you can use a &lt;strong&gt;coding agent&lt;/strong&gt; and let AI work directly on a real software project.&lt;/p&gt;
&lt;p&gt;Both can work.&lt;/p&gt;
&lt;p&gt;Both can make surprisingly good apps.&lt;/p&gt;
&lt;p&gt;But they give you very different amounts of freedom.&lt;/p&gt;
&lt;p&gt;And that difference usually becomes more obvious the further you get into the project.&lt;/p&gt;
&lt;h2&gt;The short version&lt;/h2&gt;
&lt;p&gt;If you want to get something working quickly without thinking much about programming tools, an app builder is usually easier.&lt;/p&gt;
&lt;p&gt;If you want more control over what the app can become, a coding agent usually gives you more room.&lt;/p&gt;
&lt;p&gt;Think of it this way:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An app builder gives you a prepared workshop.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Most of the tools are already there. The benches are set up. You can start making something almost immediately.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A coding agent gives you access to the entire hardware store.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You have more choices, but somebody still has to decide what to buy and how everything should fit together.&lt;/p&gt;
&lt;p&gt;That somebody is increasingly the AI.&lt;/p&gt;
&lt;p&gt;But you still have to tell it what you are trying to build.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;What an AI app builder actually does&lt;/h2&gt;
&lt;p&gt;AI app builders try to remove as much setup as possible.&lt;/p&gt;
&lt;p&gt;Instead of installing programming languages, frameworks and development tools, you normally open a website and type something like:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Build me an app where dog walkers can create profiles and customers can book them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The builder starts making it.&lt;/p&gt;
&lt;p&gt;You can then say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Make the homepage cleaner.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Add user accounts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Let customers leave reviews.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Add Stripe payments.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And the project grows from there.&lt;/p&gt;
&lt;p&gt;This is why app builders are so attractive.&lt;/p&gt;
&lt;p&gt;You can go from an idea to something you can actually click around in very quickly.&lt;/p&gt;
&lt;p&gt;Popular options include:&lt;/p&gt;
&lt;div class=&quot;comparison-summary&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App builder&lt;/th&gt;
&lt;th style=&quot;text-align:right&quot;&gt;Rough starting price&lt;/th&gt;
&lt;th&gt;Mostly aimed at&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lovable&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Free / around $25 per month for Pro&lt;/td&gt;
&lt;td&gt;Websites and web apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bolt&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Free / around $25 per month for Pro&lt;/td&gt;
&lt;td&gt;Web apps and some mobile development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Replit Agent&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Free / paid plans from around $20–25 per month&lt;/td&gt;
&lt;td&gt;General software projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;v0&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Free / around $30 per month for Plus&lt;/td&gt;
&lt;td&gt;React and Next.js web apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FlutterFlow&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Free / around $39 per month for Basic&lt;/td&gt;
&lt;td&gt;Mobile and web apps using Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Prices change, and most of these services also have usage limits or credits.&lt;/p&gt;
&lt;p&gt;That matters.&lt;/p&gt;
&lt;p&gt;A “$25 per month” AI builder does not necessarily mean you can spend all month endlessly generating and rebuilding a huge app.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Where app builders are really good&lt;/h2&gt;
&lt;p&gt;For a lot of normal apps, an app builder makes perfect sense.&lt;/p&gt;
&lt;p&gt;Imagine you want:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;user accounts&lt;/li&gt;
&lt;li&gt;a dashboard&lt;/li&gt;
&lt;li&gt;a booking system&lt;/li&gt;
&lt;li&gt;a simple marketplace&lt;/li&gt;
&lt;li&gt;a subscription app&lt;/li&gt;
&lt;li&gt;forms&lt;/li&gt;
&lt;li&gt;profiles&lt;/li&gt;
&lt;li&gt;a basic database&lt;/li&gt;
&lt;li&gt;an admin area&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are common problems.&lt;/p&gt;
&lt;p&gt;App builders have already been designed around them.&lt;/p&gt;
&lt;p&gt;So instead of spending your first hour installing things, the builder can spend that hour actually building your app.&lt;/p&gt;
&lt;p&gt;For a beginner, that is a massive advantage.&lt;/p&gt;
&lt;p&gt;You also don’t have to understand every technical decision being made underneath the app.&lt;/p&gt;
&lt;p&gt;The builder may choose the database.&lt;/p&gt;
&lt;p&gt;It may choose the hosting.&lt;/p&gt;
&lt;p&gt;It may choose the framework.&lt;/p&gt;
&lt;p&gt;It may handle deployment.&lt;/p&gt;
&lt;p&gt;That lets you concentrate more on the app itself.&lt;/p&gt;
&lt;p&gt;But there is a trade-off.&lt;/p&gt;
&lt;h3&gt;The builder is also choosing part of your future&lt;/h3&gt;
&lt;p&gt;This is the part that is easy to miss when everything is working nicely.&lt;/p&gt;
&lt;p&gt;An app builder does not simply make programming easier.&lt;/p&gt;
&lt;p&gt;It also gives you a particular path through programming.&lt;/p&gt;
&lt;p&gt;Lovable is heavily focused on web apps.&lt;/p&gt;
&lt;p&gt;v0 strongly favors the React and Next.js world.&lt;/p&gt;
&lt;p&gt;FlutterFlow is built around Flutter.&lt;/p&gt;
&lt;p&gt;Bolt has its own supported technologies and workflows.&lt;/p&gt;
&lt;p&gt;None of that is necessarily bad.&lt;/p&gt;
&lt;p&gt;In fact, those restrictions are part of why the builders are easy to use.&lt;/p&gt;
&lt;p&gt;The problem comes when your idea starts wandering outside the path the builder prepared for you.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Here’s where the magic can start wearing off&lt;/h2&gt;
&lt;p&gt;Imagine your app is mostly finished.&lt;/p&gt;
&lt;p&gt;Then you decide you want something unusual.&lt;/p&gt;
&lt;p&gt;Maybe you want:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;strange custom animations&lt;/li&gt;
&lt;li&gt;an uncommon payment service&lt;/li&gt;
&lt;li&gt;complicated offline behavior&lt;/li&gt;
&lt;li&gt;Bluetooth hardware support&lt;/li&gt;
&lt;li&gt;a very unusual navigation system&lt;/li&gt;
&lt;li&gt;advanced audio features&lt;/li&gt;
&lt;li&gt;a custom drawing interface&lt;/li&gt;
&lt;li&gt;a niche business API&lt;/li&gt;
&lt;li&gt;complicated background processing&lt;/li&gt;
&lt;li&gt;a game-like interface&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now the question becomes:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does the builder support this nicely?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If the answer is yes, great.&lt;/p&gt;
&lt;p&gt;If the answer is no, something that sounded easy can suddenly become awkward.&lt;/p&gt;
&lt;p&gt;You may have to export the code.&lt;/p&gt;
&lt;p&gt;You may have to edit parts manually.&lt;/p&gt;
&lt;p&gt;You may need another service.&lt;/p&gt;
&lt;p&gt;Or you may discover that the platform simply wasn’t designed around what you are trying to do.&lt;/p&gt;
&lt;p&gt;That is probably the biggest difference between an app builder and a coding agent.&lt;/p&gt;
&lt;p&gt;An app builder removes decisions.&lt;/p&gt;
&lt;p&gt;A coding agent gives you more decisions.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Does an app builder own your code?&lt;/h2&gt;
&lt;p&gt;This question gets oversimplified a lot.&lt;/p&gt;
&lt;p&gt;Several major app builders now let you export or sync your code.&lt;/p&gt;
&lt;p&gt;Lovable can sync projects with GitHub.&lt;/p&gt;
&lt;p&gt;Bolt says the code you create is yours.&lt;/p&gt;
&lt;p&gt;v0 works with GitHub.&lt;/p&gt;
&lt;p&gt;FlutterFlow lets paid users download generated Flutter code.&lt;/p&gt;
&lt;p&gt;That is good.&lt;/p&gt;
&lt;p&gt;But owning the code does not necessarily mean you can press one button, leave the platform forever and take absolutely everything with you.&lt;/p&gt;
&lt;p&gt;Your app may also depend on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a database&lt;/li&gt;
&lt;li&gt;uploaded files&lt;/li&gt;
&lt;li&gt;passwords and secret API keys&lt;/li&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;hosting&lt;/li&gt;
&lt;li&gt;scheduled jobs&lt;/li&gt;
&lt;li&gt;domains&lt;/li&gt;
&lt;li&gt;payment accounts&lt;/li&gt;
&lt;li&gt;analytics&lt;/li&gt;
&lt;li&gt;email services&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the useful question isn’t just:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I download my code?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ask:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Could I realistically run this app somewhere else?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That is a much better ownership test.&lt;/p&gt;
&lt;p&gt;If portability matters to you, connecting the project to GitHub early is usually a smart move.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;And no, the builder doesn’t do absolutely everything&lt;/h2&gt;
&lt;p&gt;Another beginner trap is thinking:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The AI built my app. So now I publish it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sometimes.&lt;/p&gt;
&lt;p&gt;But often there is still some boring real-world work waiting for you.&lt;/p&gt;
&lt;p&gt;A mobile app may still need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;an Apple Developer account&lt;/li&gt;
&lt;li&gt;a Google Play Developer account&lt;/li&gt;
&lt;li&gt;screenshots&lt;/li&gt;
&lt;li&gt;app-store descriptions&lt;/li&gt;
&lt;li&gt;icons&lt;/li&gt;
&lt;li&gt;privacy information&lt;/li&gt;
&lt;li&gt;certificates&lt;/li&gt;
&lt;li&gt;testing&lt;/li&gt;
&lt;li&gt;AdMob setup&lt;/li&gt;
&lt;li&gt;payment accounts&lt;/li&gt;
&lt;li&gt;app-store review&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A web app may still need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a domain&lt;/li&gt;
&lt;li&gt;hosting&lt;/li&gt;
&lt;li&gt;email&lt;/li&gt;
&lt;li&gt;analytics&lt;/li&gt;
&lt;li&gt;backups&lt;/li&gt;
&lt;li&gt;payment setup&lt;/li&gt;
&lt;li&gt;privacy pages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI has made building software much easier.&lt;/p&gt;
&lt;p&gt;It has not made all the other companies involved disappear.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Will app-builder apps all start looking the same?&lt;/h2&gt;
&lt;p&gt;This is a more interesting problem.&lt;/p&gt;
&lt;p&gt;And the answer is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;They can.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ask an AI:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Make me a modern fitness app.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There is a good chance you will get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rounded cards&lt;/li&gt;
&lt;li&gt;a progress chart&lt;/li&gt;
&lt;li&gt;some large numbers&lt;/li&gt;
&lt;li&gt;a dashboard&lt;/li&gt;
&lt;li&gt;a few gradient colors&lt;/li&gt;
&lt;li&gt;a settings screen&lt;/li&gt;
&lt;li&gt;the usual fitness features&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ask for a productivity app and you may get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tasks&lt;/li&gt;
&lt;li&gt;streaks&lt;/li&gt;
&lt;li&gt;statistics&lt;/li&gt;
&lt;li&gt;goals&lt;/li&gt;
&lt;li&gt;a profile&lt;/li&gt;
&lt;li&gt;dark mode&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of these things are bad.&lt;/p&gt;
&lt;p&gt;The problem is that AI knows the common answer.&lt;/p&gt;
&lt;p&gt;So if you give it a common question, you often get a common app.&lt;/p&gt;
&lt;p&gt;An app builder can make this problem slightly stronger because the AI is already working inside a smaller set of technologies and interface systems.&lt;/p&gt;
&lt;p&gt;You can absolutely make a distinctive app inside an app builder.&lt;/p&gt;
&lt;p&gt;But you normally have to &lt;strong&gt;push it there&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;What about original graphics, sounds and animations?&lt;/h2&gt;
&lt;p&gt;This is another area where the difference becomes noticeable.&lt;/p&gt;
&lt;p&gt;An app builder may let you use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;your own images&lt;/li&gt;
&lt;li&gt;custom fonts&lt;/li&gt;
&lt;li&gt;generated graphics&lt;/li&gt;
&lt;li&gt;animations&lt;/li&gt;
&lt;li&gt;custom CSS&lt;/li&gt;
&lt;li&gt;audio files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For many apps, that is more than enough.&lt;/p&gt;
&lt;p&gt;But a coding agent can potentially reach much further.&lt;/p&gt;
&lt;p&gt;It can use thousands of existing programming libraries and tools.&lt;/p&gt;
&lt;p&gt;Want advanced animation?&lt;/p&gt;
&lt;p&gt;There’s probably a library for it.&lt;/p&gt;
&lt;p&gt;Want 3D graphics?&lt;/p&gt;
&lt;p&gt;There are engines for that.&lt;/p&gt;
&lt;p&gt;Want interactive audio?&lt;/p&gt;
&lt;p&gt;There are libraries for that too.&lt;/p&gt;
&lt;p&gt;Want to build an interface that looks nothing like a normal website?&lt;/p&gt;
&lt;p&gt;Possible.&lt;/p&gt;
&lt;p&gt;The important word here is &lt;strong&gt;possible&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A coding agent does not magically become a great product designer just because it has access to more tools.&lt;/p&gt;
&lt;p&gt;If you tell it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Make this look cool.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can still get generic AI design.&lt;/p&gt;
&lt;p&gt;You need to give it direction.&lt;/p&gt;
&lt;p&gt;The coding agent simply has fewer walls around what it can build once you do.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;So what is a coding agent?&lt;/h2&gt;
&lt;p&gt;A coding agent works much closer to the actual software project.&lt;/p&gt;
&lt;p&gt;Instead of giving you one prepared app-building environment, it can create files, edit code, install packages, run tests, inspect errors and work with normal development tools.&lt;/p&gt;
&lt;p&gt;Some popular coding agents in 2026 include:&lt;/p&gt;
&lt;div class=&quot;comparison-summary&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Coding agent&lt;/th&gt;
&lt;th style=&quot;text-align:right&quot;&gt;Rough individual price&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI Codex&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Available through ChatGPT plans&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Around $20 per month for Pro, higher plans available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Free / around $20 per month for Pro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Copilot&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Free / around $10 per month for Pro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini CLI&lt;/td&gt;
&lt;td style=&quot;text-align:right&quot;&gt;Free individual usage available&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;The line between an app builder and a coding agent is getting blurry.&lt;/p&gt;
&lt;p&gt;Replit, for example, sits somewhere in the middle.&lt;/p&gt;
&lt;p&gt;But there is still a useful difference.&lt;/p&gt;
&lt;p&gt;With a coding agent, &lt;strong&gt;the project is usually the main thing&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;With an app builder, &lt;strong&gt;the platform is usually the main thing&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;What do you actually have to install?&lt;/h2&gt;
&lt;p&gt;This sounds much scarier than it usually is.&lt;/p&gt;
&lt;p&gt;You do not need to install every programming tool ever made.&lt;/p&gt;
&lt;p&gt;You install what your project needs.&lt;/p&gt;
&lt;p&gt;For example, a normal web app might need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VS Code, Cursor or another editor&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;the coding agent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That’s basically enough to start.&lt;/p&gt;
&lt;p&gt;If you’re making an Android app, you may eventually need Android Studio.&lt;/p&gt;
&lt;p&gt;If you’re making an iPhone app, you will eventually need Xcode on a Mac.&lt;/p&gt;
&lt;p&gt;If you’re making a Godot game, you install Godot.&lt;/p&gt;
&lt;p&gt;Your coding agent can usually help you set this stuff up.&lt;/p&gt;
&lt;p&gt;You do not need to memorize twenty terminal commands first.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Is coding with an agent harder?&lt;/h2&gt;
&lt;p&gt;At the beginning, yes.&lt;/p&gt;
&lt;p&gt;A little.&lt;/p&gt;
&lt;p&gt;An app builder might let you type:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Make me a booking app.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And thirty seconds later there is already something on the screen.&lt;/p&gt;
&lt;p&gt;A coding agent may first need to create the project, install packages and start the development server.&lt;/p&gt;
&lt;p&gt;That feels more technical.&lt;/p&gt;
&lt;p&gt;But the difference is much smaller than it used to be.&lt;/p&gt;
&lt;p&gt;Modern coding agents can handle a huge amount of the setup themselves.&lt;/p&gt;
&lt;p&gt;You can literally tell one:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I want to build an iPhone and Android habit tracker. Set up a sensible project for me and explain anything I need to install.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is a very different programming experience from learning software development ten years ago.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Does a coding agent make a better app?&lt;/h2&gt;
&lt;p&gt;Not automatically.&lt;/p&gt;
&lt;p&gt;This is important.&lt;/p&gt;
&lt;p&gt;Using Codex instead of Lovable does not sprinkle some kind of professional developer dust over the finished app.&lt;/p&gt;
&lt;p&gt;A badly planned React app is still a badly planned React app.&lt;/p&gt;
&lt;p&gt;A well-designed app made with an app builder can be much better than a poorly designed app made with a coding agent.&lt;/p&gt;
&lt;p&gt;But coding agents generally give you a &lt;strong&gt;higher ceiling&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Imagine both tools can get you to level 7 fairly easily.&lt;/p&gt;
&lt;p&gt;The difference is that one road may continue to level 8, 9 and 10 without you having to fight the platform.&lt;/p&gt;
&lt;p&gt;That matters when the product becomes unusual.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Connecting other services&lt;/h2&gt;
&lt;p&gt;Modern apps almost always talk to other services.&lt;/p&gt;
&lt;p&gt;Examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stripe&lt;/li&gt;
&lt;li&gt;Supabase&lt;/li&gt;
&lt;li&gt;Firebase&lt;/li&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Google Maps&lt;/li&gt;
&lt;li&gt;Twilio&lt;/li&gt;
&lt;li&gt;Spotify&lt;/li&gt;
&lt;li&gt;weather services&lt;/li&gt;
&lt;li&gt;email providers&lt;/li&gt;
&lt;li&gt;analytics services&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;App builders often make the popular ones extremely easy.&lt;/p&gt;
&lt;p&gt;You might click a button and connect Supabase in minutes.&lt;/p&gt;
&lt;p&gt;That’s excellent.&lt;/p&gt;
&lt;p&gt;Coding agents become more attractive when you want something the builder doesn’t have a nice button for.&lt;/p&gt;
&lt;p&gt;If a service has an API or programming library, a coding agent can usually work with it.&lt;/p&gt;
&lt;p&gt;There are far fewer situations where you have to ask:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Does my builder support this?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Instead the question becomes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Does this service provide a way for software to connect to it?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If it does, there is usually a path.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;The biggest difference may actually be the UI&lt;/h2&gt;
&lt;p&gt;This is where coding agents start becoming really interesting.&lt;/p&gt;
&lt;p&gt;An app builder usually gives you some flexibility over the interface.&lt;/p&gt;
&lt;p&gt;But a normal software project can use an enormous number of UI libraries, animation systems and graphics tools.&lt;/p&gt;
&lt;p&gt;For example, a web project could use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Tailwind&lt;/li&gt;
&lt;li&gt;shadcn/ui&lt;/li&gt;
&lt;li&gt;Three.js&lt;/li&gt;
&lt;li&gt;PixiJS&lt;/li&gt;
&lt;li&gt;Rive&lt;/li&gt;
&lt;li&gt;Lottie&lt;/li&gt;
&lt;li&gt;Framer Motion&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You do not need to know what all of those are.&lt;/p&gt;
&lt;p&gt;The point is simply that your AI does.&lt;/p&gt;
&lt;p&gt;You can say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I want the home screen to feel more like an old MP3 player than a modern mobile app.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I want the buttons to physically move and snap into place when the user drags them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I want this section to have animated 3D objects in the background.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now the coding agent has a much bigger toolbox.&lt;/p&gt;
&lt;p&gt;This is why I would lean toward a coding agent when the &lt;strong&gt;look or interaction itself is part of the product&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Does a coding agent automatically give you more features?&lt;/h2&gt;
&lt;p&gt;Not necessarily.&lt;/p&gt;
&lt;p&gt;AI has favorite features.&lt;/p&gt;
&lt;p&gt;Give it a vague request for a habit app and it may happily add:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;streaks&lt;/li&gt;
&lt;li&gt;goals&lt;/li&gt;
&lt;li&gt;statistics&lt;/li&gt;
&lt;li&gt;reminders&lt;/li&gt;
&lt;li&gt;dark mode&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Give another AI the same request and you may get almost exactly the same list.&lt;/p&gt;
&lt;p&gt;That isn’t really an app-builder problem.&lt;/p&gt;
&lt;p&gt;It’s an AI problem.&lt;/p&gt;
&lt;p&gt;AI tends to produce the obvious answer unless you give it a reason not to.&lt;/p&gt;
&lt;p&gt;So if you want a richer or stranger app, you have to think about what makes it different.&lt;/p&gt;
&lt;p&gt;Maybe your habit app has no streaks at all.&lt;/p&gt;
&lt;p&gt;Maybe it behaves like a game.&lt;/p&gt;
&lt;p&gt;Maybe habits grow a virtual garden.&lt;/p&gt;
&lt;p&gt;Maybe there is no traditional dashboard.&lt;/p&gt;
&lt;p&gt;Maybe the entire interface is controlled through one screen.&lt;/p&gt;
&lt;p&gt;Those are product decisions.&lt;/p&gt;
&lt;p&gt;The AI can build them.&lt;/p&gt;
&lt;p&gt;It probably won’t invent the best ones for you.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;What about performance?&lt;/h2&gt;
&lt;p&gt;A coding agent does not automatically create faster software.&lt;/p&gt;
&lt;p&gt;A simple app-builder project can be extremely fast.&lt;/p&gt;
&lt;p&gt;A coding agent can also create a giant mess with seventeen libraries nobody needed.&lt;/p&gt;
&lt;p&gt;The advantage is &lt;strong&gt;control&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;With a coding agent, you can usually change more things if performance becomes a problem.&lt;/p&gt;
&lt;p&gt;You can replace libraries.&lt;/p&gt;
&lt;p&gt;Change how data loads.&lt;/p&gt;
&lt;p&gt;Compress images.&lt;/p&gt;
&lt;p&gt;Add caching.&lt;/p&gt;
&lt;p&gt;Profile slow code.&lt;/p&gt;
&lt;p&gt;Move work onto a server.&lt;/p&gt;
&lt;p&gt;Use native functionality.&lt;/p&gt;
&lt;p&gt;But unless your app actually has a performance problem, this probably shouldn’t decide which route you take.&lt;/p&gt;
&lt;p&gt;Most beginner apps are not being held back because React rendered a button three milliseconds slower.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;What should you build with if you choose a coding agent?&lt;/h2&gt;
&lt;p&gt;You do not need to spend six months researching programming languages.&lt;/p&gt;
&lt;p&gt;Here are some sensible starting points.&lt;/p&gt;
&lt;h3&gt;Web apps&lt;/h3&gt;
&lt;p&gt;Try:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TypeScript + React + Next.js&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is one of the biggest ecosystems in modern web development.&lt;/p&gt;
&lt;p&gt;There are libraries for almost everything.&lt;/p&gt;
&lt;p&gt;Supabase is also a beginner-friendly option for things like databases, accounts and file storage.&lt;/p&gt;
&lt;h3&gt;iPhone and Android apps&lt;/h3&gt;
&lt;p&gt;Try:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;React Native + Expo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can build for both platforms using mostly the same project.&lt;/p&gt;
&lt;p&gt;It also gives a coding agent an enormous amount of existing documentation and code to work with.&lt;/p&gt;
&lt;h3&gt;Games&lt;/h3&gt;
&lt;p&gt;Try:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Godot + GDScript&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Do not force a normal app framework to become a game engine.&lt;/p&gt;
&lt;p&gt;Godot already gives you graphics, physics, animation, sound, input and scene management.&lt;/p&gt;
&lt;h3&gt;AI, automation and data-heavy projects&lt;/h3&gt;
&lt;p&gt;Try:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Python has a huge ecosystem for AI, automation and data work.&lt;/p&gt;
&lt;p&gt;FastAPI is a popular way to turn Python code into a backend that other apps can communicate with.&lt;/p&gt;
&lt;h3&gt;Desktop apps&lt;/h3&gt;
&lt;p&gt;A beginner could start with:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TypeScript + Electron&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It lets you build Windows and Mac applications using technologies that are very similar to web development.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Which one would I choose?&lt;/h2&gt;
&lt;p&gt;For a normal first app, I would seriously consider an app builder.&lt;/p&gt;
&lt;p&gt;Especially if your goal is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have an idea and I want to see whether it works.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can get something in front of yourself very quickly.&lt;/p&gt;
&lt;p&gt;That matters.&lt;/p&gt;
&lt;p&gt;You may discover that your idea isn’t very good.&lt;/p&gt;
&lt;p&gt;Or you may discover that the small version is all you ever needed.&lt;/p&gt;
&lt;p&gt;There is no prize for building the most technically sophisticated todo app in history.&lt;/p&gt;
&lt;p&gt;But I would start looking at coding agents much earlier if your thought process sounds like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I want the app to work in a pretty unusual way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I care a lot about how it feels.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I want strange animations or custom interactions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I need to connect to uncommon services.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I want native phone features.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I already know this project is going to become large.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I don’t want my development environment deciding what technologies I can use.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is where the extra freedom starts becoming valuable.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;You can also start with one and move to the other&lt;/h2&gt;
&lt;p&gt;This may actually be the smartest route for a lot of people.&lt;/p&gt;
&lt;p&gt;Start in an app builder.&lt;/p&gt;
&lt;p&gt;Get the idea working.&lt;/p&gt;
&lt;p&gt;Connect it to GitHub early.&lt;/p&gt;
&lt;p&gt;Then keep using the builder for as long as it makes your life easier.&lt;/p&gt;
&lt;p&gt;If you eventually find yourself constantly trying to work around the platform, move the project to a coding agent.&lt;/p&gt;
&lt;p&gt;You don’t have to swear allegiance to one development philosophy.&lt;/p&gt;
&lt;p&gt;These are tools.&lt;/p&gt;
&lt;p&gt;Use the easiest tool until it stops being the easiest tool.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;The part that matters more than either tool&lt;/h2&gt;
&lt;p&gt;AI has made software development dramatically more accessible.&lt;/p&gt;
&lt;p&gt;But the biggest advantage still comes from knowing &lt;strong&gt;what you want to make&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Not knowing JavaScript.&lt;/p&gt;
&lt;p&gt;Not memorizing React.&lt;/p&gt;
&lt;p&gt;Not knowing fifty libraries.&lt;/p&gt;
&lt;p&gt;Knowing things like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;what should the first screen do?&lt;/li&gt;
&lt;li&gt;what shouldn’t the app do?&lt;/li&gt;
&lt;li&gt;what makes it different?&lt;/li&gt;
&lt;li&gt;what will the user actually care about?&lt;/li&gt;
&lt;li&gt;what should feel fast?&lt;/li&gt;
&lt;li&gt;what should feel fun?&lt;/li&gt;
&lt;li&gt;what can be removed?&lt;/li&gt;
&lt;li&gt;what does the app look like when it is truly finished?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An app builder can build the obvious version of your idea very quickly.&lt;/p&gt;
&lt;p&gt;A coding agent can give you far more freedom to escape that obvious version.&lt;/p&gt;
&lt;p&gt;But neither tool knows what your version should be until you start making those decisions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Choose the app builder when you want the shortest road to a working app.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Choose the coding agent when you care more about how far that road can eventually go.&lt;/strong&gt;&lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>How to Turn an App Idea Into a Buildable First Version | YCBT</title>
    <link href="https://youcanbuildtech.com/ai-development/turn-an-app-idea-into-a-buildable-first-version/" />
    <updated>2026-08-16T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/ai-development/turn-an-app-idea-into-a-buildable-first-version/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; AI development&lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;Planning your first build&lt;/p&gt;
    &lt;h1&gt;How to Turn an App Idea Into a Buildable First Version&lt;/h1&gt;
    &lt;p class=&quot;page-hero__lead&quot;&gt;Choose one person, one useful outcome or fun mechanic, and the smallest complete experience that delivers it.&lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-08-16&quot;&gt;August 16, 2026&lt;/time&gt;&lt;/span&gt;
  &lt;span&gt;Updated &lt;time datetime=&quot;2026-09-05&quot;&gt;September 5, 2026&lt;/time&gt;&lt;/span&gt;
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/Yoz8qy580c-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/Yoz8qy580c-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/Yoz8qy580c-1672.png&quot; alt=&quot;A light-bulb idea progressing through a wireframe and code into a finished mobile and desktop app&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
    &lt;p&gt;
      An app built with AI does not need to be simple, and it does not need to be advanced. It needs to satisfy a more basic premise: someone should find it useful or fun.
    &lt;/p&gt;
    &lt;p&gt;
      That person could be you, a customer, a colleague, a child, an older relative, or a particular group of people. The project might be a passion project, something you hope to sell, or a tool that helps a business save time or make money.
    &lt;/p&gt;
    &lt;p&gt;
      Your first version is the smallest version that lets you find out whether the central idea works. It is not every feature you may eventually want.
    &lt;/p&gt;

    &lt;blockquote&gt;A buildable first version gives one person one complete reason to use it.&lt;/blockquote&gt;

    &lt;h2&gt;Begin with the reason to use it&lt;/h2&gt;
    &lt;p&gt;
      Before choosing features or tools, finish one of these sentences:
    &lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;For an app:&lt;/strong&gt; This helps [a particular person] do [one useful thing].&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;For a game:&lt;/strong&gt; The player repeatedly [does one action] because [the challenge or result is fun].&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;
      “An app for local businesses” is still an area, not a buildable idea. “A cleaner can open today’s jobs and mark each room complete” gives the project a person, an action, and a useful result.
    &lt;/p&gt;
    &lt;p&gt;
      “A fun puzzle game” is also too open. “The player combines matching ingredients before the board fills” identifies the action and the pressure that makes it a game.
    &lt;/p&gt;

    &lt;h2&gt;For business apps, solve one problem with one core workflow&lt;/h2&gt;
    &lt;p&gt;
      Focused business tools are often easier to explain, demonstrate, and sell. The first version should take someone from a recognizable problem to a useful result without trying to run their entire business.
    &lt;/p&gt;
    &lt;p&gt;
      The ideas below represent familiar needs that businesses already use software to solve. That does not guarantee customers. It gives you a grounded place to begin asking who has the problem and what the smallest useful solution would be.
    &lt;/p&gt;

    &lt;div class=&quot;comparison-summary&quot;&gt;
      &lt;table&gt;
        &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Idea&lt;/th&gt;&lt;th&gt;A focused first version&lt;/th&gt;&lt;th&gt;Leave until later&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
        &lt;tbody&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Quote maker&lt;/th&gt;&lt;td&gt;Add a customer and a few services, then create a clear quote.&lt;/td&gt;&lt;td&gt;Payments, accounting integrations, and a complete customer database.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Job checklist&lt;/th&gt;&lt;td&gt;Open today’s job, complete its tasks, and record that it is finished.&lt;/td&gt;&lt;td&gt;Staff scheduling, payroll, route planning, and performance reports.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Stock counter&lt;/th&gt;&lt;td&gt;Record an item’s quantity and show which items are running low.&lt;/td&gt;&lt;td&gt;Supplier ordering, barcode hardware, and multiple warehouses.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Client intake tool&lt;/th&gt;&lt;td&gt;Collect the information needed before one type of appointment or job.&lt;/td&gt;&lt;td&gt;A general-purpose form builder and every possible client journey.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Expense or mileage log&lt;/th&gt;&lt;td&gt;Add an entry, see the total, and export a simple record.&lt;/td&gt;&lt;td&gt;Tax filing, bank connections, and financial advice.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Follow-up organizer&lt;/th&gt;&lt;td&gt;Record who needs a reply and mark the follow-up complete.&lt;/td&gt;&lt;td&gt;A complete sales and marketing platform.&lt;/td&gt;&lt;/tr&gt;
        &lt;/tbody&gt;
      &lt;/table&gt;
    &lt;/div&gt;

    &lt;p&gt;
      Notice what makes each version small: it completes the central workflow. A quote maker that creates a usable quote is a product someone can judge. A quote maker with a login screen, settings page, and unfinished quote system is not.
    &lt;/p&gt;

    &lt;h2&gt;For games, protect the core mechanic&lt;/h2&gt;
    &lt;p&gt;
      A game can follow the same principle. One understandable mechanic can supply enough interest for a complete game when the feedback, challenge, and progression support it.
    &lt;/p&gt;
    &lt;p&gt;
      &lt;a href=&quot;https://www.nytimes.com/games/wordle/index.html&quot;&gt;Wordle&lt;/a&gt; asks the player to guess one word with limited attempts. &lt;a href=&quot;https://play2048.co/&quot;&gt;2048&lt;/a&gt; asks the player to slide and combine matching tiles. &lt;a href=&quot;https://www.crossyroad.com/&quot;&gt;Crossy Road&lt;/a&gt; asks the player to keep moving forward while avoiding hazards. These finished games contain far more polish than those descriptions suggest, but their central actions remain easy to explain.
    &lt;/p&gt;
    &lt;p&gt;
      For a first game, define the repeatable action before characters, shops, achievements, story chapters, or multiplayer. You might sort objects before time runs out, guide one character through changing lanes, connect shapes to clear space, or defend one position against increasingly difficult waves.
    &lt;/p&gt;

    &lt;blockquote&gt;If the fun cannot yet be described in one sentence, adding more features will not make the first version clearer.&lt;/blockquote&gt;

    &lt;h2&gt;Decide where the first version will be used&lt;/h2&gt;
    &lt;p&gt;
      Your first version also needs a home. Will someone open it through a web link, or install it on a phone?
    &lt;/p&gt;
    &lt;p&gt;
      A web app or web game is often the quickest way to test an idea. Modern browsers such as Chrome, Edge, Firefox, and Safari already know how to display HTML and CSS and run JavaScript. You can share a link without asking someone to install an app or visit an app store.
    &lt;/p&gt;
    &lt;p&gt;
      The browser does not contain every development tool your project may need. An app with accounts, saved information, payments, or other online services still needs those parts to be created and hosted. The advantage is that the person using the finished version already has the environment needed to open it.
    &lt;/p&gt;
    &lt;p&gt;
      Begin with mobile when the idea depends on being installed on a phone or on phone features such as the camera, location, notifications, or sensors. Mobile also introduces more setup, device testing, store requirements, and publishing decisions. Those steps are achievable, but they should be part of the choice rather than a surprise at the end.
    &lt;/p&gt;
    &lt;p&gt;
      Visual builders such as &lt;a href=&quot;https://youcanbuildtech.com/comparisons/adalo-vs-thunkable/&quot;&gt;Adalo and Thunkable&lt;/a&gt; can simplify some mobile projects. AI builders including &lt;a href=&quot;https://support.bolt.new/building/using-bolt/browser-support&quot;&gt;Bolt&lt;/a&gt; and &lt;a href=&quot;https://docs.replit.com/build/mobile-app&quot;&gt;Replit Agent&lt;/a&gt; also support mobile workflows. For more control, a coding agent can work on a React Native project, often with &lt;a href=&quot;https://docs.expo.dev/get-started/create-a-project/&quot;&gt;Expo&lt;/a&gt; providing a more approachable route to Android, iOS, and web. Games have their own choices; YCBT’s &lt;a href=&quot;https://youcanbuildtech.com/comparisons/game-engines-for-solo-developers/&quot;&gt;game-engine comparison&lt;/a&gt; explains how Godot, GDevelop, Construct, and GameMaker differ.
    &lt;/p&gt;
    &lt;p&gt;
      Do not choose mobile only because it sounds more serious, and do not choose the web only because it is quicker. Choose the place where the intended person would naturally use the idea.
    &lt;/p&gt;

    &lt;h2&gt;Turn the idea into a short build brief&lt;/h2&gt;
    &lt;p&gt;
      You do not need a long business plan or technical specification. Write these eight decisions in plain language:
    &lt;/p&gt;
    &lt;ol&gt;
      &lt;li&gt;&lt;strong&gt;Person:&lt;/strong&gt; Who is the first version for?&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; What useful result or fun experience do they want?&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Core action:&lt;/strong&gt; What is the main thing they do?&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Starting point:&lt;/strong&gt; What information, choice, or game state do they begin with?&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Result:&lt;/strong&gt; What do they see, receive, complete, or achieve?&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Home:&lt;/strong&gt; Is the first version a web app, mobile app, web game, or mobile game?&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Success check:&lt;/strong&gt; What must you be able to do before calling the first version complete?&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Not now:&lt;/strong&gt; Which tempting features are deliberately postponed?&lt;/li&gt;
    &lt;/ol&gt;
    &lt;p&gt;
      The success check makes the idea testable. “The app is complete when a shop owner can add five products and immediately see which ones are low” is clearer than “build an inventory platform.” “The game is complete when a player can start, understand the controls, lose, and immediately try again” is clearer than “make an addictive arcade game.”
    &lt;/p&gt;

    &lt;h2&gt;Use a few different ideas to test your thinking&lt;/h2&gt;
    &lt;p&gt;
      A personal project might only need to help you record a daily practice and see your recent history. A business tool might help a café manager record wasted stock at the end of each day. A children’s game might ask the player to match an animal to its habitat and keep a simple score.
    &lt;/p&gt;
    &lt;p&gt;
      These ideas have different audiences and purposes, but the thought process is the same. Identify the person, protect the core experience, and postpone everything that does not need to exist for that experience to work.
    &lt;/p&gt;

    &lt;h2&gt;Give the brief to the way you have chosen to build&lt;/h2&gt;
    &lt;p&gt;
      If you are using an AI app builder, begin with the short brief and ask it to create only that first experience. If you are using a coding agent, you can develop the brief with a chat assistant first and then give it to an agent such as &lt;a href=&quot;https://code.claude.com/docs/en/overview&quot;&gt;Claude Code&lt;/a&gt;, &lt;a href=&quot;https://learn.chatgpt.com/docs/codex/cli&quot;&gt;OpenAI Codex&lt;/a&gt;, or &lt;a href=&quot;https://developers.google.com/gemini-code-assist/docs/gemini-cli&quot;&gt;Gemini CLI&lt;/a&gt;. You can also plan and build with the same agent.
    &lt;/p&gt;
    &lt;p&gt;
      That planning-to-agent handoff is the workflow we used for our &lt;a href=&quot;https://youcanbuildtech.com/build-notes/how-we-built-our-mp3-player-with-ai/&quot;&gt;AI-assisted MP3 player build&lt;/a&gt;, where ChatGPT helped us define the features before Codex implemented the React Native app.
    &lt;/p&gt;
    &lt;p&gt;
      Tell the AI what the product should let someone do, not merely what pages it should contain. Ask it to restate the proposed first version before it starts. If the restatement adds accounts, social features, subscriptions, dashboards, or other systems you did not request, remove them unless the central experience truly depends on them.
    &lt;/p&gt;
    &lt;p&gt;
      If you have not chosen your workflow yet, compare an &lt;a href=&quot;https://youcanbuildtech.com/comparisons/ai-app-builder-vs-coding-agent/&quot;&gt;AI app builder with a coding agent&lt;/a&gt;. The right starting point depends on how much setup you want handled and how much control the project needs.
    &lt;/p&gt;

    &lt;h2&gt;Your first version should answer one question&lt;/h2&gt;
    &lt;p&gt;
      Can this idea give its intended person one useful or fun experience?
    &lt;/p&gt;
    &lt;p&gt;
      You may eventually build something large, advanced, and commercially successful. You do not need to prove that entire future now. Create enough of the idea to use it, judge it honestly, and learn what deserves to come next.
    &lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;Platform capabilities and official documentation links checked August 16, 2026. Builder features, mobile support, and publishing requirements can change.&lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>What Is GitHub and Why Does It Matter for AI-Built Apps? | YCBT</title>
    <link href="https://youcanbuildtech.com/concepts/what-is-github/" />
    <updated>2026-08-12T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/concepts/what-is-github/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; Technical concepts &amp;rarr; GitHub&lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;Technical concepts&lt;/p&gt;
    &lt;h1&gt;What Is GitHub and Why Does It Matter for AI-Built Apps?&lt;/h1&gt;
    &lt;p class=&quot;page-hero__lead&quot;&gt;GitHub gives the code and files behind your app an online home with a recorded history of changes.&lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-08-12&quot;&gt;August 12, 2026&lt;/time&gt;&lt;/span&gt;
  
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/gWEeM7fUmE-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/gWEeM7fUmE-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/gWEeM7fUmE-1672.png&quot; alt=&quot;The GitHub logo connecting code repositories, version branches, and collaborating developers&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
    &lt;p&gt;
      When an AI app builder connects to GitHub, it can send your project to a place that exists beyond the builder itself. A coding agent can also work with a project stored there.
    &lt;/p&gt;
    &lt;p&gt;
      This gives you more ways to continue, recover, or move the project later. It does not automatically give you every part of the working app, but it is an important piece of keeping control.
    &lt;/p&gt;

    &lt;h2&gt;A repository is the home for a software project&lt;/h2&gt;
    &lt;p&gt;
      GitHub stores software projects in &lt;strong&gt;repositories&lt;/strong&gt;. A repository usually contains the code, images, configuration, and other files needed to build the software. It can also record how those files have changed.
    &lt;/p&gt;
    &lt;p&gt;
      You do not need to think of a repository as something mysterious. It is the project&#39;s working files plus a useful history. GitHub&#39;s &lt;a href=&quot;https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories&quot;&gt;repository documentation&lt;/a&gt; describes it as a place containing a project&#39;s code, files, and revision history.
    &lt;/p&gt;

    &lt;h2&gt;Git and GitHub are related, but they are not the same thing&lt;/h2&gt;
    &lt;p&gt;
      &lt;strong&gt;Git&lt;/strong&gt; is the system that records changes to files. &lt;strong&gt;GitHub&lt;/strong&gt; hosts Git repositories online and adds tools for accessing, sharing, reviewing, and working with them.
    &lt;/p&gt;
    &lt;p&gt;
      A recorded group of changes is called a &lt;strong&gt;commit&lt;/strong&gt;. You can think of a commit as a named checkpoint: it records what changed, when it changed, and who made the change. GitHub provides a fuller explanation in its &lt;a href=&quot;https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits&quot;&gt;guide to commits&lt;/a&gt;.
    &lt;/p&gt;
    &lt;p&gt;
      You do not need to learn every Git command before using GitHub. For a first AI-built project, understanding &lt;em&gt;repository&lt;/em&gt;, &lt;em&gt;commit&lt;/em&gt;, and &lt;em&gt;clone&lt;/em&gt; is enough to make better decisions.
    &lt;/p&gt;

    &lt;h2&gt;Change history makes AI experimentation easier to control&lt;/h2&gt;
    &lt;p&gt;
      An AI tool can change several connected files in one request. That speed is useful, but a later change can also break something that worked before.
    &lt;/p&gt;
    &lt;p&gt;
      If the working versions were committed and sent to GitHub, you have checkpoints to inspect or return to. The important qualification is that GitHub can only preserve changes that actually reach the repository. Connecting GitHub once is not enough if the builder stops synchronizing later work.
    &lt;/p&gt;

    &lt;blockquote&gt;GitHub is useful because it gives a fast-moving project a visible history—not because you must become a Git expert before building.&lt;/blockquote&gt;

    &lt;h2&gt;GitHub gives the code another way forward&lt;/h2&gt;
    &lt;p&gt;
      A GitHub repository can be copied to a computer through a process called &lt;strong&gt;cloning&lt;/strong&gt;. GitHub says a clone includes the repository data available at that time, including the versions of its files and folders. See GitHub&#39;s &lt;a href=&quot;https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository&quot;&gt;cloning documentation&lt;/a&gt;.
    &lt;/p&gt;
    &lt;p&gt;
      That matters when you begin in an AI app builder. If the platform sends a usable project to a repository you control, you may be able to open it elsewhere, give it to a coding agent, or continue developing it with different tools.
    &lt;/p&gt;
    &lt;p&gt;
      The word &lt;em&gt;usable&lt;/em&gt; matters. Platforms connect to GitHub in different ways, and an exported project may still depend on services provided by the original platform. A GitHub connection creates options; it does not guarantee that moving the complete app will be effortless.
    &lt;/p&gt;

    &lt;h2&gt;GitHub does not automatically contain your entire app&lt;/h2&gt;
    &lt;p&gt;
      A working app can include more than code. Its database, user accounts, uploaded files, secret keys, domain, analytics, and hosting may live in other services. Those parts are not automatically moved just because the code appears on GitHub.
    &lt;/p&gt;
    &lt;p&gt;
      GitHub is therefore not proof that you own or can move the complete system. It gives you control over the project material stored in the repository. You still need to know where the app&#39;s data and online services live, who controls those accounts, and what can be exported.
    &lt;/p&gt;

    &lt;h2&gt;What should a beginner do?&lt;/h2&gt;
    &lt;p&gt;
      If your AI app builder supports GitHub, connect a repository you control early in the project. Then open the repository and confirm that new changes continue appearing as the app develops.
    &lt;/p&gt;
    &lt;p&gt;
      Keep the repository private unless you intentionally want to share the source code. GitHub allows repositories to be public or private; its &lt;a href=&quot;https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories#about-repository-visibility&quot;&gt;visibility documentation&lt;/a&gt; explains who can access each type.
    &lt;/p&gt;
    &lt;p&gt;
      You do not need to master branches, pull requests, or advanced Git workflows yet. Start by knowing where your repository is, confirming that it receives changes, and keeping access to the account that owns it.
    &lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;GitHub concepts and documentation checked August 12, 2026. AI-builder integrations and export behavior can change by platform.&lt;/p&gt;

    &lt;p&gt;
      Still deciding how you want to build? Compare an &lt;a href=&quot;https://youcanbuildtech.com/comparisons/ai-app-builder-vs-coding-agent/&quot;&gt;AI app builder with a coding agent&lt;/a&gt;, including the tradeoff between an easier starting point and greater control.
    &lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>AI App Builder vs Coding Agent: Which Should You Use? | YCBT</title>
    <link href="https://youcanbuildtech.com/comparisons/ai-app-builder-vs-coding-agent/" />
    <updated>2026-08-10T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/comparisons/ai-app-builder-vs-coding-agent/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; &lt;a href=&quot;https://youcanbuildtech.com/comparisons/&quot;&gt;Comparisons&lt;/a&gt; &amp;rarr; AI app builder vs coding agent&lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;Choosing how to build&lt;/p&gt;
    &lt;h1&gt;AI App Builder vs Coding Agent: Which Should You Use?&lt;/h1&gt;
    &lt;p class=&quot;page-hero__lead&quot;&gt;Choose an AI app builder when you want the easiest route from an idea to a working app. Choose a coding agent when you want more control over how the app is built and where it can go later.&lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-08-10&quot;&gt;August 10, 2026&lt;/time&gt;&lt;/span&gt;
  
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/pq8U30QZN0-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/pq8U30QZN0-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/pq8U30QZN0-1672.png&quot; alt=&quot;A visual app builder and an AI coding agent shown as two paths for building software&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
    &lt;h2&gt;The short answer&lt;/h2&gt;
    &lt;p&gt;
      &lt;strong&gt;AI app builders&lt;/strong&gt; give you one place to describe, preview, and publish an app. They handle more of the setup for you.
    &lt;/p&gt;
    &lt;p&gt;
      &lt;strong&gt;Coding agents&lt;/strong&gt; work directly with the files behind an app. It can change those files, run the app, and check its work.
    &lt;/p&gt;
    &lt;p&gt;
      AI app builders are well suited to landing pages, portfolios, booking tools, directories, dashboards, simple customer portals, and first versions of online products.&lt;/p&gt;
      &lt;p&gt; Coding agents are especially useful for changing an existing project, building desktop software, creating more advanced mobile apps, or making something that needs unusual features.
    &lt;/p&gt;
    &lt;p&gt;
      Both are genuine ways to build. You do not need to become a programmer before choosing either one.
    &lt;/p&gt;

    &lt;div class=&quot;comparison-summary&quot;&gt;
      &lt;table&gt;
        &lt;thead&gt;&lt;tr&gt;&lt;th&gt;What you want to build&lt;/th&gt;&lt;th&gt;Best starting point&lt;/th&gt;&lt;th&gt;Why&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
        &lt;tbody&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Website&lt;/th&gt;&lt;td&gt;AI app builder&lt;/td&gt;&lt;td&gt;The quickest route to a polished page you can put online.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Web app&lt;/th&gt;&lt;td&gt;AI app builder for most first projects&lt;/td&gt;&lt;td&gt;Ideal for tools, dashboards, booking systems, and other apps used in a browser.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;SaaS product&lt;/th&gt;&lt;td&gt;AI app builder for the first version; coding agent as complexity grows&lt;/td&gt;&lt;td&gt;A SaaS product is software people use online, often through a subscription. Start simply, then move closer to the code if the product needs more control.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Mobile app&lt;/th&gt;&lt;td&gt;AI app builder for a simple first version; coding agent for a more advanced app&lt;/td&gt;&lt;td&gt;Some builders support phone apps. A coding agent offers more freedom when app-store publishing or special phone features become important.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Desktop app&lt;/th&gt;&lt;td&gt;Coding agent&lt;/td&gt;&lt;td&gt;Software installed on Windows or Mac usually needs tools outside the normal app-builder path.&lt;/td&gt;&lt;/tr&gt;
        &lt;/tbody&gt;
      &lt;/table&gt;
    &lt;/div&gt;

    &lt;p&gt;
      Mobile support is improving quickly. For example, &lt;a href=&quot;https://docs.replit.com/build/mobile-app&quot;&gt;Replit Agent&lt;/a&gt; and &lt;a href=&quot;https://support.bolt.new/building/using-bolt/browser-support&quot;&gt;Bolt&lt;/a&gt; can create mobile projects. Always check that the builder supports the kind of app you want before committing to it.
    &lt;/p&gt;

    &lt;h2&gt;The real difference is the environment around the AI&lt;/h2&gt;
    &lt;p&gt;
      Both approaches create real software and can write code—the instructions that tell an app what to do. The main difference is what they provide around the AI.
    &lt;/p&gt;
    &lt;p&gt;
      An AI app builder brings the chat, working preview, stored information, user sign-ins, and publishing tools into one place. A coding agent works more directly with a software project: the files, images, settings, and instructions that make up an app.
    &lt;/p&gt;
    &lt;p&gt;
      The categories overlap, and both are becoming easier to use. Think of an app builder as giving you more help around the project, while a coding agent gives you more freedom inside it.
    &lt;/p&gt;

    &lt;h2&gt;Choose an AI app builder when you want to reach a working result quickly&lt;/h2&gt;
    &lt;p&gt;
      An AI app builder handles many early decisions before you ever need to think about them. You describe the idea, see it working, and improve it one request at a time.
    &lt;/p&gt;
    &lt;p&gt;An AI app builder is a particularly good fit when:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;you have an idea but no existing app&lt;/li&gt;
      &lt;li&gt;you want to create a website or an app that runs in a browser&lt;/li&gt;
      &lt;li&gt;seeing a working version will help you decide what to build&lt;/li&gt;
      &lt;li&gt;you want one platform to handle most of the setup&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;
      Platforms such as &lt;a href=&quot;https://docs.lovable.dev/introduction/welcome&quot;&gt;Lovable&lt;/a&gt; and &lt;a href=&quot;https://support.bolt.new/get-started/intro-bolt&quot;&gt;Bolt&lt;/a&gt; let you describe a product in everyday language and then work with a functioning version of it. They can bring the app, its stored information, and the tools for putting it online into one place.
    &lt;/p&gt;
    &lt;p&gt;
      This is a friendly way to begin. If the project later needs something the platform cannot provide, you can decide whether to move it or continue with a coding agent.
    &lt;/p&gt;

    &lt;h2&gt;Choose a coding agent when control and flexibility matter more&lt;/h2&gt;
    &lt;p&gt;
      A coding agent is a good choice when you want the AI to work directly with the project. You gain more freedom without having to write every line yourself.
    &lt;/p&gt;
    &lt;p&gt;It is a good fit when:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;you already have an app or website&lt;/li&gt;
      &lt;li&gt;your idea has unusual requirements&lt;/li&gt;
      &lt;li&gt;you want direct access to the project’s files&lt;/li&gt;
      &lt;li&gt;you may want to move the project between different tools&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;
      Tools such as &lt;a href=&quot;https://code.claude.com/docs/en/desktop&quot;&gt;Claude Code&lt;/a&gt; and &lt;a href=&quot;https://developers.google.com/gemini-code-assist/docs/gemini-cli&quot;&gt;Gemini CLI&lt;/a&gt; can read files, make changes, run the app, and check their work.
    &lt;/p&gt;
    &lt;p&gt;
      You may meet unfamiliar folders, settings, or tools, but you can learn them as you go. You Can Build Tech will be making step-by-step videos showing how to set up coding agents and their working environments on your computer. You will not be expected to figure out the setup alone.
    &lt;/p&gt;

    &lt;h2&gt;An app builder is easier at the beginning—not automatically easier forever&lt;/h2&gt;
    &lt;p&gt;
      An AI app builder usually makes the first steps easier. A coding agent often makes it easier to take the project in a new direction later.
    &lt;/p&gt;
    &lt;p&gt;
      If you are still discovering your idea, let an app builder remove the early setup. If you already know the project needs something unusual, a coding agent may give you the freedom you need from the start.
    &lt;/p&gt;
    &lt;p&gt;
      There is no wrong choice here. You are choosing where you want the extra help.
    &lt;/p&gt;

    &lt;blockquote&gt;Do you want more help getting started, or more freedom over where the project can go?&lt;/blockquote&gt;

    &lt;h2&gt;Owning the code is not the whole ownership question&lt;/h2&gt;
    &lt;p&gt;
      Many AI app builders let you send your code to &lt;strong&gt;GitHub&lt;/strong&gt;, an online place that keeps your project’s files and records how they change. This can make it easier to work on the project outside the original builder.
    &lt;/p&gt;
    &lt;p&gt;
      If GitHub is new to you, start with &lt;a href=&quot;https://youcanbuildtech.com/concepts/what-is-github/&quot;&gt;what GitHub is and why it matters for an AI-built app&lt;/a&gt;. The important distinction is that a repository can preserve your code without automatically containing your database, user accounts, hosting, or every other part of the working app.
    &lt;/p&gt;
    &lt;p&gt;
      Bolt says a project connected to GitHub can be worked on outside Bolt and published using other services. With v0, the connected GitHub copy becomes the main copy of the project. See the official &lt;a href=&quot;https://support.bolt.new/integrations/git&quot;&gt;Bolt GitHub documentation&lt;/a&gt; and &lt;a href=&quot;https://v0.app/docs/github&quot;&gt;v0 GitHub documentation&lt;/a&gt;.
    &lt;/p&gt;
    &lt;p&gt;
      Code is only one part of a working app. Its saved information, user accounts, uploaded files, web address, and online services may live elsewhere. Before choosing a builder, check what you can take with you if you leave. You do not need to fear using a platform; you simply want to know that your successful project has somewhere to go next.
    &lt;/p&gt;

    &lt;h2&gt;YCBT’s recommendation&lt;/h2&gt;
    &lt;p&gt;
      If this is your first AI-built product and it is a website or a fairly normal web app, begin with an AI app builder that can connect the project to GitHub.
    &lt;/p&gt;
    &lt;p&gt;
      You are likely to see a result sooner, and keeping the code on GitHub gives you more options later. Make that connection early.
    &lt;/p&gt;
    &lt;p&gt;
      Begin with a coding agent when you already have a project, want to build desktop software, or know that your idea needs more freedom.
    &lt;/p&gt;
    &lt;p&gt;
      Whichever route you choose, start with one small version you can use and check. You can always learn another tool later. The best choice is the one that helps you begin building with confidence today.
    &lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;Product capabilities and official documentation checked August 10, 2026. Features, supported technologies, and plan restrictions can change.&lt;/p&gt;

    &lt;p&gt;
      Once you have chosen how to build, the next step is to &lt;a href=&quot;https://youcanbuildtech.com/ai-development/turn-an-app-idea-into-a-buildable-first-version/&quot;&gt;turn your app idea into a focused first version&lt;/a&gt; that you can use and check.
    &lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>What Is AI Coding? A Beginner&#39;s Introduction | YCBT</title>
    <link href="https://youcanbuildtech.com/ai-coding/what-is-ai-coding/" />
    <updated>2026-08-03T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/ai-coding/what-is-ai-coding/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; AI coding&lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;AI coding fundamentals&lt;/p&gt;
    &lt;h1&gt;What Is AI Coding?&lt;/h1&gt;
    &lt;p class=&quot;page-hero__lead&quot;&gt;AI coding means using artificial intelligence to help understand, create, and change software.&lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-08-03&quot;&gt;August 3, 2026&lt;/time&gt;&lt;/span&gt;
  &lt;span&gt;Updated &lt;time datetime=&quot;2026-08-10&quot;&gt;August 10, 2026&lt;/time&gt;&lt;/span&gt;
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/H0Na-_8VIr-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/H0Na-_8VIr-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/H0Na-_8VIr-1672.png&quot; alt=&quot;An AI processor connecting code, website, mobile app, and analytics interfaces&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
    &lt;p&gt;
      You describe what you want in ordinary language, and an AI tool helps turn that intention into code. It may explain something, suggest a small change, create files, or work through several steps of a larger project.
    &lt;/p&gt;

    &lt;blockquote&gt;The important part is that you are still building software.&lt;/blockquote&gt;

    &lt;p&gt;
      The project still contains code, files, logic, data, and technical decisions. AI changes how you work with those things; it does not make the underlying system disappear.
    &lt;/p&gt;

    &lt;h2&gt;What AI coding can help you do&lt;/h2&gt;
    &lt;p&gt;
      AI coding can help create websites, apps, games, scripts, automations, and other software. It can also explain or change a project that already exists.
    &lt;/p&gt;
    &lt;p&gt;
      The process is usually iterative. You describe the result, inspect what the AI produces, explain what is missing or incorrect, and continue from there. A clearer goal gives the AI a clearer target, but the first result may still be incomplete.
    &lt;/p&gt;
    &lt;p&gt;
      Some AI tools suggest code while a programmer types. Others can explain an error, describe how existing code works, or produce a small piece of code that someone adds to a project.
    &lt;/p&gt;
    &lt;p&gt;
      Newer tools can inspect a complete project, make connected changes, run the software, and respond to problems they find. The human builder gives the direction and checks the result.
    &lt;/p&gt;

    &lt;h2&gt;Do you need to know programming?&lt;/h2&gt;
    &lt;p&gt;
      You do not need to master a programming language before beginning with AI coding. You can ask for a change without knowing the exact syntax required to create it.
    &lt;/p&gt;
    &lt;p&gt;
      Technical understanding still helps. You might understand that an app stores information in a database without knowing how to build that database yourself. That understanding helps you describe what you want, recognize misunderstandings, and make better decisions.
    &lt;/p&gt;
    &lt;p&gt;
      You can learn the concepts your project needs as you encounter them instead of studying the entire field before you begin.
    &lt;/p&gt;

    &lt;h2&gt;What you still control&lt;/h2&gt;
    &lt;p&gt;
      AI can implement a feature, but it does not decide whether that feature should exist. The human builder still decides what to make, who it is for, how it should behave, and whether the result is useful.
    &lt;/p&gt;
    &lt;p&gt;
      AI can also produce something that looks convincing but behaves incorrectly. You need to run the product, use it, and check whether it does what you intended. You do not have to understand every generated line to judge the result by what it actually does.
    &lt;/p&gt;

    &lt;h2&gt;Where to begin&lt;/h2&gt;
    &lt;p&gt;
      Start with something small, visible, and easy to check. The first goal is not to build an entire business from one prompt. It is to experience the basic relationship: you describe an intention, the AI helps implement it, and you judge the result.
    &lt;/p&gt;
    &lt;p&gt;
      Once you have made one working change, the process becomes much easier to understand. You can make the next request, learn the next concept, and continue building from there.
    &lt;/p&gt;

    &lt;h2&gt;Coding agents work inside a software project&lt;/h2&gt;
    &lt;p&gt;
      A coding agent can work directly with a project and its development tools. It can read and edit files, run terminal commands, test changes, and continue through multiple steps toward a stated goal. This is often called &lt;strong&gt;agentic coding&lt;/strong&gt;.
    &lt;/p&gt;
    &lt;p&gt;
      For example, you might ask a coding agent to add account settings, &lt;a href=&quot;https://youcanbuildtech.com/ai-development/what-is-debugging/&quot;&gt;find the cause of an error&lt;/a&gt;, or make an existing website work better on phones. The agent works on the codebase while you describe the outcome and try the result.
    &lt;/p&gt;

    &lt;h3&gt;Examples of coding agents&lt;/h3&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://code.claude.com/docs/en/overview&quot;&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/a&gt; can read a codebase, edit files, run commands, and work across development tools.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://learn.chatgpt.com/docs/codex/cli&quot;&gt;&lt;strong&gt;OpenAI Codex&lt;/strong&gt;&lt;/a&gt; can help understand codebases, build and test features, fix bugs, and review changes.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://developers.google.com/gemini-code-assist/docs/gemini-cli&quot;&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/a&gt; is Google&#39;s open-source terminal agent for tasks such as fixing bugs, creating features, and improving tests.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;
      This brings you closer to folders, dependencies, commands, and other development concepts. You do not need to understand them all before beginning; learn the concepts your project uses as it grows.
    &lt;/p&gt;

    &lt;h2&gt;AI app builders provide a place to build&lt;/h2&gt;
    &lt;p&gt;
      An AI app builder gives you a managed environment for creating an app or website. You describe the product, watch a working preview appear, and request changes through chat or visual controls. The platform handles more of the initial setup and may connect services such as databases, user accounts, and hosting.
    &lt;/p&gt;
    &lt;p&gt;
      This can make the first result feel immediate because the code, preview, and publishing tools are brought together. The software still has a technical structure, even when the builder keeps much of that structure out of sight. Each platform also differs in how easily you can edit, export, host, or move the project later.
    &lt;/p&gt;

    &lt;h3&gt;Examples of AI app builders&lt;/h3&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://docs.lovable.dev/introduction/welcome&quot;&gt;&lt;strong&gt;Lovable&lt;/strong&gt;&lt;/a&gt; builds full-stack web applications from natural-language instructions and provides editable code.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://support.bolt.new/get-started/intro-bolt&quot;&gt;&lt;strong&gt;Bolt&lt;/strong&gt;&lt;/a&gt; provides a browser-based environment for building and publishing websites, web apps, and mobile apps.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://docs.replit.com/learn/build-with-agent&quot;&gt;&lt;strong&gt;Replit Agent&lt;/strong&gt;&lt;/a&gt; turns ideas into software inside Replit&#39;s hosted development and publishing environment.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://v0.app/docs&quot;&gt;&lt;strong&gt;v0&lt;/strong&gt;&lt;/a&gt; creates real code and full-stack applications with previews and a direct path to deployment on Vercel.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;
      Some app builders include their own agents, code editors, and terminal tools. Their defining experience is still the integrated platform: you begin with an idea and shape the working product in one place.
    &lt;/p&gt;

    &lt;blockquote&gt;In plain language: a coding agent works with a software project, while an AI app builder gives you a managed place to create one.&lt;/blockquote&gt;

    &lt;p class=&quot;source-note&quot;&gt;Product descriptions and official documentation links checked August 5, 2026.&lt;/p&gt;

    &lt;p&gt;
      See what early research suggests about the leverage AI gives &lt;a href=&quot;https://youcanbuildtech.com/studies/small-developers-already-dominated-the-app-store-now-they-have-ai/&quot;&gt;small App Store developers&lt;/a&gt;.
    &lt;/p&gt;

    &lt;p&gt;
      Ready to choose a starting point? Compare an &lt;a href=&quot;https://youcanbuildtech.com/comparisons/ai-app-builder-vs-coding-agent/&quot;&gt;AI app builder with a coding agent&lt;/a&gt; and find the approach that fits your project.
    &lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>Why YCBT Is Free—and What We Believe About Learning to Code | YouCanBuildTech</title>
    <link href="https://youcanbuildtech.com/about/why-ycbt-is-free/" />
    <updated>2026-01-01T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/about/why-ycbt-is-free/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;
    &lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; &lt;a href=&quot;https://youcanbuildtech.com/about/&quot;&gt;About&lt;/a&gt; &amp;rarr; Why YCBT is free
  &lt;/nav&gt;

  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;YCBT philosophy&lt;/p&gt;
    &lt;h1&gt;Why YCBT Is Free—and What We Believe About Learning to Code&lt;/h1&gt;
    
    &lt;p class=&quot;page-hero__lead&quot;&gt;
      Coding should be free for a simple reason: &lt;strong&gt;typing is free&lt;/strong&gt;, and the ability to use a computer to its full potential shouldn’t require a half-year salary. In a world where AI tools make building more accessible than ever, we should be expanding access—not gatekeeping it behind expensive funnels.
    &lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2026-01&quot;&gt;January 2026&lt;/time&gt;&lt;/span&gt;
  &lt;span&gt;Updated &lt;time datetime=&quot;2026-07-29&quot;&gt;July 29, 2026&lt;/time&gt;&lt;/span&gt;
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/zBwVnBaQNx-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/zBwVnBaQNx-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/zBwVnBaQNx-1672.png&quot; alt=&quot;An open glowing doorway leading along a path toward coding and technology&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
    &lt;h2&gt;If you own a computer, you should be able to use it fully&lt;/h2&gt;
    &lt;p&gt;
      A computer is not just a consumption device. It’s a general-purpose machine—one of the most powerful tools humans have ever created. If you own a computer, you own the right to explore what it can do: build tools, automate tasks, create apps, and understand the systems you rely on.
    &lt;/p&gt;
    &lt;p&gt;
      Historically, that’s been the magic of computing: curiosity, tinkering, experimentation, and a culture of sharing. The web itself grew because people could learn, publish, and collaborate without asking permission.
    &lt;/p&gt;

    &lt;h2&gt;Learning to code should be free on the web&lt;/h2&gt;
    &lt;p&gt;&lt;strong&gt;Learning to code should be free on the web.&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;
      Not locked behind paywalls. Not hidden inside overpriced bootcamps. Not gatekept by artificial scarcity.
    &lt;/p&gt;
    &lt;p&gt;
      Programming languages are free. Compilers have been free for decades (C, C++, GCC). JavaScript runs freely in every browser. PHP thrived on free stacks like Linux, Apache, MySQL, and PHP (LAMP/WAMP).
    &lt;/p&gt;
    &lt;p&gt;This is not accidental. It is cultural.&lt;/p&gt;

    &lt;h2&gt;A degree and a bootcamp are not the same promise&lt;/h2&gt;
    &lt;p&gt;
      To be fair: a full computer science degree can justify tuition because it typically covers a broad, rigorous foundation—hardware, software systems, algorithms, mathematics, and the theory behind computing.
    &lt;/p&gt;
    &lt;p&gt;
      What’s harder to justify is the modern “bootcamp economy” where people are charged premium prices to learn skills that are widely available: JavaScript fundamentals, frontend basics, and standard framework patterns. The problem is not that teaching has value—it does. The problem is the mismatch between price and what’s being sold.
    &lt;/p&gt;
    &lt;div class=&quot;callout&quot;&gt;
      &lt;strong&gt;Core principle:&lt;/strong&gt; learning materials and clarity should be accessible. Paid education should be for deep mentorship, structured accreditation, or high-touch support—not for basic access to understanding.
    &lt;/div&gt;

    &lt;h2&gt;Confusion should not be a business model&lt;/h2&gt;
    &lt;p&gt;A lot of modern tech education marketing is built around urgency and insecurity:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;“If you don’t pay now, you’ll fall behind.”&lt;/li&gt;
      &lt;li&gt;“If you don’t join this program, you’ll never break in.”&lt;/li&gt;
      &lt;li&gt;“If you don’t follow our exact path, you’ll fail.”&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;
      This creates an environment where people are pressured into expensive commitments before they even understand what they’re committing to. It turns learning into anxiety management.
    &lt;/p&gt;

    &lt;h2&gt;The AI era changed the work&lt;/h2&gt;
    &lt;p&gt;
      Coding is now &lt;strong&gt;abundant&lt;/strong&gt;. Tools are abundant. Knowledge is abundant. Compute is increasingly abundant.
    &lt;/p&gt;
    &lt;p&gt;
      Modern learners still need fundamentals, but the fundamentals now include system and application architecture, frameworks and ecosystems, tooling and integration, problem decomposition, and using AI effectively.
    &lt;/p&gt;
    &lt;p&gt;
      The best teachers always focused on fundamentals. Today, the fundamentals include what many now call &lt;em&gt;“vibe coding”&lt;/em&gt;—understanding intent, structure, and outcomes, not memorizing syntax.
    &lt;/p&gt;

    &lt;h2&gt;YouCanBuildTech has to be free&lt;/h2&gt;
    &lt;p&gt;
      Knowing all of the above, it’s genuinely difficult for us to imagine &lt;strong&gt;YouCanBuildTech&lt;/strong&gt; as anything but totally free. We’re not here to trap curiosity behind subscriptions. We’re here to make software understandable again—especially for beginners navigating the AI era.
    &lt;/p&gt;
    &lt;p&gt;
      Is it tempting to introduce special offers or premium gates? Sure. But it wouldn’t align with the learning culture many of us grew up with: open tutorials, shared knowledge, and experimentation—especially in the early 2010s era of web learning.
    &lt;/p&gt;

    &lt;h2&gt;What YCBT does differently&lt;/h2&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Teach the fundamentals clearly&lt;/strong&gt; (without academic overload).&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Explain frameworks and tools&lt;/strong&gt; so you understand what’s happening, not just what to click.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Teach Vibe Coding responsibly&lt;/strong&gt;—how to use AI effectively, and where it breaks.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Keep everything open&lt;/strong&gt;: no paywalls, no hidden tiers, no gated “knowledge.”&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;
      We aim to educate and entertain simultaneously, because learning works better when curiosity and enjoyment are involved.
    &lt;/p&gt;

    &lt;h2&gt;The point is possibility&lt;/h2&gt;
    &lt;p&gt;
      One of the best parts of the 2000s internet and early web culture was the feeling that you could build anything. That spark matters. And paradoxically, with AI-assisted coding (what many now call &lt;strong&gt;Vibe Coding&lt;/strong&gt;) becoming widely available, those possibilities are more reachable than ever—if people have the right mental models.
    &lt;/p&gt;
    &lt;p&gt;
      At YouCanBuildTech, we want to restore the original spirit: experiment, learn, build, share—and do it without paywalls.
    &lt;/p&gt;
    &lt;blockquote&gt;
      No paywalls. No bootcamp pressure. No nostalgia-driven lies.&lt;br&gt;
      &lt;strong&gt;And yes—we’re free. Now beat that.&lt;/strong&gt;
    &lt;/blockquote&gt;
    

    &lt;div class=&quot;button-row&quot;&gt;
      &lt;a class=&quot;button&quot; href=&quot;https://youcanbuildtech.com/&quot;&gt;Learn on the homepage&lt;/a&gt;
      &lt;a class=&quot;button&quot; href=&quot;https://youcanbuildtech.com/comparisons/&quot;&gt;Compare practical tools&lt;/a&gt;
    &lt;/div&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>Building a Tetromino-Style Mobile Game With AI | YouCanBuildTech</title>
    <link href="https://youcanbuildtech.com/build-notes/building-a-tetromino-style-mobile-game-with-ai/" />
    <updated>2026-01-01T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/build-notes/building-a-tetromino-style-mobile-game-with-ai/</id>
    <content type="html">&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;

  &lt;title&gt;Building a Tetromino-Style Mobile Game With AI | YouCanBuildTech&lt;/title&gt;
  &lt;meta name=&quot;description&quot; content=&quot;A first-hand two-week build note about making a tetromino-style mobile game in Godot with AI-assisted coding, generated assets, debugging, and AdMob integration.&quot;&gt;
  &lt;meta name=&quot;robots&quot; content=&quot;index, follow, max-image-preview:large&quot;&gt;
  &lt;link rel=&quot;canonical&quot; href=&quot;https://youcanbuildtech.com/build-notes/building-a-tetromino-style-mobile-game-with-ai/&quot;&gt;
  &lt;link rel=&quot;alternate&quot; type=&quot;application/atom+xml&quot; title=&quot;YouCanBuildTech articles&quot; href=&quot;https://youcanbuildtech.com/feed.xml&quot;&gt;

  &lt;!-- Favicons --&gt;
  &lt;link rel=&quot;icon&quot; href=&quot;https://youcanbuildtech.com/assets/icon/favicon.ico&quot;&gt;
  &lt;link rel=&quot;icon&quot; type=&quot;image/png&quot; href=&quot;https://youcanbuildtech.com/assets/icon/favicon.png&quot;&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;https://youcanbuildtech.com/assets/css/site-menu.css&quot;&gt;

  &lt;!-- Open Graph / Twitter --&gt;
  &lt;meta property=&quot;og:type&quot; content=&quot;article&quot;&gt;
  &lt;meta property=&quot;og:site_name&quot; content=&quot;YouCanBuildTech&quot;&gt;
  &lt;meta property=&quot;og:title&quot; content=&quot;Building a Tetromino-Style Mobile Game With AI&quot;&gt;
  &lt;meta property=&quot;og:description&quot; content=&quot;A first-hand two-week Godot build note: AI-assisted coding, generated assets, debugging, and AdMob integration.&quot;&gt;
  &lt;meta property=&quot;og:url&quot; content=&quot;https://youcanbuildtech.com/build-notes/building-a-tetromino-style-mobile-game-with-ai/&quot;&gt;
  &lt;meta property=&quot;og:image&quot; content=&quot;https://youcanbuildtech.com/images/guides/tetromino-game/vibe-coding-puzzle-game-godot-debug.jpg&quot;&gt;
  &lt;meta property=&quot;og:image:secure_url&quot; content=&quot;https://youcanbuildtech.com/images/guides/tetromino-game/vibe-coding-puzzle-game-godot-debug.jpg&quot;&gt;
  &lt;meta property=&quot;og:image:type&quot; content=&quot;image/jpeg&quot;&gt;
  &lt;meta property=&quot;og:image:width&quot; content=&quot;1920&quot;&gt;
  &lt;meta property=&quot;og:image:height&quot; content=&quot;1008&quot;&gt;
  &lt;meta property=&quot;og:image:alt&quot; content=&quot;Tetromino-style mobile puzzle game interface built with AI assistance&quot;&gt;
  &lt;meta property=&quot;article:section&quot; content=&quot;Build Notes&quot;&gt;
  &lt;meta property=&quot;article:modified_time&quot; content=&quot;2026-09-02&quot;&gt;
  &lt;meta name=&quot;twitter:card&quot; content=&quot;summary_large_image&quot;&gt;
  &lt;meta name=&quot;twitter:title&quot; content=&quot;Building a Tetromino-Style Mobile Game With AI&quot;&gt;
  &lt;meta name=&quot;twitter:description&quot; content=&quot;A first-hand two-week Godot build note with AI-assisted coding, generated assets, debugging, and AdMob integration.&quot;&gt;
  &lt;meta name=&quot;twitter:image&quot; content=&quot;https://youcanbuildtech.com/images/guides/tetromino-game/vibe-coding-puzzle-game-godot-debug.jpg&quot;&gt;
  &lt;meta name=&quot;twitter:image:alt&quot; content=&quot;Tetromino-style mobile puzzle game interface built with AI assistance&quot;&gt;

  &lt;!-- Schema --&gt;
  &lt;script type=&quot;application/ld+json&quot;&gt;
  {
    &quot;@context&quot;: &quot;https://schema.org&quot;,
    &quot;@type&quot;: &quot;Article&quot;,
    &quot;name&quot;: &quot;Building a Tetromino-Style Mobile Game With AI&quot;,
    &quot;headline&quot;: &quot;Building a Tetromino-Style Mobile Game With AI&quot;,
    &quot;description&quot;: &quot;A first-hand two-week build note about making a tetromino-style mobile game in Godot with AI-assisted coding, generated assets, debugging, and AdMob integration.&quot;,
    &quot;url&quot;: &quot;https://youcanbuildtech.com/build-notes/building-a-tetromino-style-mobile-game-with-ai/&quot;,
    &quot;image&quot;: {
      &quot;@type&quot;: &quot;ImageObject&quot;,
      &quot;url&quot;: &quot;https://youcanbuildtech.com/images/guides/tetromino-game/vibe-coding-puzzle-game-godot-debug.jpg&quot;,
      &quot;width&quot;: 1920,
      &quot;height&quot;: 1008
    },
    &quot;dateModified&quot;: &quot;2026-09-02&quot;,
    &quot;author&quot;: {
      &quot;@type&quot;: &quot;Organization&quot;,
      &quot;name&quot;: &quot;YouCanBuildTech&quot;,
      &quot;url&quot;: &quot;https://youcanbuildtech.com/&quot;
    },
    &quot;publisher&quot;: {
      &quot;@type&quot;: &quot;Organization&quot;,
      &quot;name&quot;: &quot;YouCanBuildTech&quot;,
      &quot;url&quot;: &quot;https://youcanbuildtech.com/&quot;,
      &quot;logo&quot;: {
        &quot;@type&quot;: &quot;ImageObject&quot;,
        &quot;url&quot;: &quot;https://youcanbuildtech.com/assets/brand/logo-square-512.png&quot;
      }
    },
    &quot;mainEntityOfPage&quot;: {
      &quot;@type&quot;: &quot;WebPage&quot;,
      &quot;@id&quot;: &quot;https://youcanbuildtech.com/build-notes/building-a-tetromino-style-mobile-game-with-ai/&quot;
    },
    &quot;isPartOf&quot;: {
      &quot;@type&quot;: &quot;WebSite&quot;,
      &quot;name&quot;: &quot;YouCanBuildTech&quot;,
      &quot;url&quot;: &quot;https://youcanbuildtech.com/&quot;
    }
  }
  &lt;/script&gt;

  &lt;style&gt;
    :root {
      --bg: #f7f7f7;
      --card: #ffffff;
      --text: #111;
      --muted: rgba(17,17,17,0.78);
      --border: #ddd;
      --shadow: 0 4px 12px rgba(0,0,0,0.05);
      --max: 900px;
    }

    body {
      margin: 0;
      padding: 0;
      font-family: Arial, sans-serif;
      background: var(--bg);
      color: var(--text);
      line-height: 1.65;
    }

    .legacy-header {
      padding: 18px 20px;
      background: white;
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 10px;
    }

    .legacy-header .brand {
      display: flex;
      align-items: center;
      gap: 10px;
      min-width: 240px;
      color: inherit;
      text-decoration: none;
    }

    .legacy-header .brand img { height: 32px; width: 32px; }

    .legacy-header .brand strong { display:block; font-size: 16px; }
    .legacy-header .brand span { display:block; font-size: 13px; color: var(--muted); }

    .legacy-header nav a {
      margin: 0 8px;
      text-decoration: none;
      color: var(--text);
      font-weight: bold;
    }
    .legacy-header nav a:hover { text-decoration: underline; }

    main {
      padding: 34px 20px 60px;
      max-width: var(--max);
      margin: 0 auto;
    }

    .card {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 12px;
      box-shadow: var(--shadow);
      padding: 28px;
    }

    .kicker {
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--muted);
      margin: 0 0 10px;
    }

    h1 {
      margin: 0 0 10px;
      font-size: 30px;
      line-height: 1.2;
    }

    .lede {
      margin: 0 0 18px;
      font-size: 16px;
      color: var(--muted);
    }

    .byline {
      display: flex;
      flex-wrap: wrap;
      gap: 6px 16px;
      margin: 0 0 18px;
      color: var(--muted);
      font-size: 14px;
      font-weight: 700;
    }

    h2 {
      margin: 26px 0 10px;
      font-size: 20px;
      line-height: 1.25;
    }

    p { margin: 12px 0; }

    ul { margin: 10px 0 0; padding-left: 20px; }
    li { margin: 8px 0; }

    figure {
      margin: 24px 0;
    }

    figure img {
      max-width: 100%;
      height: auto;
      display: block;
      border-radius: 10px;
    }

    figcaption {
      margin-top: 8px;
      font-size: 14px;
      opacity: 0.75;
    }

    .callout {
      margin-top: 18px;
      padding: 16px 16px;
      border: 1px solid var(--border);
      border-radius: 10px;
      background: #fbfbfb;
    }

    .chips {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 14px;
    }
    .chip {
      background: #eef3fa;
      padding: 6px 12px;
      border-radius: 999px;
      font-size: 13px;
      color: #324156;
    }

    .cta-row {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 18px;
    }
    .btn {
      display: inline-block;
      background: #111;
      color: #fff;
      padding: 12px 16px;
      border-radius: 8px;
      text-decoration: none;
      font-weight: bold;
      transition: 0.2s;
    }
    .btn:hover { background: #333; }

    .btn-secondary {
      background: transparent;
      color: #111;
      border: 1px solid #111;
    }
    .btn-secondary:hover {
      background: #111;
      color: #fff;
    }

    .meta {
      margin-top: 14px;
      font-size: 13px;
      color: var(--muted);
    }

    .legacy-footer {
      text-align: center;
      padding: 32px 20px;
      font-size: 14px;
      color: #555;
      opacity: 0.9;
    }

    .legacy-footer a { color: #111; text-decoration: none; margin: 0 8px; }
    .legacy-footer a:hover { text-decoration: underline; }

    a.inline { color: #111; font-weight: bold; text-decoration: underline; }
  &lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
  &lt;a class=&quot;skip-link&quot; href=&quot;https://youcanbuildtech.com/build-notes/building-a-tetromino-style-mobile-game-with-ai/#main&quot;&gt;Skip to content&lt;/a&gt;
  
&lt;header class=&quot;site-menu-wrap&quot;&gt;
  &lt;nav class=&quot;site-menu&quot; aria-label=&quot;Main navigation&quot;&gt;
    &lt;a class=&quot;site-menu__brand&quot; href=&quot;https://youcanbuildtech.com/&quot; aria-label=&quot;YouCanBuildTech home&quot;&gt;
      &lt;img class=&quot;site-menu__mark&quot; src=&quot;https://youcanbuildtech.com/assets/icon/favicon.png&quot; alt=&quot;&quot;&gt;
      &lt;span class=&quot;site-menu__name&quot;&gt;YouCanBuildTech&lt;/span&gt;
    &lt;/a&gt;

    &lt;div class=&quot;site-menu__links&quot;&gt;
      
        
          &lt;a class=&quot;site-menu__link&quot; href=&quot;https://youcanbuildtech.com/articles/&quot;&gt;Articles&lt;/a&gt;
        
      
        
          &lt;a class=&quot;site-menu__link&quot; href=&quot;https://youcanbuildtech.com/comparisons/&quot;&gt;Comparisons&lt;/a&gt;
        
      
        
          &lt;a class=&quot;site-menu__link&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;About&lt;/a&gt;
        
      
    &lt;/div&gt;
  &lt;/nav&gt;
&lt;/header&gt;


  &lt;main id=&quot;main&quot;&gt;
    &lt;article class=&quot;card&quot;&gt;
      &lt;p class=&quot;kicker&quot;&gt;Build note · Real Build Overview&lt;/p&gt;

      &lt;h1&gt;Building a Tetromino-Style Mobile Game With AI&lt;/h1&gt;

      &lt;p class=&quot;lede&quot;&gt;
        This is not a tutorial. It is a first-hand note on the tools and decisions behind a two-week, AI-assisted mobile game build in Godot.
      &lt;/p&gt;

      &lt;p class=&quot;byline&quot;&gt;
        &lt;span&gt;By &lt;a href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
        &lt;span&gt;Published &lt;time datetime=&quot;2026-01&quot;&gt;January 2026&lt;/time&gt;&lt;/span&gt;
        &lt;span&gt;Updated &lt;time datetime=&quot;2026-09-02&quot;&gt;September 2, 2026&lt;/time&gt;&lt;/span&gt;
      &lt;/p&gt;

      &lt;div class=&quot;chips&quot;&gt;
        &lt;span class=&quot;chip&quot;&gt;Real Build&lt;/span&gt;
        &lt;span class=&quot;chip&quot;&gt;Mobile Games&lt;/span&gt;
        &lt;span class=&quot;chip&quot;&gt;AI-Assisted Coding&lt;/span&gt;
        &lt;span class=&quot;chip&quot;&gt;Godot&lt;/span&gt;
        &lt;span class=&quot;chip&quot;&gt;Two-Week Build&lt;/span&gt;
      &lt;/div&gt;

      &lt;figure&gt;
      &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/rLgnwDa8kc-480.avif 480w, https://youcanbuildtech.com/img/rLgnwDa8kc-514.avif 514w&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/rLgnwDa8kc-480.webp 480w, https://youcanbuildtech.com/img/rLgnwDa8kc-514.webp 514w&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/rLgnwDa8kc-480.jpeg&quot; alt=&quot;Polished block puzzle game UI after two weeks of development in Godot&quot; width=&quot;514&quot; height=&quot;915&quot; srcset=&quot;https://youcanbuildtech.com/img/rLgnwDa8kc-480.jpeg 480w, https://youcanbuildtech.com/img/rLgnwDa8kc-514.jpeg 514w&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;/picture&gt;
      &lt;figcaption&gt;After two weeks, our polished UI looked like this.&lt;/figcaption&gt;
      &lt;/figure&gt;

      &lt;h2&gt;The project and the result&lt;/h2&gt;
      &lt;p&gt;
        We built a tetromino-style puzzle game in which players pick up and place shapes instead of waiting for pieces to fall from the top of the screen. After two weeks, the project had a polished mobile interface and &lt;a href=&quot;https://youcanbuildtech.com/launch-and-grow/how-much-money-can-you-make-with-google-admob/&quot;&gt;Google AdMob&lt;/a&gt; integrated.
      &lt;/p&gt;
      &lt;p&gt;
        We treated the result as app-store ready from the project side. That describes the state of the build; it is not a claim about store acceptance, downloads, revenue, or user feedback.
      &lt;/p&gt;

      &lt;h2&gt;Why we used Godot&lt;/h2&gt;
      &lt;p&gt;
        We had already chosen the &lt;a href=&quot;https://godotengine.org/&quot;&gt;Godot game engine&lt;/a&gt;. Three things mattered during this project:
      &lt;/p&gt;
      &lt;ul&gt;
        &lt;li&gt;The editor felt light, quick to start, and responsive on our machine.&lt;/li&gt;
        &lt;li&gt;Godot is free and open source under the MIT license, which fits YCBT’s preference for tools that do not place a royalty on the finished game.&lt;/li&gt;
        &lt;li&gt;GDScript was readable enough for a beginner-facing project and practical for rapid iteration.&lt;/li&gt;
      &lt;/ul&gt;

      &lt;h2&gt;How AI actually helped&lt;/h2&gt;
      &lt;p&gt;
        We used Claude, ChatGPT, Grok, and some Copilot during the build. The useful pattern was not loyalty to one model. When one conversation got stuck, handing the problem to another system sometimes produced a different route through it.
      &lt;/p&gt;
      &lt;div class=&quot;callout&quot;&gt;
        &lt;strong&gt;For the record:&lt;/strong&gt; AI assisted with scaffolding, iteration, and debugging—not with core game design decisions.
      &lt;/div&gt;
      &lt;p&gt;
        That distinction matters. The owner still chose the game, decided how it should feel, evaluated the output, and decided what belonged in the build.
      &lt;/p&gt;

      &lt;h2&gt;Visuals and voice&lt;/h2&gt;
      &lt;p&gt;
        AI tools also helped create the block sprites and interface graphics, including the score, high-score, and settings icons. We used &lt;a href=&quot;https://elevenlabs.io/&quot;&gt;ElevenLabs&lt;/a&gt; text-to-speech to generate phrases for the character that gives audible feedback.
      &lt;/p&gt;

      &lt;h2&gt;Debugging was still part of the job&lt;/h2&gt;
      &lt;figure&gt;
      &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/VZ8iiu3ACO-480.avif 480w, https://youcanbuildtech.com/img/VZ8iiu3ACO-800.avif 800w, https://youcanbuildtech.com/img/VZ8iiu3ACO-1200.avif 1200w, https://youcanbuildtech.com/img/VZ8iiu3ACO-1920.avif 1920w&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/VZ8iiu3ACO-480.webp 480w, https://youcanbuildtech.com/img/VZ8iiu3ACO-800.webp 800w, https://youcanbuildtech.com/img/VZ8iiu3ACO-1200.webp 1200w, https://youcanbuildtech.com/img/VZ8iiu3ACO-1920.webp 1920w&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/VZ8iiu3ACO-480.jpeg&quot; alt=&quot;Polished block puzzle game UI after two weeks of development in Godot&quot; width=&quot;1920&quot; height=&quot;1008&quot; srcset=&quot;https://youcanbuildtech.com/img/VZ8iiu3ACO-480.jpeg 480w, https://youcanbuildtech.com/img/VZ8iiu3ACO-800.jpeg 800w, https://youcanbuildtech.com/img/VZ8iiu3ACO-1200.jpeg 1200w, https://youcanbuildtech.com/img/VZ8iiu3ACO-1920.jpeg 1920w&quot; sizes=&quot;(max-width: 900px) 100vw, 900px&quot;&gt;&lt;/picture&gt;
      &lt;figcaption&gt;Viewing the game in our game engine debugger.&lt;/figcaption&gt;
      &lt;/figure&gt;
      &lt;p&gt;
        AI-generated code did not remove the need to inspect the running game, understand state, and debug the result. The project still depended on human decisions about:
      &lt;/p&gt;
      &lt;ul&gt;
        &lt;li&gt;Where AI helped—and where it got in the way&lt;/li&gt;
        &lt;li&gt;How game state and variables were structured&lt;/li&gt;
        &lt;li&gt;Whether a suggested change matched the intended game behavior&lt;/li&gt;
      &lt;/ul&gt;

      &lt;h2&gt;What this build demonstrated&lt;/h2&gt;
      &lt;p&gt;
        Two weeks was enough to move from an idea to a polished, monetization-integrated mobile build. The evidence is the working interface, the Godot project in the debugger, and the completed integration work—not a claim that AI finished the project by itself.
      &lt;/p&gt;
      &lt;p&gt;
        The durable lesson is simple: AI can accelerate a small build when the builder keeps ownership of the decisions, changes models when a line of attack stalls, and verifies the project in the actual engine.
      &lt;/p&gt;

      &lt;div class=&quot;cta-row&quot;&gt;
        &lt;a class=&quot;btn&quot; href=&quot;https://youcanbuildtech.com/comparisons/game-engines-for-solo-developers/&quot;&gt;Compare game engines&lt;/a&gt;
      &lt;/div&gt;
    &lt;/article&gt;
  &lt;/main&gt;

  
  &lt;footer class=&quot;legacy-footer&quot;&gt;
  &lt;p&gt;&amp;copy; 2026 YouCanBuildTech. Learn the tech that helps you build.&lt;/p&gt;
  &lt;nav aria-label=&quot;Footer navigation&quot;&gt;
    
      &lt;a href=&quot;https://youcanbuildtech.com/articles/&quot;&gt;Articles&lt;/a&gt;
    
      &lt;a href=&quot;https://youcanbuildtech.com/feed.xml&quot;&gt;RSS&lt;/a&gt;
    
      &lt;a href=&quot;https://youcanbuildtech.com/about/&quot;&gt;About&lt;/a&gt;
    
      &lt;a href=&quot;https://youcanbuildtech.com/contact/&quot;&gt;Contact&lt;/a&gt;
    
  &lt;/nav&gt;
&lt;/footer&gt;

&lt;/body&gt;
&lt;/html&gt;
</content>
  </entry>
  <entry>
    <title>Game Engines for Solo Developers: A Finish-First Comparison | YCBT</title>
    <link href="https://youcanbuildtech.com/comparisons/game-engines-for-solo-developers/" />
    <updated>2025-10-01T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/comparisons/game-engines-for-solo-developers/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; &lt;a href=&quot;https://youcanbuildtech.com/comparisons/&quot;&gt;Comparisons&lt;/a&gt; &amp;rarr; Game engines for solo developers&lt;/nav&gt;
  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;Finish-first engine choice&lt;/p&gt;
    &lt;h1&gt;Game engines for solo developers&lt;/h1&gt;
    &lt;p class=&quot;page-hero__lead&quot;&gt;The best engine is the one whose complexity matches your game, your way of thinking, and the platforms you can realistically support.&lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2025-10&quot;&gt;October 2025&lt;/time&gt;&lt;/span&gt;
  &lt;span&gt;Updated &lt;time datetime=&quot;2026-07-29&quot;&gt;July 29, 2026&lt;/time&gt;&lt;/span&gt;
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/F0yYaO6nB1-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/F0yYaO6nB1-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/F0yYaO6nB1-1672.png&quot; alt=&quot;A solo developer choosing among Godot, GDevelop, Construct, and GameMaker&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
    &lt;div class=&quot;comparison-summary&quot;&gt;
      &lt;table&gt;
        &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Engine&lt;/th&gt;&lt;th&gt;Best fit&lt;/th&gt;&lt;th&gt;Logic model&lt;/th&gt;&lt;th&gt;Control and export&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
        &lt;tbody&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Godot&lt;/th&gt;&lt;td&gt;Builders who want a full 2D/3D engine and are willing to learn engine concepts.&lt;/td&gt;&lt;td&gt;GDScript, C#, and extension options.&lt;/td&gt;&lt;td&gt;MIT-licensed and open source; official export paths include desktop, Android, iOS, and web.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;GDevelop&lt;/th&gt;&lt;td&gt;Fast 2D/3D prototypes and small releases without starting in code.&lt;/td&gt;&lt;td&gt;No-code event system, behaviors, plus JavaScript extension.&lt;/td&gt;&lt;td&gt;Open-source engine; official one-click paths cover web, mobile, and desktop, with plan/tooling details varying by target.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Construct&lt;/th&gt;&lt;td&gt;Browser-first 2D work and creators who think clearly in event sheets.&lt;/td&gt;&lt;td&gt;Event sheets, with JavaScript and TypeScript available.&lt;/td&gt;&lt;td&gt;Exports to web, mobile wrappers, and desktop wrappers; project copies can be downloaded.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;GameMaker&lt;/th&gt;&lt;td&gt;Focused 2D games where a mature purpose-built workflow matters.&lt;/td&gt;&lt;td&gt;GML Visual or GML Code.&lt;/td&gt;&lt;td&gt;One project can target multiple platforms; available targets and commercial terms should be confirmed for your release.&lt;/td&gt;&lt;/tr&gt;
        &lt;/tbody&gt;
      &lt;/table&gt;
    &lt;/div&gt;

    &lt;h2&gt;If ownership and a conventional project matter: Godot&lt;/h2&gt;
    &lt;p&gt;
      Godot is the strongest default here for builders who want an open-source engine, local project files, and room to grow from a small 2D game into more custom systems. The tradeoff is that you are learning an engine, not merely arranging behaviors.
    &lt;/p&gt;

    &lt;h2&gt;If visual events help you move: GDevelop or Construct&lt;/h2&gt;
    &lt;p&gt;
      GDevelop’s no-code event system, built-in behaviors, and open-source base make it a fast route to a playable result. Construct’s event sheets are also a powerful alternative to traditional programming, and its browser-based editor makes the start unusually frictionless. Try the same mechanic in both; the event model that stays readable after the prototype is the better fit.
    &lt;/p&gt;

    &lt;h2&gt;If the project is resolutely 2D: GameMaker&lt;/h2&gt;
    &lt;p&gt;
      GameMaker is designed primarily for 2D work and offers both visual actions and its own scripting language. That focus can be an advantage when a solo developer does not need a general-purpose 3D engine.
    &lt;/p&gt;

    &lt;h2&gt;A practical one-evening test&lt;/h2&gt;
    &lt;ol&gt;
      &lt;li&gt;Build player movement, one enemy, one score state, one restart flow, and one export.&lt;/li&gt;
      &lt;li&gt;Close the project, reopen it, and change the rules without a tutorial.&lt;/li&gt;
      &lt;li&gt;Inspect what you can back up locally and what the target platform requires.&lt;/li&gt;
      &lt;li&gt;Choose the tool that leaves enough energy for art, sound, polish, store work, and finishing.&lt;/li&gt;
    &lt;/ol&gt;
    &lt;p&gt;
      For a concrete example of that finish-first process, read the YCBT build note:
      &lt;a href=&quot;https://youcanbuildtech.com/build-notes/building-a-tetromino-style-mobile-game-with-ai/&quot;&gt;Building a tetromino-style mobile game with AI&lt;/a&gt;.
    &lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;
      Current product facts checked July 29, 2026 against
      &lt;a href=&quot;https://docs.godotengine.org/en/stable/getting_started/introduction/introduction_to_godot.html&quot;&gt;Godot’s introduction&lt;/a&gt;,
      &lt;a href=&quot;https://docs.godotengine.org/en/stable/about/faq.html&quot;&gt;Godot’s licensing FAQ&lt;/a&gt;,
      &lt;a href=&quot;https://docs.godotengine.org/en/stable/tutorials/export/exporting_projects.html&quot;&gt;Godot’s export guide&lt;/a&gt;,
      &lt;a href=&quot;https://gdevelop.io/en-gb/features&quot;&gt;GDevelop’s official feature reference&lt;/a&gt;,
      &lt;a href=&quot;https://www.construct.net/en/make-games/manuals/construct-3/project-primitives/events&quot;&gt;Construct’s event documentation&lt;/a&gt;,
      &lt;a href=&quot;https://www.construct.net/en/make-games/manuals/construct-3/overview/publishing-projects&quot;&gt;Construct’s publishing documentation&lt;/a&gt;, and
      &lt;a href=&quot;https://manual.gamemaker.io/monthly/en/Introduction/Introduction_To_GameMaker_Studio_2.htm&quot;&gt;GameMaker’s official introduction&lt;/a&gt;.
    &lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>Framer vs Webflow: Speed, CMS, and Site Ownership | YCBT</title>
    <link href="https://youcanbuildtech.com/comparisons/framer-vs-webflow/" />
    <updated>2025-04-01T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/comparisons/framer-vs-webflow/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; &lt;a href=&quot;https://youcanbuildtech.com/comparisons/&quot;&gt;Comparisons&lt;/a&gt; &amp;rarr; Framer vs Webflow&lt;/nav&gt;
  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;Website builders&lt;/p&gt;
    &lt;h1&gt;Framer vs Webflow&lt;/h1&gt;
    &lt;p class=&quot;page-hero__lead&quot;&gt;Choose Framer for fast, design-led publishing. Choose Webflow when structured content, CSS-like control, and an export path matter more.&lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2025-04&quot;&gt;April 2025&lt;/time&gt;&lt;/span&gt;
  &lt;span&gt;Updated &lt;time datetime=&quot;2026-07-29&quot;&gt;July 29, 2026&lt;/time&gt;&lt;/span&gt;
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/eVPzKxAqbn-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/eVPzKxAqbn-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/eVPzKxAqbn-1672.png&quot; alt=&quot;Framer and Webflow website-building interfaces compared side by side&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
    &lt;div class=&quot;comparison-summary&quot;&gt;
      &lt;table&gt;
        &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Decision&lt;/th&gt;&lt;th&gt;Framer&lt;/th&gt;&lt;th&gt;Webflow&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
        &lt;tbody&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Strongest fit&lt;/th&gt;&lt;td&gt;Landing pages, portfolios, and highly visual marketing sites built quickly.&lt;/td&gt;&lt;td&gt;Structured marketing sites and content-driven sites that need a deeper CMS model.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Publishing&lt;/th&gt;&lt;td&gt;Publishes directly to a Framer domain, with custom domains supported.&lt;/td&gt;&lt;td&gt;Publishes through Webflow hosting, with staging and production workflows depending on setup.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Custom code&lt;/th&gt;&lt;td&gt;Supports scripts, custom CSS, JavaScript, and structured data additions.&lt;/td&gt;&lt;td&gt;Supports embeds and custom code, including on CMS collection pages.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;HTML export&lt;/th&gt;&lt;td&gt;Framer’s official FAQ says HTML export/self-hosting is not supported.&lt;/td&gt;&lt;td&gt;Paid Workspace plans can export HTML, CSS, JavaScript, and assets, but CMS and several hosted features do not come with the export.&lt;/td&gt;&lt;/tr&gt;
        &lt;/tbody&gt;
      &lt;/table&gt;
    &lt;/div&gt;

    &lt;h2&gt;Framer: design speed with hosted convenience&lt;/h2&gt;
    &lt;p&gt;
      Framer is strongest when the work is primarily visual and the fastest route from design to a live marketing page is the priority. Custom code can extend a site, but the publishing model remains tied to Framer’s infrastructure.
    &lt;/p&gt;

    &lt;h2&gt;Webflow: more structure, more web concepts&lt;/h2&gt;
    &lt;p&gt;
      Webflow’s model maps more visibly to classes, layout systems, structured CMS collections, and dynamic pages. That brings more control and more concepts to manage. Its code export is a real differentiator, but it is not a full export of Webflow’s hosted CMS, ecommerce, accounts, search, or form processing.
    &lt;/p&gt;

    &lt;h2&gt;The ownership question&lt;/h2&gt;
    &lt;p&gt;
      If self-hosting exported static code is a requirement, Webflow is the viable option of these two—provided the project does not rely on features excluded from export. If hosted convenience is acceptable and speed matters most, Framer’s lack of HTML export may not be a practical problem.
    &lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;
      Current product facts checked July 29, 2026 against
      &lt;a href=&quot;https://www.framer.com/help/articles/publishing-your-framer-website/&quot;&gt;Framer’s publishing guide&lt;/a&gt;,
      &lt;a href=&quot;https://www.framer.com/help/articles/how-to-add-custom-code/&quot;&gt;Framer’s custom-code guide&lt;/a&gt;,
      &lt;a href=&quot;https://www.framer.com/help/faq/&quot;&gt;Framer’s official FAQ&lt;/a&gt;,
      &lt;a href=&quot;https://help.webflow.com/hc/en-us/articles/33961386739347-How-do-I-export-my-Webflow-site-code&quot;&gt;Webflow’s code-export guide&lt;/a&gt;, and
      &lt;a href=&quot;https://help.webflow.com/hc/en-us/articles/33961307099027-Intro-to-the-Webflow-CMS&quot;&gt;Webflow’s CMS guide&lt;/a&gt;.
    &lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
  <entry>
    <title>Adalo vs Thunkable: Which Visual App Builder Fits? | YCBT</title>
    <link href="https://youcanbuildtech.com/comparisons/adalo-vs-thunkable/" />
    <updated>2025-04-01T00:00:00Z</updated>
    <id>https://youcanbuildtech.com/comparisons/adalo-vs-thunkable/</id>
    <content type="html">
&lt;main id=&quot;main&quot; class=&quot;content-shell&quot;&gt;
  &lt;nav class=&quot;breadcrumbs&quot; aria-label=&quot;Breadcrumb&quot;&gt;&lt;a href=&quot;https://youcanbuildtech.com/&quot;&gt;Home&lt;/a&gt; &amp;rarr; &lt;a href=&quot;https://youcanbuildtech.com/comparisons/&quot;&gt;Comparisons&lt;/a&gt; &amp;rarr; Adalo vs Thunkable&lt;/nav&gt;
  &lt;header class=&quot;page-hero&quot;&gt;
    &lt;p class=&quot;kicker&quot;&gt;App builders&lt;/p&gt;
    &lt;h1&gt;Adalo vs Thunkable&lt;/h1&gt;
    &lt;p class=&quot;page-hero__lead&quot;&gt;Choose Adalo when the product is mostly screens, data, and straightforward actions. Choose Thunkable when visual logic and device behavior are the center of the project.&lt;/p&gt;
    
&lt;p class=&quot;page-hero__meta article-byline&quot;&gt;
  &lt;span&gt;By &lt;a rel=&quot;author&quot; href=&quot;https://youcanbuildtech.com/about/&quot;&gt;YouCanBuildTech&lt;/a&gt;&lt;/span&gt;
  &lt;span&gt;Published &lt;time datetime=&quot;2025-04&quot;&gt;April 2025&lt;/time&gt;&lt;/span&gt;
  &lt;span&gt;Updated &lt;time datetime=&quot;2026-07-29&quot;&gt;July 29, 2026&lt;/time&gt;&lt;/span&gt;
&lt;/p&gt;


  &lt;/header&gt;

  
&lt;figure class=&quot;article-hero-media&quot;&gt;
  &lt;picture&gt;&lt;source type=&quot;image/avif&quot; srcset=&quot;https://youcanbuildtech.com/img/wpLAPoDDeW-1672.avif&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://youcanbuildtech.com/img/wpLAPoDDeW-1672.webp&quot; sizes=&quot;(max-width: 1040px) 100vw, 1040px&quot;&gt;&lt;img decoding=&quot;async&quot; src=&quot;https://youcanbuildtech.com/img/wpLAPoDDeW-1672.png&quot; alt=&quot;Adalo and Thunkable visual app-building interfaces compared side by side&quot; width=&quot;1672&quot; height=&quot;941&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;
&lt;/figure&gt;



  &lt;article class=&quot;article-card&quot;&gt;
    &lt;h2&gt;The short version&lt;/h2&gt;
    &lt;p&gt;
      Adalo’s current builder emphasizes responsive screen design: one app can target mobile, tablet, desktop web, iOS, and Android. Thunkable also targets web and native mobile, but its defining workflow is wiring app behavior with visual blocks.
    &lt;/p&gt;

    &lt;div class=&quot;comparison-summary&quot;&gt;
      &lt;table&gt;
        &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Decision&lt;/th&gt;&lt;th&gt;Adalo&lt;/th&gt;&lt;th&gt;Thunkable&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
        &lt;tbody&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Best starting point&lt;/th&gt;&lt;td&gt;Data-driven screens, directories, listings, bookings, and straightforward MVPs.&lt;/td&gt;&lt;td&gt;Interactive app logic, device features, learning projects, utilities, and prototypes.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Main mental model&lt;/th&gt;&lt;td&gt;Design screens, connect data, define actions.&lt;/td&gt;&lt;td&gt;Design screens, then connect behavior with visual blocks.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Web publishing&lt;/th&gt;&lt;td&gt;Mobile-only or responsive apps can publish to the web; responsive apps adapt across screen sizes.&lt;/td&gt;&lt;td&gt;Mobile web apps and responsive web apps are separate publishing choices.&lt;/td&gt;&lt;/tr&gt;
          &lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Native publishing&lt;/th&gt;&lt;td&gt;Official documentation covers Apple App Store and Google Play publishing on eligible plans.&lt;/td&gt;&lt;td&gt;Official documentation covers iOS App Store publishing and Android download/publishing flows.&lt;/td&gt;&lt;/tr&gt;
        &lt;/tbody&gt;
      &lt;/table&gt;
    &lt;/div&gt;

    &lt;h2&gt;Pick Adalo when the interface is the product&lt;/h2&gt;
    &lt;p&gt;
      Adalo is a natural fit when the project can be described as a set of screens backed by users, collections, forms, lists, and actions. The responsive builder is especially relevant if the same product needs to work as a native app and a desktop-capable web app.
    &lt;/p&gt;

    &lt;h2&gt;Pick Thunkable when behavior is the product&lt;/h2&gt;
    &lt;p&gt;
      Thunkable’s blocks make logic visible. That can be easier to reason about when the important work is “when this happens, do that,” when a project depends on device components, or when the builder wants to learn computational thinking without starting in a text editor.
    &lt;/p&gt;

    &lt;h2&gt;Do a real exit test before committing&lt;/h2&gt;
    &lt;p&gt;
      Build the hardest screen, the hardest data flow, and the hardest device interaction in both tools. Then test the exact publication target you need. A quick prototype can hide constraints that only appear in state management, offline behavior, custom logic, store requirements, or platform-specific components.
    &lt;/p&gt;

    &lt;p class=&quot;source-note&quot;&gt;
      Current product facts checked July 29, 2026 against
      &lt;a href=&quot;https://help.adalo.com/design/designing-your-app&quot;&gt;Adalo’s official design documentation&lt;/a&gt;,
      &lt;a href=&quot;https://help.adalo.com/publishing-apps&quot;&gt;Adalo’s official publishing documentation&lt;/a&gt;,
      &lt;a href=&quot;https://docs.thunkable.com/publishing/publish-as-a-web-app-pro&quot;&gt;Thunkable’s web-app documentation&lt;/a&gt;, and
      &lt;a href=&quot;https://docs.thunkable.com/publishing/publish-to-app-store-ios/user-guide&quot;&gt;Thunkable’s iOS publishing guide&lt;/a&gt;.
      Pricing and plan gates can change; confirm them before choosing.
    &lt;/p&gt;
  &lt;/article&gt;
&lt;/main&gt;
</content>
  </entry>
</feed>