<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Irving</title>
    <description>The latest articles on DEV Community by Irving (@irvingk853).</description>
    <link>https://dev.to/irvingk853</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4018519%2F1686d3ad-d744-4724-8d67-0ce4de93f45d.jpeg</url>
      <title>DEV Community: Irving</title>
      <link>https://dev.to/irvingk853</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/irvingk853"/>
    <language>en</language>
    <item>
      <title>A Practical Guide to AGENTS.md: Writing Instructions for Codex</title>
      <dc:creator>Irving</dc:creator>
      <pubDate>Mon, 05 Oct 2026 08:49:04 +0000</pubDate>
      <link>https://dev.to/irvingk853/a-practical-guide-to-agentsmd-writing-instructions-for-codex-17fn</link>
      <guid>https://dev.to/irvingk853/a-practical-guide-to-agentsmd-writing-instructions-for-codex-17fn</guid>
      <description>&lt;p&gt;&lt;em&gt;AI helped draft and revise the Chinese original, then translate and adapt it into English.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why should Codex users know about AGENTS.md?
&lt;/h2&gt;

&lt;p&gt;If you use Codex to build projects, or do a lot of vibe coding, some of these problems may sound familiar:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You're a product manager who wants to discuss the user experience and possible solutions, but the AI keeps getting into technical details.&lt;/li&gt;
&lt;li&gt;You only want to talk through an idea, but the AI starts changing code. By the time you realize it's going in the wrong direction, there's work to undo.&lt;/li&gt;
&lt;li&gt;Your project already has a module that does the job, but the AI builds another one. The project gets messier with every change.&lt;/li&gt;
&lt;li&gt;You just told it not to change a particular part of the project. In the next chat, you have to say it all again.&lt;/li&gt;
&lt;li&gt;You ask it to change a button, and it also changes the nearby text and layout.&lt;/li&gt;
&lt;li&gt;Your project already has shared components, styles, and coding conventions, but the AI's changes don't follow them.&lt;/li&gt;
&lt;li&gt;You've already agreed on the product positioning and business rules, but the AI changes those details while editing a page.&lt;/li&gt;
&lt;li&gt;The AI says the work is done. You open the result, find problems, and realize it never checked its changes.&lt;/li&gt;
&lt;li&gt;Every new task starts with another explanation of the project structure, how to run it, and what to watch out for.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Part of the problem is that the rules you want the AI to follow haven't been provided clearly and consistently. And we can't always remember to explain everything, at the right time, in every conversation.&lt;/p&gt;

&lt;p&gt;If you've used Claude Code, you can think of AGENTS.md as a file with a similar purpose to CLAUDE.md.&lt;/p&gt;

&lt;p&gt;At their core, CLAUDE.md and AGENTS.md serve the same purpose: they record ongoing collaboration requirements and project knowledge so an AI coding assistant can load them into its context while it works. Both tools' official documentation describes using these files for project conventions, workflows, and personal preferences.&lt;/p&gt;

&lt;p&gt;Put simply, they're instruction manuals for the AI. They tell it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How to work with you.&lt;/li&gt;
&lt;li&gt;What rules the project follows.&lt;/li&gt;
&lt;li&gt;What it shouldn't change without asking.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How do you write an AGENTS.md file?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Group the problems into categories
&lt;/h3&gt;

&lt;p&gt;Let's start by grouping the problems above:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. You want to discuss the user experience and possible solutions, but the AI keeps explaining technical details.&lt;/td&gt;
&lt;td&gt;Your background and communication preferences&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. You're only discussing an idea, but the AI starts changing code.&lt;/td&gt;
&lt;td&gt;The workflow for discussion and implementation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. The functionality already exists, but the AI builds it again.&lt;/td&gt;
&lt;td&gt;Existing modules and reuse requirements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. You have to repeat the same restrictions in every new chat.&lt;/td&gt;
&lt;td&gt;Ongoing agreements and restrictions on changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. You ask for a button change, but other things get changed too.&lt;/td&gt;
&lt;td&gt;Scope of changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6. The components, styles, and code don't follow the project's conventions.&lt;/td&gt;
&lt;td&gt;Development conventions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7. The AI changes product positioning or business rules you've already agreed on.&lt;/td&gt;
&lt;td&gt;Product positioning and business rules&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8. It says the work is done without checking the result.&lt;/td&gt;
&lt;td&gt;Completion criteria and verification requirements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9. You have to keep explaining the project structure and how to run it.&lt;/td&gt;
&lt;td&gt;Project structure and setup instructions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If we then group these requirements by where they apply, we get two broad categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Personal preferences and collaboration requirements:&lt;/strong&gt; your background, communication preferences, how you move from discussion to implementation, and general expectations about scope and delivery. You usually want the AI to work with you this way even when you switch projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project context and conventions:&lt;/strong&gt; this project's structure and setup, existing modules and reuse requirements, development conventions, product positioning, business rules, and specific restrictions and verification steps.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some problems involve both. For example, "Check your changes and tell me if you haven't" is a general requirement. "Here is how to check changes in this project" is a project convention.&lt;/p&gt;

&lt;p&gt;Codex supports managing these instructions at both the global and project levels.&lt;/p&gt;

&lt;p&gt;Here are the main points from the &lt;a href="https://learn.chatgpt.com/docs/agent-configuration/agents-md" rel="noopener noreferrer"&gt;official AGENTS.md documentation&lt;/a&gt;, summarized:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global:&lt;/strong&gt; The Codex home directory defaults to &lt;code&gt;~/.codex&lt;/code&gt;. You can change it with &lt;code&gt;CODEX_HOME&lt;/code&gt;. Codex prefers &lt;code&gt;AGENTS.override.md&lt;/code&gt;; otherwise, it uses &lt;code&gt;AGENTS.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project:&lt;/strong&gt; Codex checks each directory along the path from the project root to the current working directory. In each directory, it prefers &lt;code&gt;AGENTS.override.md&lt;/code&gt;, then &lt;code&gt;AGENTS.md&lt;/code&gt;. You can also configure fallback filenames. Codex uses at most one file per directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Combined instructions:&lt;/strong&gt; Codex combines the files in order: global, project root, then deeper directories along the path. If instructions conflict, those closer to the current working directory take priority.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Put simply, &lt;strong&gt;Codex loads the applicable global and project instructions into its context to guide its work.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use the global file for general requirements, and the project file for that project's context and rules. Instructions that don't conflict work together. Where they do conflict, the more specific project instructions take priority.&lt;/p&gt;

&lt;p&gt;Following this approach, we can write two AGENTS.md files:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Global AGENTS.md:&lt;/strong&gt; stored at &lt;code&gt;~/.codex/AGENTS.md&lt;/code&gt; by default, for personal preferences and collaboration requirements that apply across projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project AGENTS.md:&lt;/strong&gt; stored in the project root, for that project's context and conventions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You don't have to write both. Start with the instructions you actually need.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What goes in a global AGENTS.md?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt; &lt;code&gt;~/.codex/AGENTS.md&lt;/code&gt; by default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content:&lt;/strong&gt; requirements that still apply when you switch projects, such as your background, communication preferences, discussion and implementation workflow, and general expectations about scope and delivery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Here's a short global AGENTS.md for a product manager. Adjust it to match your background and how you like to work.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# How to work with me&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; I'm a product manager. Prioritize user problems, product ideas, the user
  experience, and final copy in our discussions.
&lt;span class="p"&gt;-&lt;/span&gt; When discussing a technical approach, explain why you recommend it, its impact,
  and the tradeoffs. Explain code details when needed.
&lt;span class="p"&gt;-&lt;/span&gt; When I ask for opinions, analysis, or a discussion of possible solutions,
  discuss first. Change files when I explicitly ask you to implement and the
  goal and scope are clear.
&lt;span class="p"&gt;-&lt;/span&gt; Only change what the current task involves. If you need to expand the scope,
  explain why and confirm with me first.
&lt;span class="p"&gt;-&lt;/span&gt; When you're done, tell me what users will see, what you verified, and what
  remains unresolved.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. What goes in a project AGENTS.md?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt; the project root.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content:&lt;/strong&gt; the project's background and specific requirements, such as its structure and how to run it, existing modules and reuse requirements, development conventions, product positioning, business rules, and specific restrictions and verification steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Here's a short project AGENTS.md. Replace the text in square brackets with your project's actual details.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Project conventions&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; This project is [project description], mainly for [target users].
&lt;span class="p"&gt;-&lt;/span&gt; Main features live in [directory], and shared components live in [directory].
  Check the existing implementation before developing a feature, and prefer
  reusing existing modules and components.
&lt;span class="p"&gt;-&lt;/span&gt; Reuse the project's existing components and follow its styles and naming
  conventions.
&lt;span class="p"&gt;-&lt;/span&gt; Use [document path] as the source of truth for product positioning and business
  rules. When editing pages, don't change agreed pricing, plan benefits, or
  business workflows without approval.
&lt;span class="p"&gt;-&lt;/span&gt; Start the project locally with [command]. Run checks and tests with [commands].
&lt;span class="p"&gt;-&lt;/span&gt; After changing [feature], verify [the relevant user flow].
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Optional: AGENTS.override.md
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; provides an instruction file that takes priority. Within the same directory, Codex reads &lt;code&gt;AGENTS.override.md&lt;/code&gt; instead of that directory's &lt;code&gt;AGENTS.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When it can be useful:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Temporarily changing your global requirements.&lt;/strong&gt; Put the instructions you want to use for a while in &lt;code&gt;~/.codex/AGENTS.override.md&lt;/code&gt;. Keep the original &lt;code&gt;AGENTS.md&lt;/code&gt; so you can return to it later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giving a module its own requirements.&lt;/strong&gt; For example, your payments module might need a different way to run tests. You can create an &lt;code&gt;AGENTS.override.md&lt;/code&gt; in the payments directory. Starting a chat with that directory as the working directory brings those instructions into context.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Things to keep in mind:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Only one file is loaded per directory.&lt;/strong&gt; If there are instructions in the original &lt;code&gt;AGENTS.md&lt;/code&gt; that you still need, include them in the override file too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instructions from other levels still load.&lt;/strong&gt; An override in the payments directory doesn't clear the global and project instructions. Where they conflict, the instructions closer to the current working directory take priority.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It doesn't expire automatically.&lt;/strong&gt; If you're using it temporarily, move it out of the directory or rename it when you're done, then start a new chat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You don't need an AGENTS.md first.&lt;/strong&gt; You can use an override file even if there's no regular AGENTS.md in that directory. You can also put a subdirectory's specific instructions in a regular AGENTS.md. What makes the override different is its priority within the same directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're just getting started, write the global and project instructions you need first. Use an override when there's a reason to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Optional reading: How AGENTS.md works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. When does Codex read AGENTS.md?
&lt;/h3&gt;

&lt;p&gt;When you start a new chat in a project and begin a task, Codex automatically loads the applicable AGENTS.md instructions.&lt;/p&gt;

&lt;p&gt;If you update one of these instruction files during a chat, you can ask Codex to read it again, or start a new chat to load the updated instructions.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How does Codex find AGENTS.md?
&lt;/h3&gt;

&lt;p&gt;Codex looks for global instructions first, then checks the directories along the path from the project root to the current working directory.&lt;/p&gt;

&lt;p&gt;For example, if you start a chat with the project's payments directory as the working directory, the order is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Global instructions -&amp;gt; Project root instructions -&amp;gt; Payments directory instructions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If any directories in between have instruction files, Codex loads those too. The search stops at the current working directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. If both files are in the same directory, which one does Codex read?
&lt;/h3&gt;

&lt;p&gt;Codex prefers &lt;code&gt;AGENTS.override.md&lt;/code&gt;. If there isn't a usable override file, it reads &lt;code&gt;AGENTS.md&lt;/code&gt;. Empty files are skipped.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. How do you check after creating or updating a file?
&lt;/h3&gt;

&lt;p&gt;Save the file, start a new chat in the project, and check whether the instructions have loaded. You can ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;List the paths of the instruction files loaded for this chat, and summarize the main requirements from each.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Check the paths and summaries, then try a small task. For example, if you wrote "Don't change code while we're discussing an approach," see whether Codex follows that instruction. Along with checking what it says it loaded, check what it actually does.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;My own experience with nearly a year of regular vibe coding.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://learn.chatgpt.com/docs/agent-configuration/agents-md" rel="noopener noreferrer"&gt;Official AGENTS.md documentation&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The main reference for this guide. Covers file locations, loading order, overrides, and ways to check which instructions are loaded.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://developers.openai.com/blog/rethinking-skills-and-prompts-for-gpt-6-astra" rel="noopener noreferrer"&gt;Rethinking skills and prompts for GPT-6 Astra&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Explains how to remove outdated instructions, provide context for the task at hand, and make collaboration boundaries clear. Some recommendations are specific to GPT-6 Astra.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://learn.chatgpt.com/docs/projects#use-local-projects-for-folders-and-codebases" rel="noopener noreferrer"&gt;Official Projects and chats documentation&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Explains the working directory used for new chats in the desktop app and where Codex automatically looks for AGENTS.md.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://code.claude.com/docs/en/memory" rel="noopener noreferrer"&gt;Official Claude Code documentation&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Explains what CLAUDE.md is for and how it stores collaboration requirements and project conventions.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I Built a Tesla Digital Wrap Editor in Two Weeks of Late Nights—and Someone Paid Before I Started Promoting It in Earnest</title>
      <dc:creator>Irving</dc:creator>
      <pubDate>Thu, 17 Sep 2026 09:22:05 +0000</pubDate>
      <link>https://dev.to/irvingk853/i-built-a-tesla-digital-wrap-editor-in-two-weeks-of-late-nights-and-someone-paid-before-i-started-4e6i</link>
      <guid>https://dev.to/irvingk853/i-built-a-tesla-digital-wrap-editor-in-two-weeks-of-late-nights-and-someone-paid-before-i-started-4e6i</guid>
      <description>&lt;p&gt;Last month, I shared photos of the latest digital wrap I'd made for my Tesla and asked people what they thought. To my surprise, what they really wanted to know was, “How did you make that?” Some of them were Tesla owners themselves.&lt;/p&gt;

&lt;p&gt;A quick explanation: a Tesla digital wrap changes the appearance of the 3D vehicle model on the car's screen and in the Tesla app. The actual car stays the same.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd13rw54viktixadu17uk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd13rw54viktixadu17uk.png" alt="The same digital wrap on the Tesla touchscreen and in the Tesla app, shown side by side" width="800" height="622"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Left: the Tesla touchscreen. Right: the Tesla app.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A Friend's Idea That Stuck with Me
&lt;/h2&gt;

&lt;p&gt;One friend who owns a Tesla messaged me privately. He wanted to put photos of his own pets on a digital wrap, so he could see them whenever he got into the car or opened the app. I thought that sounded pretty cute.&lt;/p&gt;

&lt;p&gt;I told him how to do it using &lt;a href="https://github.com/teslamotors/custom-wraps" rel="noopener noreferrer"&gt;Tesla's official templates&lt;/a&gt; and Photoshop, but he didn't know how to use Photoshop and eventually gave up.&lt;/p&gt;

&lt;p&gt;Earlier this month, I saw people in a group chat discussing a Tesla digital wrap product. It caught my interest, so I searched online and found other people looking for similar things.&lt;/p&gt;

&lt;p&gt;The group also mentioned a few products, which I checked out. They offered plenty of ready-made wraps to download and use for free, which was nice. They also supported AI generation: describe the theme and style you want, and AI helps generate a wrap.&lt;/p&gt;

&lt;p&gt;At that point, the features seemed pretty comprehensive. You could download an existing design or generate one based on your own ideas.&lt;/p&gt;

&lt;p&gt;Later, while chatting with that friend one evening, I was about to recommend those products to him. Then I remembered that he'd specifically wanted to use photos of his own cats and dogs.&lt;/p&gt;

&lt;p&gt;So I took another look: could he upload his own photo, resize and rotate it, and put it where he wanted, as he would in Photoshop? In the products I checked at the time, I couldn't find a convenient way to do that.&lt;/p&gt;

&lt;p&gt;That made me realize that &lt;strong&gt;“I want a dog-themed wrap” and “I want this photo of my own dog on the car door” are two different needs.&lt;/strong&gt; In the second case, the person already has an image they like. They need an easy way to edit it and see what the result will look like.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two Weeks to Build the First Version
&lt;/h2&gt;

&lt;p&gt;I'm a Tesla owner and have a background in development. The more I thought about it, the more I felt this was something I could build.&lt;/p&gt;

&lt;p&gt;So I got to work. After two weeks of late nights, I finally had the first version! It's called &lt;a href="https://teslawrap.studio/" rel="noopener noreferrer"&gt;Tesla Wrap Studio&lt;/a&gt;, and it lets you create digital wraps right in your browser.&lt;/p&gt;

&lt;p&gt;The first version has two main parts.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. A Wrap Gallery: Pick a Design and Download It
&lt;/h3&gt;

&lt;p&gt;I put together a gallery of ready-made digital wraps, including designs provided by Tesla, that people can download and use for free. If you don't want to design something from scratch, there are options to choose from.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqoajfn2xb7y9lp9qsqvc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqoajfn2xb7y9lp9qsqvc.png" alt="The gallery of digital wraps available to browse and download in Tesla Wrap Studio" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Custom Wraps: Use Your Own Images or Generate a Design with AI
&lt;/h3&gt;

&lt;p&gt;This was the part I most wanted to build. The editor lets you upload images, add text, and adjust your design for each area of the car's body.&lt;/p&gt;

&lt;p&gt;Thinking about my friend's request, simply being able to upload a photo wasn't enough. He also needed an easy way to put it where he wanted. So I wanted people to be able to select an area such as a door or the hood, then adjust the image's size, position, and rotation while seeing a live 3D preview alongside it.&lt;/p&gt;

&lt;p&gt;In the example below, I've placed a dog's photo on the right front door. As the photo is adjusted, the preview on the right shows how it looks on the car.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcmh0r6m6sdyb85dmgb1w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcmh0r6m6sdyb85dmgb1w.png" alt="Adjusting a dog's photo on the right front door while viewing the result in the 3D preview" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also enlarge the preview and rotate the car to check the image's placement and see how the design looks overall.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frkuusdbre6g1comy14ng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frkuusdbre6g1comy14ng.png" alt="An enlarged 3D preview of the dog's photo on the car door" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you don't have an image to start with, you can describe the theme and style you want and use AI to generate a wrap. This cartoon dog design is one example.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpswt52o0j5jvn44mca06.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpswt52o0j5jvn44mca06.png" alt="The layout of an AI-generated cartoon dog wrap in the editor" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's how the same design looks on the vehicle model:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fks1eldcw2r41x2y9qijw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fks1eldcw2r41x2y9qijw.png" alt="A full 3D preview of the AI-generated cartoon dog wrap" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also added an AI refinement feature. For example, if you've finished one or two areas of the car, AI can help complete the remaining areas. If the styles across different areas don't quite work together, it can also help make the design more consistent and refine the result.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Paying Customer Before I'd Started Promoting It in Earnest
&lt;/h2&gt;

&lt;p&gt;With the first version ready, I felt it was time to start getting it in front of people, so I asked friends to try it out.&lt;/p&gt;

&lt;p&gt;Then, one morning, before I'd started promoting it in earnest, a payment came in: a user in Japan had found the product through Google and paid for it!&lt;/p&gt;

&lt;p&gt;Seeing that payment notification made me really happy. I'd spent so many nights working late over those two weeks. Having someone willing to pay for something I'd built was a real encouragement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8gijjjp9kalgtdzd7zhs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8gijjjp9kalgtdzd7zhs.png" alt="A payment notification for Tesla Wrap Studio, with the customer's email address hidden" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But someone being willing to pay doesn't mean the product is already as easy to use as it should be.&lt;/p&gt;

&lt;p&gt;It's a very specific need, but it's one I share. Being able to build something that my friends and I wanted to use means a lot to me.&lt;/p&gt;

&lt;p&gt;Next, I want to keep improving the process of uploading photos, adjusting their position, previewing the design, and exporting it. My friend originally gave up because he didn't know how to use Photoshop. I'd like someone trying digital wraps for the first time to be able to bring their own idea to life without getting stuck.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>startup</category>
    </item>
    <item>
      <title>My Product Got “Interviewed”</title>
      <dc:creator>Irving</dc:creator>
      <pubDate>Mon, 17 Aug 2026 11:58:32 +0000</pubDate>
      <link>https://dev.to/irvingk853/my-product-got-interviewed-4ekb</link>
      <guid>https://dev.to/irvingk853/my-product-got-interviewed-4ekb</guid>
      <description>&lt;p&gt;A couple of weeks ago, I saw someone on X repost an open call from Jason&lt;br&gt;
Zhu, the founder of Ship2Market. He was inviting founders to submit their&lt;br&gt;
products, and his team would choose three to promote for free.&lt;/p&gt;

&lt;p&gt;I immediately thought of one of my own products. I still believed in the&lt;br&gt;
idea, but getting traffic had been a constant headache. The opportunity felt&lt;br&gt;
like a good fit, so I applied.&lt;/p&gt;

&lt;p&gt;More than 70 products were submitted, and I was lucky enough to be selected&lt;br&gt;
for a conversation with the team.&lt;/p&gt;

&lt;p&gt;We scheduled the call for today. Jason came across as warm and easy to talk&lt;br&gt;
to. I had expected it to be just Jason and Vivian, but four people showed up.&lt;br&gt;
As an introvert, I got a little nervous, and for a while my thoughts came out&lt;br&gt;
more jumbled than I would have liked.&lt;/p&gt;

&lt;p&gt;The product I submitted was &lt;a href="https://www.inkstudio.ai/" rel="noopener noreferrer"&gt;InkStudio.ai&lt;/a&gt;, which I started building over Lunar&lt;br&gt;
New Year.&lt;/p&gt;

&lt;p&gt;I first discovered the category while browsing Toolify’s revenue rankings for&lt;br&gt;
AI products. The fact that even these smaller products were making money told&lt;br&gt;
me there was at least some real willingness to pay.&lt;/p&gt;

&lt;p&gt;Then I tried the products myself.&lt;/p&gt;

&lt;p&gt;My honest first reaction was: Isn’t this just another AI wrapper?&lt;/p&gt;

&lt;p&gt;You type in a prompt, and it generates a tattoo image. It didn’t seem&lt;br&gt;
especially difficult to build. Then I tried looking at the products from a&lt;br&gt;
user’s perspective, and I still couldn’t find anything that truly wowed me.&lt;/p&gt;

&lt;p&gt;At the time, I had just started experimenting with AI tools for a global&lt;br&gt;
audience and wanted to get more hands-on practice, so I decided to build one.&lt;/p&gt;

&lt;p&gt;At the beginning of the call, Jason asked me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How is your product different from the competition?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My answer was this:&lt;/p&gt;

&lt;p&gt;Most competing products follow the same basic pattern: enter a prompt,&lt;br&gt;
generate a tattoo image, and stop there.&lt;/p&gt;

&lt;p&gt;That can certainly give people tattoo inspiration. But it’s also something&lt;br&gt;
most products in the space can do fairly easily, which makes it difficult to&lt;br&gt;
stand out.&lt;/p&gt;

&lt;p&gt;These days, with endless content online and generative AI everywhere, finding&lt;br&gt;
inspiration isn’t particularly hard.&lt;/p&gt;

&lt;p&gt;But tattoos are permanent, and regret can be expensive.&lt;/p&gt;

&lt;p&gt;While researching the market on Reddit, I came across many people who said&lt;br&gt;
they regretted their tattoos afterward. Some were getting their first tattoo.&lt;br&gt;
Others were naturally shy or introverted. They either didn’t know how to speak&lt;br&gt;
up or didn’t feel comfortable giving feedback to the tattoo artist during the&lt;br&gt;
process.&lt;/p&gt;

&lt;p&gt;By the time the tattoo was finished, they weren’t happy with the result.&lt;/p&gt;

&lt;p&gt;If I had to reduce InkStudio.ai’s core value to one thing, it would be this:&lt;/p&gt;

&lt;p&gt;Help people find inspiration and preview how a tattoo might actually look on&lt;br&gt;
their body, so they can communicate more clearly with their tattoo artist,&lt;br&gt;
walk into the shop with confidence, and walk out happy.&lt;/p&gt;

&lt;p&gt;When I started building the product, I knew very little about reaching users&lt;br&gt;
in international markets.&lt;/p&gt;

&lt;p&gt;SEO was what almost everyone in my circle seemed to be doing, so once the&lt;br&gt;
product was ready, I followed the same playbook. I worked on on-page SEO,&lt;br&gt;
off-page SEO, and programmatic SEO.&lt;/p&gt;

&lt;p&gt;But SEO was slow—especially for keywords with any real competition.&lt;/p&gt;

&lt;p&gt;At first, I was getting double-digit impressions and single-digit clicks.&lt;br&gt;
Eventually, impressions grew and clicks reached double digits, but the search&lt;br&gt;
queries in Google Search Console showed that the traffic still wasn’t well&lt;br&gt;
targeted.&lt;/p&gt;

&lt;p&gt;Without enough of the right users, I couldn’t see where people were dropping&lt;br&gt;
off, what needed to be improved, or what I should build next.&lt;/p&gt;

&lt;p&gt;I was essentially building in a vacuum and trusting my own gut.&lt;/p&gt;

&lt;p&gt;Waiting for Google to bless you with traffic is anxiety-inducing. Early-stage&lt;br&gt;
products rarely deliver a great experience right away, and I worried that a&lt;br&gt;
weak early experience could make my SEO efforts even harder.&lt;/p&gt;

&lt;p&gt;So I decided to be more proactive and look for channels that could help me&lt;br&gt;
reach users—and get feedback—more quickly.&lt;/p&gt;

&lt;p&gt;I tried Reddit. My account was banned within a few days.&lt;/p&gt;

&lt;p&gt;I tried TikTok. I asked people for advice, worked through all the setup, and&lt;br&gt;
started posting. My videos either got zero views or around 100.&lt;/p&gt;

&lt;p&gt;Once again, I had no idea what I was doing.&lt;/p&gt;

&lt;p&gt;Instagram and Facebook came with their own learning curves. Every platform&lt;br&gt;
had its own rules, and simply posting wasn’t enough.&lt;/p&gt;

&lt;p&gt;As a complete beginner to marketing on global social platforms, testing one&lt;br&gt;
channel after another—and making mistakes on every one of them—was honestly&lt;br&gt;
painful.&lt;/p&gt;

&lt;p&gt;During the call, Vivian shared some of what she had learned about how people&lt;br&gt;
in different markets think about tattoos.&lt;/p&gt;

&lt;p&gt;She also asked whether I had considered offering temporary tattoos.&lt;/p&gt;

&lt;p&gt;I immediately thought the idea made sense. If someone is worried about&lt;br&gt;
regretting a permanent tattoo, a temporary tattoo gives them a lower-risk way&lt;br&gt;
to try the design first.&lt;/p&gt;

&lt;p&gt;Since InkStudio.ai is ultimately about helping people reduce the chance of&lt;br&gt;
regret, the idea felt aligned with the product’s philosophy.&lt;/p&gt;

&lt;p&gt;Jason also shared how he approaches getting a new product off the ground,&lt;br&gt;
including Google Ads and social media.&lt;/p&gt;

&lt;p&gt;Toward the end of the call, I asked him:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The selected products get three days of free promotion. What would it look&lt;br&gt;
like to keep working together after that?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Looking back, that question revealed the biggest challenge I currently face&lt;br&gt;
as a product-manager-turned-indie developer:&lt;/p&gt;

&lt;p&gt;The cold-start problem—and, more simply, traffic.&lt;/p&gt;

&lt;p&gt;Indie developers often have to handle everything themselves: identifying the&lt;br&gt;
problem, designing the product, building it, and figuring out growth.&lt;/p&gt;

&lt;p&gt;It isn’t an easy path.&lt;/p&gt;

&lt;p&gt;SEO can consume a huge amount of time. If traffic arrives before the product&lt;br&gt;
is ready, you may not be able to make the most of it. But if you focus entirely&lt;br&gt;
on building the product, you can end up with something polished and no&lt;br&gt;
traffic—which also means no meaningful user feedback.&lt;/p&gt;

&lt;p&gt;Building the product is hard. Building the feedback loop around it may be even&lt;br&gt;
harder.&lt;/p&gt;

&lt;p&gt;One more thing that meant a lot to me: Ziye, who helped review my product and&lt;br&gt;
previously worked as an AI product manager at TikTok, shared a post about my&lt;br&gt;
product on WeChat Moments, WeChat’s social feed, and encouraged me.&lt;/p&gt;

&lt;p&gt;When you’re building alone and constantly wondering whether you’re on the&lt;br&gt;
right track, that kind of encouragement means more than people realize.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjeyq4f9ce98mwx9lyc9a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjeyq4f9ce98mwx9lyc9a.jpg" alt=" " width="800" height="1579"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>startup</category>
      <category>webdev</category>
      <category>product</category>
    </item>
    <item>
      <title>I Built an AI Website in 3 Hours. It Got 562 Sign-Ups in 8 Hours—and Left Me More Lost.</title>
      <dc:creator>Irving</dc:creator>
      <pubDate>Wed, 12 Aug 2026 12:13:32 +0000</pubDate>
      <link>https://dev.to/irvingk853/i-built-an-ai-website-in-3-hours-it-got-562-sign-ups-in-8-hours-and-left-me-more-lost-3548</link>
      <guid>https://dev.to/irvingk853/i-built-an-ai-website-in-3-hours-it-got-562-sign-ups-in-8-hours-and-left-me-more-lost-3548</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;This is a true story from eight months ago.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One night around 9 p.m., I noticed a search term beginning to spike on Google Trends. It looked like people were starting to search for something new—and that there might be an opportunity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9rf3h2i2q5ndf9tuxih0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9rf3h2i2q5ndf9tuxih0.png" alt="Google Trends chart showing a sudden spike in the blue trend line for the keyword I discovered." width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I shared it in a group chat and asked if anyone wanted to build a product around it. No one did, so I decided to give it a try myself.&lt;/p&gt;

&lt;p&gt;Three hours later, the website was live. The core feature, user authentication, and AI model integration were all working. It was close to 1 a.m. when I shut down my laptop and went to bed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Just another practice project, I thought.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At around 9 the next morning, I searched the keyword on Google and saw my website at the top of the results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz6bhxmwdkjfo5i2g8z14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz6bhxmwdkjfo5i2g8z14.png" alt="Google search results showing my newly launched website ranking first for the keyword." width="800" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was excited, so I took a screenshot and shared it with the group. Soon, someone tried the website and told me:&lt;/p&gt;

&lt;p&gt;“Your website has a bug. It’s throwing an error!”&lt;/p&gt;

&lt;p&gt;I checked and found that it wasn’t a problem with the code. The API credits I had bought had already run out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr56u4vqazbaud0pi44px.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr56u4vqazbaud0pi44px.png" alt="An error message displayed on my newly launched website." width="799" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was confused. I had just added more credits. How could they be gone after a single night?&lt;/p&gt;

&lt;p&gt;Then I opened the user dashboard.&lt;/p&gt;

&lt;p&gt;Just eight hours after launch, the website already had 562 registered users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffs6xukwx8tv2gr8txfn3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffs6xukwx8tv2gr8txfn3.png" alt="Admin dashboard showing that my website had 562 registered users eight hours after launch." width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To understand why that number mattered so much to me, you need to know where I was at the time.&lt;/p&gt;

&lt;p&gt;I had been building products independently for less than a month after working as a product manager. I had already launched five websites using AI, and none of them had attracted any attention.&lt;/p&gt;

&lt;p&gt;But this time, it felt like I had finally made the whole process work—from spotting a need to building a product and finding users.&lt;/p&gt;

&lt;p&gt;It was the clearest sign yet that I might be on the right track.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Wanted to Build Products Myself
&lt;/h2&gt;

&lt;p&gt;It all started with anxiety.&lt;/p&gt;

&lt;p&gt;Over the past few years, AI has advanced at an incredible pace.&lt;/p&gt;

&lt;p&gt;Last year in particular, AI seemed to be everywhere, and the tools kept getting smarter.&lt;/p&gt;

&lt;p&gt;That made me increasingly anxious.&lt;/p&gt;

&lt;p&gt;AI was already changing the way people worked, yet I was still mostly just chatting with ChatGPT and DeepSeek.&lt;/p&gt;

&lt;p&gt;If the AI boom was creating real opportunities, simply chatting with AI tools wasn’t going to give me an edge. Too many people could already do that.&lt;/p&gt;

&lt;p&gt;To get a better grasp of AI, I began studying the fundamentals of generative AI. I also learned how to build agents and workflows with Coze.&lt;/p&gt;

&lt;p&gt;I used them to help my company produce content at scale, and they improved our efficiency.&lt;/p&gt;

&lt;p&gt;But I soon began to question myself again:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Was writing prompts and building workflows really enough to say I understood AI?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These skills were useful, but they weren’t hard to replicate. Anyone willing to spend some time learning could do the same.&lt;/p&gt;

&lt;p&gt;I wanted to go further.&lt;/p&gt;

&lt;p&gt;That meant getting much more hands-on with AI. I didn’t want to use it for just one part of the process; I wanted to build a complete product on my own.&lt;/p&gt;

&lt;h2&gt;
  
  
  My First Month as a Solo Builder
&lt;/h2&gt;

&lt;p&gt;Toward the end of last year, I came across a group of people using AI to build web products for global markets.&lt;/p&gt;

&lt;p&gt;The playbook was simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use tools such as Google Trends to identify emerging needs.&lt;/li&gt;
&lt;li&gt;Build products quickly with AI.&lt;/li&gt;
&lt;li&gt;Acquire users through SEO.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After trying it for a few days, I managed to build a product of my own. I was thrilled, and I immediately shared it with my friends.&lt;/p&gt;

&lt;p&gt;In the past, taking a product from idea to launch could involve at least six different roles: a product manager, a designer, front-end and back-end developers, a QA engineer, and a DevOps engineer. But now, one person working with AI could handle the entire process.&lt;/p&gt;

&lt;p&gt;In my first month, excluding practice projects, I launched five websites. The fastest was the website from the beginning of this story. It took only three hours to go from identifying the need to launching the product.&lt;/p&gt;

&lt;p&gt;That was the first time I truly felt it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The AI era wasn’t on its way. It was already here.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  I Thought I Had Completed the Transition
&lt;/h2&gt;

&lt;p&gt;My background was in product management. My work usually involved researching user needs, writing PRDs, creating prototypes, and then handing everything over to designers and developers.&lt;/p&gt;

&lt;p&gt;I could define what to build, but I couldn’t build it myself. Now I could research user needs, design the product, build it, test it, and launch it—all on my own. That felt like a huge leap.&lt;/p&gt;

&lt;p&gt;For a while, I thought I had completed the transition. I had gone from working on one part of the product process to taking a product from idea to launch on my own.&lt;/p&gt;

&lt;p&gt;But that excitement didn’t last long.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a Product Wasn’t the Same as Building a Business
&lt;/h2&gt;

&lt;p&gt;Over the next two or three months, I continued launching products.&lt;/p&gt;

&lt;p&gt;Most of them ended up in one of two situations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I had a product, but no users.&lt;/li&gt;
&lt;li&gt;I had users, but no one was willing to pay.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I had gone through every step of the process, but only at a surface level.&lt;/p&gt;

&lt;p&gt;SEO, for example, looked like a clear user-acquisition channel. But in practice, it was far from simple.&lt;/p&gt;

&lt;p&gt;Low-competition keywords often had little search volume or didn’t point to a problem people would pay to solve. Keywords with real commercial value were usually already dominated by established competitors. In the short term, it was difficult to gain even a small foothold.&lt;/p&gt;

&lt;p&gt;Building a product quickly was one thing. Figuring out how to turn it into a viable business was another.&lt;/p&gt;

&lt;p&gt;Even with 562 sign-ups in eight hours, I still couldn’t answer some basic questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What problem were the users actually trying to solve?&lt;/li&gt;
&lt;li&gt;Why did some users pay while others didn’t? What were they actually willing to pay for?&lt;/li&gt;
&lt;li&gt;Would they return once interest in the keyword declined?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every step in the user journey raised another question, and I had to work through them one by one.&lt;/p&gt;

&lt;p&gt;This experience made me realize:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Traffic is not demand. A sign-up is not validation. Launching a product does not mean you have a viable business.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At the same time, AI had clearly lowered the barrier to building products.&lt;/p&gt;

&lt;p&gt;Tasks that once required months of technical learning had become much easier with AI. Work that once required several different roles could now be handled by one person.&lt;/p&gt;

&lt;p&gt;But that barrier had fallen for everyone.&lt;/p&gt;

&lt;p&gt;If I could use AI to launch a website in three hours, someone more familiar with the process might be even faster.&lt;/p&gt;

&lt;p&gt;Both knowing how to use AI and being able to build products with AI may gradually become baseline skills rather than lasting competitive advantages.&lt;/p&gt;

&lt;p&gt;So what would actually set me apart?&lt;/p&gt;

&lt;p&gt;Eight months ago, that question left me feeling lost all over again, right when I thought I had reached a new starting point.&lt;/p&gt;

&lt;p&gt;Eight months later, after building more products, making more mistakes, and gradually figuring out what I wanted to pursue, I now have my own answer.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://medium.com/@kakuxwn/i-built-an-ai-website-in-3-hours-it-got-562-sign-ups-in-8-hours-and-left-me-more-lost-aef1c283124a" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>career</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
