<?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: Lily Lily</title>
    <description>The latest articles on DEV Community by Lily Lily (@lily-builds).</description>
    <link>https://dev.to/lily-builds</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%2F4068242%2Ffe685424-1189-4798-9afc-b697573d4094.png</url>
      <title>DEV Community: Lily Lily</title>
      <link>https://dev.to/lily-builds</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lily-builds"/>
    <language>en</language>
    <item>
      <title>I Built My First AI Tool Site in 17 Days: From MVP to Payments and SEO</title>
      <dc:creator>Lily Lily</dc:creator>
      <pubDate>Mon, 10 Aug 2026 12:30:00 +0000</pubDate>
      <link>https://dev.to/lily-builds/i-built-my-first-ai-tool-site-in-17-days-from-mvp-to-payments-and-seo-15mf</link>
      <guid>https://dev.to/lily-builds/i-built-my-first-ai-tool-site-in-17-days-from-mvp-to-payments-and-seo-15mf</guid>
      <description>&lt;p&gt;I built my first AI tool site in 17 days.&lt;/p&gt;

&lt;p&gt;It is called &lt;a href="https://bg-remover.xyz" rel="noopener noreferrer"&gt;BG Remover&lt;/a&gt;, a simple web tool for removing image backgrounds and downloading transparent PNGs.&lt;/p&gt;

&lt;p&gt;I did not choose this idea because it was a new keyword or an empty market. It was not.&lt;/p&gt;

&lt;p&gt;I chose it because I wanted to complete the full loop of building a tool site for global users: MVP, deployment, login, credits, pricing, payments, SEO, analytics, and early distribution.&lt;/p&gt;

&lt;p&gt;The main goal was not perfection.&lt;/p&gt;

&lt;p&gt;The goal was to complete the full loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Chose a Background Remover
&lt;/h2&gt;

&lt;p&gt;Background removal is not a new market.&lt;/p&gt;

&lt;p&gt;There are already many strong products in this space. I knew that from the beginning.&lt;/p&gt;

&lt;p&gt;So why did I still choose it?&lt;/p&gt;

&lt;p&gt;Because for my first tool site, I wanted a clear and familiar problem. I did not want to spend all my energy guessing whether users understood the use case.&lt;/p&gt;

&lt;p&gt;Everyone understands this problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I have an image. I want the background removed. I want a transparent PNG.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That made it a good first project for learning the full process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ship an MVP&lt;/li&gt;
&lt;li&gt;deploy it publicly&lt;/li&gt;
&lt;li&gt;add Google login&lt;/li&gt;
&lt;li&gt;add usage credits&lt;/li&gt;
&lt;li&gt;add pricing&lt;/li&gt;
&lt;li&gt;connect payments&lt;/li&gt;
&lt;li&gt;prepare SEO&lt;/li&gt;
&lt;li&gt;submit to Google Search Console&lt;/li&gt;
&lt;li&gt;start distribution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For this first site, I cared more about completing the system than picking the perfect keyword.&lt;/p&gt;

&lt;h2&gt;
  
  
  The MVP Was Simple
&lt;/h2&gt;

&lt;p&gt;The first version only needed to do one thing:&lt;/p&gt;

&lt;p&gt;Upload an image, remove the background, and download the result.&lt;/p&gt;

&lt;p&gt;I used an existing background removal API instead of building my own model.&lt;/p&gt;

&lt;p&gt;That was a practical choice.&lt;/p&gt;

&lt;p&gt;As a first-time builder, I did not want to get stuck building the hardest technical part before I even had a product online.&lt;/p&gt;

&lt;p&gt;The lesson here was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For a first MVP, speed matters more than technical pride.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once the tool worked, I started seeing the real gap.&lt;/p&gt;

&lt;p&gt;A demo can process an image.&lt;/p&gt;

&lt;p&gt;A product needs accounts, limits, pricing, trust, and operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding Google Login Changed the Product
&lt;/h2&gt;

&lt;p&gt;At first, the tool was just a page with an upload box.&lt;/p&gt;

&lt;p&gt;Then I added Google sign-in.&lt;/p&gt;

&lt;p&gt;That made the product feel more serious, but more importantly, it created the foundation for everything else:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user accounts&lt;/li&gt;
&lt;li&gt;monthly credits&lt;/li&gt;
&lt;li&gt;usage history&lt;/li&gt;
&lt;li&gt;pricing plans&lt;/li&gt;
&lt;li&gt;subscriptions&lt;/li&gt;
&lt;li&gt;future product analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I used Cloudflare D1 to store users, login events, usage events, subscriptions, and payments.&lt;/p&gt;

&lt;p&gt;One small design decision I like:&lt;/p&gt;

&lt;p&gt;I do not store "remaining credits" directly.&lt;/p&gt;

&lt;p&gt;Instead, I store the user's plan and usage events. The remaining credits are calculated from successful usage in the current month.&lt;/p&gt;

&lt;p&gt;That feels safer because plans, payments, and monthly resets can change later.&lt;/p&gt;

&lt;h2&gt;
  
  
  A UX Mistake I Had to Fix
&lt;/h2&gt;

&lt;p&gt;One mistake I made early:&lt;/p&gt;

&lt;p&gt;Users could upload an image first, then get told they needed to sign in.&lt;/p&gt;

&lt;p&gt;Technically, that was fine.&lt;/p&gt;

&lt;p&gt;But as a user, it felt annoying.&lt;/p&gt;

&lt;p&gt;If someone has already selected an image, they have already invested effort. Blocking them after that creates frustration.&lt;/p&gt;

&lt;p&gt;So I changed the flow.&lt;/p&gt;

&lt;p&gt;Now logged-out users see the sign-in requirement before uploading. Logged-in users see their plan, monthly limit, used credits, and remaining credits before they process an image.&lt;/p&gt;

&lt;p&gt;This was one of the most useful product lessons from the project:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If a rule affects trust, show it before the user takes action.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Pricing Was Also Part of the Product
&lt;/h2&gt;

&lt;p&gt;I added a simple pricing page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Free: 3 images / month&lt;/li&gt;
&lt;li&gt;Starter: $8.99 / month for 25 images&lt;/li&gt;
&lt;li&gt;Creator: $19.99 / month for 80 images&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rules are clear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 successful background removal uses 1 credit&lt;/li&gt;
&lt;li&gt;failed uploads do not use credits&lt;/li&gt;
&lt;li&gt;unsupported files do not use credits&lt;/li&gt;
&lt;li&gt;oversized files do not use credits&lt;/li&gt;
&lt;li&gt;monthly credits do not roll over&lt;/li&gt;
&lt;li&gt;there are no automatic overage charges&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted the pricing page to answer one basic question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Will I be surprised later?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For small tools, trust is part of conversion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Payments Are More Than a Button
&lt;/h2&gt;

&lt;p&gt;I connected PayPal subscriptions.&lt;/p&gt;

&lt;p&gt;At first, I thought this would mostly mean adding a checkout button.&lt;/p&gt;

&lt;p&gt;It was more than that.&lt;/p&gt;

&lt;p&gt;A real payment flow needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;subscription plans&lt;/li&gt;
&lt;li&gt;checkout creation&lt;/li&gt;
&lt;li&gt;webhook handling&lt;/li&gt;
&lt;li&gt;webhook verification&lt;/li&gt;
&lt;li&gt;database records&lt;/li&gt;
&lt;li&gt;user plan updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The actual loop is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User pays -&amp;gt; PayPal sends webhook -&amp;gt; database updates -&amp;gt; user gets the right plan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That was an important shift for me.&lt;/p&gt;

&lt;p&gt;Payment integration is not finished when the button appears. It is finished when the user's access changes correctly after payment.&lt;/p&gt;

&lt;h2&gt;
  
  
  SEO and Analytics
&lt;/h2&gt;

&lt;p&gt;After the product worked, I added the SEO basics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;title and description&lt;/li&gt;
&lt;li&gt;canonical URLs&lt;/li&gt;
&lt;li&gt;robots.txt&lt;/li&gt;
&lt;li&gt;sitemap.xml&lt;/li&gt;
&lt;li&gt;JSON-LD structured data&lt;/li&gt;
&lt;li&gt;image alt text&lt;/li&gt;
&lt;li&gt;Google Search Console&lt;/li&gt;
&lt;li&gt;Google Analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was not advanced SEO.&lt;/p&gt;

&lt;p&gt;It was the minimum setup to help Google discover and understand the site.&lt;/p&gt;

&lt;p&gt;I also learned not to panic when a tool reports an issue. For example, Google Search Console may say a sitemap cannot be fetched shortly after submission, even if the sitemap is actually accessible.&lt;/p&gt;

&lt;p&gt;Now I try to verify the real URL first before changing code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Early Distribution Was Slower Than I Expected
&lt;/h2&gt;

&lt;p&gt;I prepared a Product Hunt draft, but I did not launch it immediately.&lt;/p&gt;

&lt;p&gt;I also submitted the site to SaaSHub and Uneed.&lt;/p&gt;

&lt;p&gt;That taught me another lesson:&lt;/p&gt;

&lt;p&gt;Not every backlink platform gives fast exposure.&lt;/p&gt;

&lt;p&gt;Some directories have long review queues. Uneed's free queue, for example, was far longer than I expected.&lt;/p&gt;

&lt;p&gt;So I started separating distribution channels into two groups.&lt;/p&gt;

&lt;p&gt;Long-term assets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product Hunt draft&lt;/li&gt;
&lt;li&gt;SaaSHub&lt;/li&gt;
&lt;li&gt;Uneed&lt;/li&gt;
&lt;li&gt;directory listings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Faster publishing channels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dev.to&lt;/li&gt;
&lt;li&gt;Hashnode&lt;/li&gt;
&lt;li&gt;Medium&lt;/li&gt;
&lt;li&gt;Indie Hackers&lt;/li&gt;
&lt;li&gt;selected Reddit communities&lt;/li&gt;
&lt;li&gt;X, after warming up the account&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article is part of that second group.&lt;/p&gt;

&lt;p&gt;I want to share the build process, not just drop a link.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;The biggest lesson is that building the tool is only part of the work.&lt;/p&gt;

&lt;p&gt;For tool sites, I now think the most important parts are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Finding real demand&lt;/li&gt;
&lt;li&gt;Shipping fast&lt;/li&gt;
&lt;li&gt;Making the product trustworthy&lt;/li&gt;
&lt;li&gt;Preparing SEO early&lt;/li&gt;
&lt;li&gt;Distributing consistently&lt;/li&gt;
&lt;li&gt;Iterating based on signals&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I can now build and launch a small tool site.&lt;/p&gt;

&lt;p&gt;But I still need to get much better at demand discovery and site operation.&lt;/p&gt;

&lt;p&gt;That is probably where most of the upside is.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Will Do Differently Next Time
&lt;/h2&gt;

&lt;p&gt;For my next tool site, I want to spend more time before coding on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keyword research&lt;/li&gt;
&lt;li&gt;search intent&lt;/li&gt;
&lt;li&gt;competitor pages&lt;/li&gt;
&lt;li&gt;long-tail SEO pages&lt;/li&gt;
&lt;li&gt;monetization paths&lt;/li&gt;
&lt;li&gt;distribution channels&lt;/li&gt;
&lt;li&gt;whether the problem is urgent enough&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also want to build more SEO pages earlier, not just one homepage and one pricing page.&lt;/p&gt;

&lt;p&gt;For example, a background remover could have pages for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;product photos&lt;/li&gt;
&lt;li&gt;profile pictures&lt;/li&gt;
&lt;li&gt;ecommerce images&lt;/li&gt;
&lt;li&gt;transparent PNGs&lt;/li&gt;
&lt;li&gt;social media images&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each page should solve a specific search intent.&lt;/p&gt;

&lt;p&gt;That is something I did not do enough in the first version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This project is still early.&lt;/p&gt;

&lt;p&gt;It may or may not become a meaningful business.&lt;/p&gt;

&lt;p&gt;But it helped me move from "I want to build tool sites for global users" to "I shipped my first one and understand the loop much better."&lt;/p&gt;

&lt;p&gt;The full path looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;idea -&amp;gt; MVP -&amp;gt; login -&amp;gt; credits -&amp;gt; pricing -&amp;gt; payments -&amp;gt; SEO -&amp;gt; analytics -&amp;gt; distribution -&amp;gt; iteration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My next goal is to keep building more small tool sites, improve my demand discovery, and get better at turning useful tools into real USD revenue.&lt;/p&gt;

&lt;p&gt;If you are also building small tools, I hope this post helps.&lt;/p&gt;

&lt;p&gt;And if you try &lt;a href="https://bg-remover.xyz" rel="noopener noreferrer"&gt;BG Remover&lt;/a&gt;, I would love feedback on the onboarding, pricing clarity, or anything that feels confusing.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>indiehackers</category>
      <category>seo</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
