<?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: Dany</title>
    <description>The latest articles on DEV Community by Dany (@majorbaguette).</description>
    <link>https://dev.to/majorbaguette</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%2F475176%2Fa7b69ed6-0312-4b4a-85ac-498f278e3e0c.png</url>
      <title>DEV Community: Dany</title>
      <link>https://dev.to/majorbaguette</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/majorbaguette"/>
    <language>en</language>
    <item>
      <title>What building an MCP form server taught me about designing tools for AI agents</title>
      <dc:creator>Dany</dc:creator>
      <pubDate>Thu, 02 Jul 2026 15:32:19 +0000</pubDate>
      <link>https://dev.to/majorbaguette/what-building-an-mcp-form-server-taught-me-about-designing-tools-for-ai-agents-3jkk</link>
      <guid>https://dev.to/majorbaguette/what-building-an-mcp-form-server-taught-me-about-designing-tools-for-ai-agents-3jkk</guid>
      <description>&lt;p&gt;I've spent the last few months building a form builder with an unusual bet: the &lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; server &lt;em&gt;is&lt;/em&gt; the product. There's a web dashboard, but you never have to open it. You describe a form to Claude, ChatGPT or Cursor (say, "a client intake form with budget and timeline fields") and the AI creates it, publishes a live URL, and reads the responses back, all in the same chat.&lt;/p&gt;

&lt;p&gt;Most form tools that ship an MCP server bolt it onto a dashboard-first product. Building MCP-first flipped how I think about tools. You're not designing a UI for a human who clicks. You're designing an API for a caller that reads your docs, guesses, and acts. Here's what actually mattered.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. One tool, one job
&lt;/h2&gt;

&lt;p&gt;My instinct from REST was to build a few flexible endpoints. That's wrong for agents. A model reasons better about a set of small, unambiguous tools than about one big tool with a mode flag.&lt;/p&gt;

&lt;p&gt;The server ended up with 12 narrow tools: &lt;code&gt;list_forms&lt;/code&gt;, &lt;code&gt;get_form&lt;/code&gt;, &lt;code&gt;create_form&lt;/code&gt;, &lt;code&gt;update_form&lt;/code&gt;, &lt;code&gt;duplicate_form&lt;/code&gt;, &lt;code&gt;publish_form&lt;/code&gt;, &lt;code&gt;unpublish_form&lt;/code&gt;, &lt;code&gt;set_form_theme&lt;/code&gt;, &lt;code&gt;get_responses&lt;/code&gt;, &lt;code&gt;get_form_analytics&lt;/code&gt;, &lt;code&gt;get_form_share_assets&lt;/code&gt;, &lt;code&gt;delete_form&lt;/code&gt;. Each does exactly one thing. When the model wants to change a theme, there's a tool literally called &lt;code&gt;set_form_theme&lt;/code&gt;, so it doesn't have to infer that from an &lt;code&gt;update_form&lt;/code&gt; payload shape.&lt;/p&gt;

&lt;p&gt;Rule of thumb: if you can't describe the tool in one sentence without the word "and", split it.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Names and descriptions are the UX
&lt;/h2&gt;

&lt;p&gt;The model never sees your code. It sees the tool name, the description, and the parameter schema, and it picks tools the way a person picks a button by its label. Those strings &lt;em&gt;are&lt;/em&gt; your interface.&lt;/p&gt;

&lt;p&gt;I rewrote every description to be about &lt;em&gt;when to use this&lt;/em&gt;, not &lt;em&gt;what it does internally&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;get_responses&lt;/code&gt;: "Return submissions for a form. Use when the user asks 'how many responses', 'who filled it out', or wants to analyze answers."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Putting concrete trigger phrases in the description made the model pick the right tool far more often. Treat description-writing as prompt engineering, because it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Annotate read-only vs destructive tools
&lt;/h2&gt;

&lt;p&gt;MCP lets you annotate each tool with hints like &lt;code&gt;readOnlyHint&lt;/code&gt; and &lt;code&gt;destructiveHint&lt;/code&gt;. It's tempting to skip them. Don't.&lt;/p&gt;

&lt;p&gt;Clients use them: some gate destructive calls behind a confirmation, and agents plan more cautiously around tools flagged as mutating. Getting them right is also a hard requirement to pass directory reviews (Anthropic's Connectors Directory rejects incorrect annotations).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;read-only&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;tool&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_forms"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nl"&gt;"annotations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"readOnlyHint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;one&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;genuinely&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;dangerous&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;tool&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"delete_form"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"annotations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"readOnlyHint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"destructiveHint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Of my tools, the five &lt;code&gt;get_*&lt;/code&gt;/&lt;code&gt;list_*&lt;/code&gt; ones are read-only, most writes are non-destructive state changes, and exactly one, &lt;code&gt;delete_form&lt;/code&gt;, is destructive. Being honest about that one is what lets a client protect the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Return results the model can chain
&lt;/h2&gt;

&lt;p&gt;A tool's return value is an input to the model's next step. Return structured, self-describing data: IDs, and above all URLs.&lt;/p&gt;

&lt;p&gt;Every mutation returns a &lt;code&gt;preview_url&lt;/code&gt;. That one field means the AI can create a form and immediately hand the user a link to verify it, without a second call. Anything you'd want the model to reference next, put it in the response.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Safe defaults for actions you can't undo
&lt;/h2&gt;

&lt;p&gt;Guessing plus irreversible actions is a bad mix. So &lt;code&gt;create_form&lt;/code&gt; returns a &lt;strong&gt;draft&lt;/strong&gt;. Publishing to a public URL is a separate, explicit &lt;code&gt;publish_form&lt;/code&gt; call. The model has to &lt;em&gt;decide&lt;/em&gt; to go public. It can't do it by accident while building.&lt;/p&gt;

&lt;p&gt;The general principle: make the reversible thing the default, and require an explicit step for anything you can't take back.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Design for chaining across servers
&lt;/h2&gt;

&lt;p&gt;The most freeing realization: I don't need native integrations. My server has no built-in Notion or Slack connector, and doesn't want one. If the user has a Notion MCP connected to the same assistant, they just say "save the qualified leads to my Notion" and the AI chains &lt;code&gt;get_responses&lt;/code&gt; into Notion. My job is to expose clean tools and get out of the way. The composition happens in the model's context, not in my backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing without a human in the loop
&lt;/h2&gt;

&lt;p&gt;Two things that helped:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inspectors.&lt;/strong&gt; The &lt;a href="https://glama.ai/mcp/servers" rel="noopener noreferrer"&gt;Glama&lt;/a&gt; inspector and &lt;a href="https://smithery.ai" rel="noopener noreferrer"&gt;Smithery&lt;/a&gt; let you call every tool with real auth and eyeball the responses before any model touches them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real clients.&lt;/strong&gt; Behavior differs between Claude, Cursor and others. Test in the clients your users actually run. Descriptions that work in one sometimes need tightening for another.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it comes down to
&lt;/h2&gt;

&lt;p&gt;Building for a model caller is API design, except your reader guesses instead of reading exactly. Small tools, trigger-oriented descriptions, honest annotations, chainable outputs, safe defaults. None of it is exotic. It's just good interface design, aimed at a new kind of user that reads your labels literally and then acts on them.&lt;/p&gt;

&lt;p&gt;If you're building an MCP server, I'd love to compare notes. And if you want to see these ideas in a shipped product, I'm building &lt;a href="https://brieform.app" rel="noopener noreferrer"&gt;Brieform&lt;/a&gt;: forms your AI builds, publishes and reads, from inside the chat.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Last week, I made my very first sale as an indiehacker</title>
      <dc:creator>Dany</dc:creator>
      <pubDate>Mon, 24 Jun 2024 12:25:22 +0000</pubDate>
      <link>https://dev.to/majorbaguette/last-week-i-made-my-very-first-sale-as-an-indiehacker-574d</link>
      <guid>https://dev.to/majorbaguette/last-week-i-made-my-very-first-sale-as-an-indiehacker-574d</guid>
      <description>&lt;p&gt;Last week, I made my very first sale as an #indiehackers 🥳&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"cool story bro"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But what's important here isn't the sale, it's how I got it 👉 Fighting my imposter syndrome.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I got a response on a marketing post here asking for a DM before buying.&lt;/li&gt;
&lt;li&gt;My 2023 me would have avoided it: "What if I can't respond positively? What if they thought it was bad? What if...".&lt;/li&gt;
&lt;li&gt;1 year xp Indie me: "Nothing happens out of nothing, let's go".&lt;/li&gt;
&lt;li&gt;The potential customer just wants to know if &lt;a href="https://directoryfa.st" rel="noopener noreferrer"&gt;DirectoryFast&lt;/a&gt; can do a "classic" directory layout?&lt;/li&gt;
&lt;li&gt;I spent 5 minutes creating it and sent a screenshot.&lt;/li&gt;
&lt;li&gt;Deal done, money and access sent in less than an hour.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sound trivial? It's absolutely not the case for a savage like me, I really don't like talking to people, my impostor syndrome is on another level.&lt;/p&gt;

&lt;p&gt;But I've been fighting it all my life, I chose a previous difficult career to prove myself and I choose another career in hardmode as an indie now.&lt;/p&gt;

&lt;p&gt;I just need challenges 💪&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>learning</category>
      <category>indie</category>
    </item>
    <item>
      <title>I made a whooping 1.60$ from my books-for-indies app and... it's totally fine.</title>
      <dc:creator>Dany</dc:creator>
      <pubDate>Fri, 03 May 2024 21:33:05 +0000</pubDate>
      <link>https://dev.to/majorbaguette/i-made-a-whooping-160from-my-books-for-indiesapp-and-its-totally-fine-3bn7</link>
      <guid>https://dev.to/majorbaguette/i-made-a-whooping-160from-my-books-for-indiesapp-and-its-totally-fine-3bn7</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2Fr9lcc01vw1nr2fr5jvpz.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fr9lcc01vw1nr2fr5jvpz.jpeg" alt="IndiesReadIt" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Intro
&lt;/h2&gt;

&lt;p&gt;First, a little look back at 4 months ago. &lt;/p&gt;

&lt;p&gt;I just shipped my first-ever product, a fantastic AI app that gives you everything you need to fill your e-commerce product page with enhanced images and automatic descriptions!&lt;/p&gt;

&lt;p&gt;Woohoo what a banger... No. 🙃&lt;/p&gt;

&lt;p&gt;Second to last on the ProductHunt launch, no users, no feedback, no nothing. And DDoS attacks. Noice!&lt;/p&gt;

&lt;p&gt;Disappointing right? But anyway &lt;strong&gt;I was starting to get annoyed&lt;/strong&gt; by this messy codebase and product. &lt;/p&gt;

&lt;p&gt;Time to move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The building process
&lt;/h2&gt;

&lt;p&gt;I needed to improve ALOT of skills, so naturally I searched for cool books on Amazon.&lt;/p&gt;

&lt;p&gt;Did you ever try to find business or even niche books blindly on Amazon? &lt;br&gt;
It's a mess. &lt;br&gt;
Like really, wtf? 🥴&lt;/p&gt;

&lt;p&gt;So I decided to make that app, "scratch your own itch" as they say. &lt;/p&gt;

&lt;p&gt;And that's what I made, &lt;strong&gt;I applied everything I learned from my previous failure&lt;/strong&gt;, and I decided to build a simple, clean, and useful app. &lt;/p&gt;

&lt;p&gt;I even made terrible wireframes and hasardous database tables and relations on a little notebook like a grown man!&lt;/p&gt;

&lt;p&gt;Motivated like I was I made a &lt;a href="https://majorleaguebaguette.com/tags/indiesreadit" rel="noopener noreferrer"&gt;blog series&lt;/a&gt; about it!&lt;/p&gt;

&lt;h2&gt;
  
  
  The money
&lt;/h2&gt;

&lt;p&gt;Cool story bro, how about money now? 💰 &lt;br&gt;
Don't worry I'm smart. It will be Amazon Affiliate links. My idea is so nice that the entire indie community will use it and I will be rich!&lt;/p&gt;

&lt;p&gt;Lol.&lt;/p&gt;

&lt;p&gt;I made &lt;strong&gt;1.20&lt;/strong&gt;$ on the ProductHunt launch and... that's all folks.&lt;br&gt;
&lt;em&gt;(no, actually, a lost one bought 1 another book for a massive 0.40$ this month!)&lt;/em&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fqegwrpesrpjkjopuj6of.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.amazonaws.com%2Fuploads%2Farticles%2Fqegwrpesrpjkjopuj6of.png" alt="money" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And you know what? &lt;strong&gt;I don't even give a fck!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The learning
&lt;/h2&gt;

&lt;p&gt;I made a product that I'm proud of, that I use myself, that I know is useful for others, and that I can improve. I learned a lot, I improved a lot, and I'm happy with that.&lt;/p&gt;

&lt;p&gt;While building this very product I had at least 3 app ideas, with the one I'll start working on very soon.&lt;br&gt;
I gained confidence in crucial aspects (marketing, communication, SEO...) and technologies (LemonSqueezy, Loops, SSR/SSG...) so &lt;strong&gt;I'm no more scared of the next project&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And most importantly, I met so many cool people from the indie community, and I'm so grateful for that. Thank you guys. 🤜🤛&lt;/p&gt;

&lt;h2&gt;
  
  
  The conclusion
&lt;/h2&gt;

&lt;p&gt;So, if you're like me, a little indie dev with a lot of ideas and a lot of motivation, don't be scared of failure. It's not the end of the world, it's the beginning of the next project and the next success. 💪&lt;/p&gt;

&lt;p&gt;And if you need good books to achieve your goals like your favorite #indiehackers, just go check what they read: &lt;a href="https://indiesread.it" rel="noopener noreferrer"&gt;IndiesRead.it&lt;/a&gt;&lt;/p&gt;

</description>
      <category>books</category>
      <category>community</category>
      <category>startup</category>
    </item>
    <item>
      <title>I made a free tool to help online sellers obtain product details automatically.</title>
      <dc:creator>Dany</dc:creator>
      <pubDate>Thu, 30 Nov 2023 12:58:29 +0000</pubDate>
      <link>https://dev.to/majorbaguette/i-made-a-free-tool-to-help-online-sellers-obtain-product-details-automatically-4bpl</link>
      <guid>https://dev.to/majorbaguette/i-made-a-free-tool-to-help-online-sellers-obtain-product-details-automatically-4bpl</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;Watching my wife build prestashop and wooCommerce sites for small local artisans, I realized that most of them were struggling to fill out their product details page and thus missing out on SEO and sales opportunities.&lt;/p&gt;

&lt;p&gt;So I decided to create a practical tool for online store owners and managers. It uses AI to create product details from a brief description.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it work?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Describe your product&lt;/li&gt;
&lt;li&gt;It generates product details (title, desc, keywords, meta desc and more)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Objective
&lt;/h2&gt;

&lt;p&gt;Simplify the product listing process and improve the efficiency of the online store for people that don't know how to do it properly or even experts that want to save time or get a quick template to iterate on.&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.amazonaws.com%2Fuploads%2Farticles%2Fprf0ajscwnk36qkki60n.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.amazonaws.com%2Fuploads%2Farticles%2Fprf0ajscwnk36qkki60n.jpg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Here is the link to the &lt;a href="https://depiktai.com/free-product-details-generator" rel="noopener noreferrer"&gt;tool&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What should I add to improve it?&lt;br&gt;
Already had a feed that someone would love to have tabs with sorted details&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;And here is my dev stack:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://stack.paralect.com/@depikt" rel="noopener noreferrer"&gt;depikt stack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd be happy to share with you my struggles, victories and discoveries in the course of this project, so don't hesitate to ask!&lt;/p&gt;

&lt;p&gt;Thanks for reading this and trying the tool, or even better, sharing it!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nextjs</category>
      <category>startup</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
