<?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: Eugene Maiorov</title>
    <description>The latest articles on DEV Community by Eugene Maiorov (@eugene_maiorov).</description>
    <link>https://dev.to/eugene_maiorov</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%2F3952902%2F5bf7b129-8ef2-4f9b-a994-2a546beb2d86.jpeg</url>
      <title>DEV Community: Eugene Maiorov</title>
      <link>https://dev.to/eugene_maiorov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eugene_maiorov"/>
    <language>en</language>
    <item>
      <title>Stop Copy-Pasting Project Context Into AI Chats</title>
      <dc:creator>Eugene Maiorov</dc:creator>
      <pubDate>Thu, 25 Jun 2026 07:26:12 +0000</pubDate>
      <link>https://dev.to/eugene_maiorov/stop-copy-pasting-project-context-into-ai-chats-2k1j</link>
      <guid>https://dev.to/eugene_maiorov/stop-copy-pasting-project-context-into-ai-chats-2k1j</guid>
      <description>&lt;p&gt;I use AI tools a lot when I write code.&lt;/p&gt;

&lt;p&gt;And I keep seeing the same annoying pattern.&lt;/p&gt;

&lt;p&gt;You open a new chat and start with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Here is the project context...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you paste the README.&lt;/p&gt;

&lt;p&gt;Then some API docs.&lt;/p&gt;

&lt;p&gt;Then one file.&lt;/p&gt;

&lt;p&gt;Then another file.&lt;/p&gt;

&lt;p&gt;Then you explain the part that is not in the docs.&lt;/p&gt;

&lt;p&gt;Then you say:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Important: ignore the old service, we don't use it anymore.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model answers.&lt;/p&gt;

&lt;p&gt;It is almost right.&lt;/p&gt;

&lt;p&gt;But not really.&lt;/p&gt;

&lt;p&gt;So you paste more context.&lt;/p&gt;

&lt;p&gt;And tomorrow you do the same thing again.&lt;/p&gt;

&lt;p&gt;At some point, this stops being “AI assistance” and becomes manual context babysitting.&lt;/p&gt;

&lt;h2&gt;
  
  
  The usual workflow looks like this
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer
   |
   v
Copy README
   |
   v
Copy docs
   |
   v
Copy code files
   |
   v
Explain architecture
   |
   v
Correct outdated assumptions
   |
   v
Ask the actual question
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works for one small task.&lt;/p&gt;

&lt;p&gt;But it does not scale.&lt;/p&gt;

&lt;p&gt;A chat window is not a project memory. It is just a temporary place where we throw text and hope the model understands enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project context is usually scattered
&lt;/h2&gt;

&lt;p&gt;In a real project, context lives everywhere.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context&lt;/th&gt;
&lt;th&gt;Where it usually lives&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Setup instructions&lt;/td&gt;
&lt;td&gt;README&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API behavior&lt;/td&gt;
&lt;td&gt;docs or code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Architecture decisions&lt;/td&gt;
&lt;td&gt;old tickets, Slack, Notion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deprecated logic&lt;/td&gt;
&lt;td&gt;someone's memory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database structure&lt;/td&gt;
&lt;td&gt;migrations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business rules&lt;/td&gt;
&lt;td&gt;code, comments, support cases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment details&lt;/td&gt;
&lt;td&gt;CI/CD config&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge cases&lt;/td&gt;
&lt;td&gt;production bugs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When we paste only part of this into a chat, the model gets only part of the story.&lt;/p&gt;

&lt;p&gt;And then it guesses.&lt;/p&gt;

&lt;p&gt;Sometimes the guess is useful.&lt;/p&gt;

&lt;p&gt;Sometimes it creates more work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The model is not always the problem
&lt;/h2&gt;

&lt;p&gt;It is easy to blame the model.&lt;/p&gt;

&lt;p&gt;“GPT failed.”&lt;/p&gt;

&lt;p&gt;“Claude missed the point.”&lt;/p&gt;

&lt;p&gt;“The coding agent is dumb.”&lt;/p&gt;

&lt;p&gt;But many times the model did exactly what we asked.&lt;/p&gt;

&lt;p&gt;We gave it incomplete context.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Question:
How should I add a new payment provider?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To answer this properly, the model needs to know things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Is there already a payment abstraction?
- Are providers stored in config or database?
- How are webhooks handled?
- Are payments async?
- What should be logged?
- What should never be logged?
- Are there old providers that should not be copied?
- Are there tests?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without that, the model will still answer.&lt;/p&gt;

&lt;p&gt;That is the dangerous part.&lt;/p&gt;

&lt;p&gt;It will answer confidently from partial context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Copy-paste context also gets stale
&lt;/h2&gt;

&lt;p&gt;Another problem is context drift.&lt;/p&gt;

&lt;p&gt;Your README says one thing.&lt;/p&gt;

&lt;p&gt;Your code does another thing.&lt;/p&gt;

&lt;p&gt;Your old docs describe a service that was removed six months ago.&lt;/p&gt;

&lt;p&gt;A ticket contains the real decision, but nobody moved it to documentation.&lt;/p&gt;

&lt;p&gt;So the chat context becomes a random mix of truth, old truth, and maybe-truth.&lt;/p&gt;

&lt;p&gt;Something 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;Project context in chat
|
|-- README
|      status: mostly correct
|
|-- old API docs
|      status: partly outdated
|
|-- copied code file
|      status: correct
|
|-- architecture note
|      status: old
|
|-- developer explanation
|      status: correct but temporary
|
|-- missing edge cases
       status: unknown
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No wonder the model gets confused.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bigger context windows do not fully solve this
&lt;/h2&gt;

&lt;p&gt;Yes, larger context windows help.&lt;/p&gt;

&lt;p&gt;You can paste more.&lt;/p&gt;

&lt;p&gt;You can include more files.&lt;/p&gt;

&lt;p&gt;You can dump more docs.&lt;/p&gt;

&lt;p&gt;But “more text” is not the same as “better context”.&lt;/p&gt;

&lt;p&gt;A simple mental chart:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Usefulness
^
|                        clean, structured context
|                     /
|                  /
|               /
|            /
|         /
|      /  giant copy-paste dump
|   /
+---------------------------------&amp;gt; Amount of text
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At some point, more pasted text becomes noise.&lt;/p&gt;

&lt;p&gt;The model does not need everything.&lt;/p&gt;

&lt;p&gt;It needs the right thing at the right moment.&lt;/p&gt;

&lt;h2&gt;
  
  
  A better pattern: reusable project context
&lt;/h2&gt;

&lt;p&gt;Instead of pasting project context again and again, I think we need to treat project context as something reusable.&lt;/p&gt;

&lt;p&gt;Not 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;Every chat starts from zero
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But 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;AI chat / agent
      |
      v
Project context layer
      |
      |-- repository knowledge
      |-- docs
      |-- architecture rules
      |-- API examples
      |-- internal tools
      |-- deprecated things to avoid
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the agent can use the project context when it needs it.&lt;/p&gt;

&lt;p&gt;The developer should not have to explain the same project every day.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this could look like
&lt;/h2&gt;

&lt;p&gt;Imagine a simple project context file.&lt;/p&gt;

&lt;p&gt;Not perfect. Not magic. Just structured.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;project&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;billing-api&lt;/span&gt;
  &lt;span class="na"&gt;stack&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Laravel&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;MySQL&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Redis&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Queue workers&lt;/span&gt;

&lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Never log full payment payloads&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Webhooks must be idempotent&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;New providers must implement PaymentProviderInterface&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;OldStripeService is deprecated, do not copy it&lt;/span&gt;

&lt;span class="na"&gt;important_paths&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;app/Payments&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;app/Http/Controllers/WebhookController.php&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;database/migrations&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;tests/Feature/Payments&lt;/span&gt;

&lt;span class="na"&gt;common_tasks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;add_payment_provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;read_first&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;app/Payments/PaymentProviderInterface.php&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;app/Payments/StripeProvider.php&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;tests/Feature/Payments&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is much better than pasting random files into chat.&lt;/p&gt;

&lt;p&gt;The point is not this exact YAML format.&lt;/p&gt;

&lt;p&gt;The point is that project knowledge should have structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is where MCP becomes useful
&lt;/h2&gt;

&lt;p&gt;MCP gives AI clients a standard way to connect to external tools and context.&lt;/p&gt;

&lt;p&gt;So instead of dumping everything into the prompt, we can expose useful project context through an MCP server.&lt;/p&gt;

&lt;p&gt;For example, an MCP server for a project could provide tools like:&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="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;"search_project_docs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Search approved project documentation and architecture notes."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"input"&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;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&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;Or:&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="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;"get_project_rule"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Returns internal development rules for a specific area."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"input"&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;"area"&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;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"enum"&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="s2"&gt;"payments"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"auth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deployments"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"database"&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="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;Or:&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="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;"find_relevant_files"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Finds important repository files for a development task."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"input"&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;"task"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&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;Now the agent does not need the whole project pasted into the chat.&lt;/p&gt;

&lt;p&gt;It can ask for the right piece of context.&lt;/p&gt;

&lt;h2&gt;
  
  
  But “connect everything” is also a trap
&lt;/h2&gt;

&lt;p&gt;There is another mistake.&lt;/p&gt;

&lt;p&gt;People connect all docs, all tools, all APIs, all repositories, and all tickets.&lt;/p&gt;

&lt;p&gt;Then they expect the agent to figure it out.&lt;/p&gt;

&lt;p&gt;That can become another kind of mess.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bad setup:

AI agent
   |
   |-- 200 tools
   |-- 10 repositories
   |-- 5 documentation spaces
   |-- old tickets
   |-- random notes
   |-- internal APIs with unclear names
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not much better than copy-pasting.&lt;/p&gt;

&lt;p&gt;It is just automated noise.&lt;/p&gt;

&lt;p&gt;A better setup is smaller and cleaner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Better setup:

AI agent
   |
   |-- search approved docs
   |-- inspect repository knowledge
   |-- read architecture rules
   |-- find relevant files
   |-- use a few clear project tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is not to give the model everything.&lt;/p&gt;

&lt;p&gt;The goal is to give it a good surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool names matter more than they look
&lt;/h2&gt;

&lt;p&gt;This is bad tool design:&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="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;"get_data"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Gets data"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"input"&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;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&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;The model has to guess everything.&lt;/p&gt;

&lt;p&gt;What data?&lt;br&gt;
From where?&lt;br&gt;
For what use case?&lt;br&gt;
What should the input look like?&lt;/p&gt;

&lt;p&gt;This is better:&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="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;"search_billing_docs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Searches approved billing documentation. Use this before changing payment provider logic."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"input"&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;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&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;Still simple.&lt;/p&gt;

&lt;p&gt;But now the model has a much better chance of using it correctly.&lt;/p&gt;

&lt;p&gt;This is why I think tool design is becoming part of developer experience.&lt;/p&gt;

&lt;p&gt;We are no longer designing only for humans.&lt;/p&gt;

&lt;p&gt;We are also designing for models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local context is fine until a team needs it
&lt;/h2&gt;

&lt;p&gt;For one developer, local setup is okay.&lt;/p&gt;

&lt;p&gt;You run a local MCP server.&lt;/p&gt;

&lt;p&gt;You connect it to your AI client.&lt;/p&gt;

&lt;p&gt;You add some tools.&lt;/p&gt;

&lt;p&gt;It works.&lt;/p&gt;

&lt;p&gt;But in a team, this gets messy fast.&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;What happens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Different local configs&lt;/td&gt;
&lt;td&gt;AI answers differ between developers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No versioning&lt;/td&gt;
&lt;td&gt;Tool changes break workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No shared testing&lt;/td&gt;
&lt;td&gt;Nobody knows if the agent uses tools correctly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Old docs included&lt;/td&gt;
&lt;td&gt;The model learns the wrong thing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Too many tools&lt;/td&gt;
&lt;td&gt;The agent chooses poorly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is where project context starts to look like infrastructure.&lt;/p&gt;

&lt;p&gt;It needs to be shared.&lt;/p&gt;

&lt;p&gt;It needs to be tested.&lt;/p&gt;

&lt;p&gt;It needs to be versioned.&lt;/p&gt;

&lt;p&gt;It needs to be maintained.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is why I am building Vectoralix
&lt;/h2&gt;

&lt;p&gt;I am building Vectoralix because I think AI agents need better project context, not just bigger prompts.&lt;/p&gt;

&lt;p&gt;Vectoralix is a platform for creating, testing, versioning, and hosting MCP servers and knowledge sources for AI agents.&lt;/p&gt;

&lt;p&gt;The workflow I want is simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Import repository
      |
      v
Add project knowledge
      |
      v
Create clear MCP tools
      |
      v
Test in playground
      |
      v
Publish stable MCP endpoint
      |
      v
Use it from AI clients
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The playground part is important.&lt;/p&gt;

&lt;p&gt;A tool can be technically valid and still bad for an agent.&lt;/p&gt;

&lt;p&gt;The name may be unclear.&lt;/p&gt;

&lt;p&gt;The response may be too large.&lt;/p&gt;

&lt;p&gt;The schema may be too open.&lt;/p&gt;

&lt;p&gt;The model may choose it at the wrong time.&lt;/p&gt;

&lt;p&gt;So I do not think MCP should be “deploy first, debug later”.&lt;/p&gt;

&lt;p&gt;It should be tested before it becomes part of a real workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real goal
&lt;/h2&gt;

&lt;p&gt;The goal is not to replace developers.&lt;/p&gt;

&lt;p&gt;The goal is much smaller and more practical.&lt;/p&gt;

&lt;p&gt;Stop explaining the same project again and again.&lt;/p&gt;

&lt;p&gt;Stop pasting the same README.&lt;/p&gt;

&lt;p&gt;Stop saying “ignore that old file” every day.&lt;/p&gt;

&lt;p&gt;Stop asking the model to guess from partial context.&lt;/p&gt;

&lt;p&gt;A good AI workflow should feel more 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;Developer:
"Add a new payment provider."

Agent:
"I found the payment interface, current provider, webhook rules,
and tests. I will follow the existing pattern and avoid the deprecated service."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the kind of workflow I want.&lt;/p&gt;

&lt;p&gt;Not magic.&lt;/p&gt;

&lt;p&gt;Just less repetitive explaining.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;Copy-pasting project context into AI chats is okay for quick tasks.&lt;/p&gt;

&lt;p&gt;But if you do it every day, it is probably a sign.&lt;/p&gt;

&lt;p&gt;Your project context is not reusable yet.&lt;/p&gt;

&lt;p&gt;The next step for AI coding is not only better models.&lt;/p&gt;

&lt;p&gt;It is better context infrastructure.&lt;/p&gt;

&lt;p&gt;Cleaner project knowledge.&lt;/p&gt;

&lt;p&gt;Better MCP servers.&lt;/p&gt;

&lt;p&gt;Smaller and clearer tools.&lt;/p&gt;

&lt;p&gt;Less guessing.&lt;/p&gt;

&lt;p&gt;More useful agents.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Stop Reinventing Boilerplate: Modern Web Development Is About Orchestration</title>
      <dc:creator>Eugene Maiorov</dc:creator>
      <pubDate>Tue, 16 Jun 2026 17:45:29 +0000</pubDate>
      <link>https://dev.to/eugene_maiorov/stop-reinventing-boilerplate-modern-web-development-is-about-orchestration-41k5</link>
      <guid>https://dev.to/eugene_maiorov/stop-reinventing-boilerplate-modern-web-development-is-about-orchestration-41k5</guid>
      <description>&lt;p&gt;There is an old habit in web development that still feels attractive: build everything yourself.&lt;/p&gt;

&lt;p&gt;Custom boilerplate. Custom admin panels. Custom authentication. Custom deployment scripts. Custom validation layers. Custom logging. Custom everything.&lt;/p&gt;

&lt;p&gt;It feels professional. It feels like engineering. It feels like control.&lt;/p&gt;

&lt;p&gt;But in many modern web projects, I think this approach is becoming a utopia.&lt;/p&gt;

&lt;p&gt;Not because developers became worse. Not because writing code is bad. But because the web became too complex, too fast-moving, and too expensive to maintain when every team keeps reinventing the same basic building blocks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real cost of “just writing it ourselves”
&lt;/h2&gt;

&lt;p&gt;When a team writes its own boilerplate, the first version often looks reasonable.&lt;/p&gt;

&lt;p&gt;A few helpers here. A small internal framework there. Some custom conventions. Some glue code. Some shared base classes. A small wrapper around an API. A custom permission system because “our case is different.”&lt;/p&gt;

&lt;p&gt;At the beginning, it works.&lt;/p&gt;

&lt;p&gt;The problem appears later.&lt;/p&gt;

&lt;p&gt;Six months later, nobody remembers why the abstraction was designed that way. One year later, the project has edge cases nobody wants to touch. Three years later, the system becomes “legacy,” not because the programming language is old, but because the decisions inside the codebase are hard to change.&lt;/p&gt;

&lt;p&gt;This is how many old systems become almost impossible to support.&lt;/p&gt;

&lt;p&gt;Not always because they were badly written. Often because they were over-customized, under-documented, and built around assumptions that stopped being true.&lt;/p&gt;

&lt;h2&gt;
  
  
  Orchestration is becoming more important than boilerplate
&lt;/h2&gt;

&lt;p&gt;Modern web development is less about writing every part from scratch and more about choosing, combining, and controlling existing systems.&lt;/p&gt;

&lt;p&gt;Authentication can be handled by mature providers.&lt;/p&gt;

&lt;p&gt;Payments can be handled by Stripe, Paddle, Lemon Squeezy, or other platforms.&lt;/p&gt;

&lt;p&gt;Email delivery can be delegated.&lt;/p&gt;

&lt;p&gt;Analytics can be delegated.&lt;/p&gt;

&lt;p&gt;Background jobs, queues, observability, file storage, search, feature flags, error tracking, deployment, monitoring — almost every common problem already has strong solutions on the market.&lt;/p&gt;

&lt;p&gt;The developer’s job is changing.&lt;/p&gt;

&lt;p&gt;It is not only “write more code.”&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;choose the right components;&lt;/li&gt;
&lt;li&gt;understand tradeoffs;&lt;/li&gt;
&lt;li&gt;design clean boundaries;&lt;/li&gt;
&lt;li&gt;keep the system replaceable;&lt;/li&gt;
&lt;li&gt;avoid unnecessary coupling;&lt;/li&gt;
&lt;li&gt;document decisions;&lt;/li&gt;
&lt;li&gt;keep the architecture understandable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is engineering too.&lt;/p&gt;

&lt;p&gt;Sometimes it is harder than writing code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Less code usually means less liability
&lt;/h2&gt;

&lt;p&gt;Every line of code you own is a line you may need to debug, test, secure, migrate, document, and explain to another developer.&lt;/p&gt;

&lt;p&gt;A smaller codebase is not automatically better, but unnecessary code is almost always expensive.&lt;/p&gt;

&lt;p&gt;When you use a mature external solution, you reduce some maintenance burden. You let another team solve a generic problem so your team can focus on the specific business problem.&lt;/p&gt;

&lt;p&gt;Of course, this is not free.&lt;/p&gt;

&lt;p&gt;The flip side is dependencies.&lt;/p&gt;

&lt;p&gt;Every dependency is a risk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vendor lock-in;&lt;/li&gt;
&lt;li&gt;pricing changes;&lt;/li&gt;
&lt;li&gt;API changes;&lt;/li&gt;
&lt;li&gt;security issues;&lt;/li&gt;
&lt;li&gt;service downtime;&lt;/li&gt;
&lt;li&gt;migration cost;&lt;/li&gt;
&lt;li&gt;loss of control.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the answer is not “use dependencies everywhere.”&lt;/p&gt;

&lt;p&gt;The answer is to be intentional.&lt;/p&gt;

&lt;p&gt;Do not build everything yourself by default. Do not install everything by default either. Think in tradeoffs.&lt;/p&gt;

&lt;p&gt;The question should be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is this code part of our real advantage, or are we just rebuilding infrastructure that already exists?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Architecture matters more than clever boilerplate
&lt;/h2&gt;

&lt;p&gt;A lot of developers still spend too much energy on implementation details that tools can already handle.&lt;/p&gt;

&lt;p&gt;Formatting. Indents. Whitespace. Import sorting. Small style preferences.&lt;/p&gt;

&lt;p&gt;These things matter for consistency, but they should not consume expensive human review time.&lt;/p&gt;

&lt;p&gt;Use linters. Use formatters. Use static analysis. Use code analyzers. Use CI checks. Let tools fight about spaces and semicolons.&lt;/p&gt;

&lt;p&gt;Human review should focus on things tools cannot fully understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this design maintainable?&lt;/li&gt;
&lt;li&gt;Is the boundary clear?&lt;/li&gt;
&lt;li&gt;Will this scale?&lt;/li&gt;
&lt;li&gt;Is this abstraction necessary?&lt;/li&gt;
&lt;li&gt;Is this decision documented?&lt;/li&gt;
&lt;li&gt;Can another developer understand this six months later?&lt;/li&gt;
&lt;li&gt;Are we creating future migration pain?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In 2026, arguing manually about indentation in pull requests is too expensive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation is not optional anymore
&lt;/h2&gt;

&lt;p&gt;In old projects, the biggest problem is often not the code itself.&lt;/p&gt;

&lt;p&gt;The problem is missing context.&lt;/p&gt;

&lt;p&gt;Why was this service created?&lt;/p&gt;

&lt;p&gt;Why does this table have this strange structure?&lt;/p&gt;

&lt;p&gt;Why is this module not using the same pattern as the rest of the system?&lt;/p&gt;

&lt;p&gt;Why are we afraid to refactor this part?&lt;/p&gt;

&lt;p&gt;Without documentation, every new developer has to reverse-engineer history from code, Git commits, Slack messages, and tribal knowledge.&lt;/p&gt;

&lt;p&gt;That is slow. That is expensive. That is risky.&lt;/p&gt;

&lt;p&gt;Good project documentation does not need to be huge. But every serious project should have clear notes about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture decisions;&lt;/li&gt;
&lt;li&gt;coding conventions;&lt;/li&gt;
&lt;li&gt;deployment flow;&lt;/li&gt;
&lt;li&gt;domain rules;&lt;/li&gt;
&lt;li&gt;external dependencies;&lt;/li&gt;
&lt;li&gt;known limitations;&lt;/li&gt;
&lt;li&gt;reasons behind important tradeoffs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is more valuable than another custom boilerplate generator.&lt;/p&gt;

&lt;h2&gt;
  
  
  “Inventing the bicycle” is not always innovation
&lt;/h2&gt;

&lt;p&gt;There are cases where custom code makes sense.&lt;/p&gt;

&lt;p&gt;If your business depends on a unique workflow, a unique algorithm, a unique user experience, or a unique integration model, then yes, build it carefully.&lt;/p&gt;

&lt;p&gt;But many teams invent the bicycle in places where the bicycle is already good enough.&lt;/p&gt;

&lt;p&gt;Custom auth is not usually innovation.&lt;/p&gt;

&lt;p&gt;Custom billing is not usually innovation.&lt;/p&gt;

&lt;p&gt;Custom logging is not usually innovation.&lt;/p&gt;

&lt;p&gt;Custom admin CRUD is not usually innovation.&lt;/p&gt;

&lt;p&gt;Custom formatting rules are not usually innovation.&lt;/p&gt;

&lt;p&gt;Most of the time, these things are just future maintenance.&lt;/p&gt;

&lt;p&gt;The best code is sometimes the code you decided not to write.&lt;/p&gt;

&lt;h2&gt;
  
  
  The modern developer should think like an architect
&lt;/h2&gt;

&lt;p&gt;I do not think web developers should stop coding. That would be absurd.&lt;/p&gt;

&lt;p&gt;But I do think the center of gravity is moving.&lt;/p&gt;

&lt;p&gt;The valuable developer is not the one who writes the most boilerplate. The valuable developer is the one who knows what should exist in the codebase and what should not.&lt;/p&gt;

&lt;p&gt;That means understanding architecture, systems, documentation, team workflows, automation, deployment, testing, observability, and long-term maintenance.&lt;/p&gt;

&lt;p&gt;It means asking better questions before writing code:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Should we build this?&lt;/p&gt;

&lt;p&gt;Should we buy this?&lt;/p&gt;

&lt;p&gt;Should we integrate this?&lt;/p&gt;

&lt;p&gt;Should we remove this?&lt;/p&gt;

&lt;p&gt;Will this decision still make sense in two years?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Good software is not only created by writing code. It is also created by avoiding the wrong code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;Modern web development is not about proving that we can build everything ourselves.&lt;/p&gt;

&lt;p&gt;Most experienced developers can build almost anything given enough time.&lt;/p&gt;

&lt;p&gt;The real question is whether we should.&lt;/p&gt;

&lt;p&gt;In many projects, the better strategy is orchestration: using existing tools, keeping the codebase smaller, documenting decisions, enforcing style automatically, and spending human attention on architecture instead of boilerplate.&lt;/p&gt;

&lt;p&gt;Because in the long run, the most expensive part of software is not writing the first version.&lt;/p&gt;

&lt;p&gt;It is living with it.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>architecture</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>SEO and GEO in 2026: A Practical Growth Strategy for Small SaaS Projects</title>
      <dc:creator>Eugene Maiorov</dc:creator>
      <pubDate>Mon, 15 Jun 2026 19:47:02 +0000</pubDate>
      <link>https://dev.to/eugene_maiorov/seo-and-geo-in-2026-a-practical-growth-strategy-for-small-saas-projects-4pc6</link>
      <guid>https://dev.to/eugene_maiorov/seo-and-geo-in-2026-a-practical-growth-strategy-for-small-saas-projects-4pc6</guid>
      <description>&lt;p&gt;I think a lot of indie makers still treat SEO like it is only about keywords, backlinks, and publishing blog posts.&lt;/p&gt;

&lt;p&gt;That is still part of it, but in 2026 it feels incomplete.&lt;/p&gt;

&lt;p&gt;Search is changing. AI answers, Google AI Overviews, ChatGPT-style discovery, Reddit threads, YouTube videos, directory pages, and “best tools for X” lists are all part of the same discovery surface now.&lt;/p&gt;

&lt;p&gt;So when people say &lt;strong&gt;GEO&lt;/strong&gt; — generative engine optimization — I do not think it should mean “hack AI search.”&lt;/p&gt;

&lt;p&gt;For small products, I think it means something simpler:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make your product easy to understand, easy to cite, easy to compare, and easy to discover across the places where people already search.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the idea behind how I am thinking about growing &lt;strong&gt;Linxalium&lt;/strong&gt;, a curated directory for developer tools, SaaS products, and useful projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  SEO is still the base layer
&lt;/h2&gt;

&lt;p&gt;I do not believe SEO is dead.&lt;/p&gt;

&lt;p&gt;But I also do not think “write 100 AI articles and wait” works anymore.&lt;/p&gt;

&lt;p&gt;The stronger approach is boring but more durable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clear landing pages&lt;/li&gt;
&lt;li&gt;useful category pages&lt;/li&gt;
&lt;li&gt;good titles and descriptions&lt;/li&gt;
&lt;li&gt;real screenshots&lt;/li&gt;
&lt;li&gt;fast pages&lt;/li&gt;
&lt;li&gt;internal links&lt;/li&gt;
&lt;li&gt;honest product descriptions&lt;/li&gt;
&lt;li&gt;no fake reviews&lt;/li&gt;
&lt;li&gt;no thin duplicated content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a directory like Linxalium, this matters a lot.&lt;/p&gt;

&lt;p&gt;A project page should not just say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Best AI tool for productivity.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That says almost nothing.&lt;/p&gt;

&lt;p&gt;A better page explains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what the product does&lt;/li&gt;
&lt;li&gt;who it is for&lt;/li&gt;
&lt;li&gt;what problem it solves&lt;/li&gt;
&lt;li&gt;what category it belongs to&lt;/li&gt;
&lt;li&gt;whether it is free, paid, open source, waitlist, or early stage&lt;/li&gt;
&lt;li&gt;why someone should care&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is useful for Google, but more importantly, it is useful for humans.&lt;/p&gt;

&lt;p&gt;And if the page is useful for humans, it has a better chance of being useful for AI search systems too.&lt;/p&gt;

&lt;h2&gt;
  
  
  GEO is mostly about being easy to mention
&lt;/h2&gt;

&lt;p&gt;I see a lot of people trying to overcomplicate GEO.&lt;/p&gt;

&lt;p&gt;They ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Should I create an llms.txt file?&lt;/li&gt;
&lt;li&gt;Should I write special AI summaries?&lt;/li&gt;
&lt;li&gt;Should I create pages only for ChatGPT?&lt;/li&gt;
&lt;li&gt;Should I stuff every page with question-answer blocks?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maybe some experiments are worth trying, but I would not start there.&lt;/p&gt;

&lt;p&gt;For small products, I would focus on making the product easy to describe in one sentence.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Linxalium is a curated directory where makers can submit developer tools, SaaS products, and small projects for discovery.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That sentence is simple. It explains the product without hype.&lt;/p&gt;

&lt;p&gt;A good GEO strategy needs more of that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;simple positioning&lt;/li&gt;
&lt;li&gt;consistent naming&lt;/li&gt;
&lt;li&gt;clear category pages&lt;/li&gt;
&lt;li&gt;comparison-friendly descriptions&lt;/li&gt;
&lt;li&gt;public pages that can be crawled&lt;/li&gt;
&lt;li&gt;real use cases&lt;/li&gt;
&lt;li&gt;real examples&lt;/li&gt;
&lt;li&gt;external mentions from relevant places&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to trick an AI model.&lt;/p&gt;

&lt;p&gt;The goal is to create enough clear public context that when someone asks, “Where can I submit my developer tool?” or “What are some smaller Product Hunt alternatives?” your product has a chance to be understood.&lt;/p&gt;

&lt;h2&gt;
  
  
  Distribution beats waiting
&lt;/h2&gt;

&lt;p&gt;One mistake I made before: publishing something and expecting traffic to arrive.&lt;/p&gt;

&lt;p&gt;That rarely happens for small projects.&lt;/p&gt;

&lt;p&gt;A better approach is to build small distribution loops.&lt;/p&gt;

&lt;p&gt;For Linxalium, one simple loop could be:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add a useful project to the directory.&lt;/li&gt;
&lt;li&gt;Write a short, honest description.&lt;/li&gt;
&lt;li&gt;Create a category page around the problem.&lt;/li&gt;
&lt;li&gt;Record a short demo or walkthrough.&lt;/li&gt;
&lt;li&gt;Post it on YouTube.&lt;/li&gt;
&lt;li&gt;Use the same YouTube account to join relevant conversations.&lt;/li&gt;
&lt;li&gt;If people click the profile, they discover the project naturally.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No aggressive promotion. No “check out my site” spam. No copy-paste comments.&lt;/p&gt;

&lt;p&gt;Just useful participation from an account that is clearly connected to the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  The YouTube strategy I like
&lt;/h2&gt;

&lt;p&gt;YouTube is underrated for small SaaS and developer tools.&lt;/p&gt;

&lt;p&gt;Not because every video will go viral. Most will not.&lt;/p&gt;

&lt;p&gt;But YouTube gives you three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Searchable content.&lt;/li&gt;
&lt;li&gt;A public proof of work.&lt;/li&gt;
&lt;li&gt;A profile that can become a soft discovery channel.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For example, if I create a YouTube channel for Linxalium, I would not start with polished ads.&lt;/p&gt;

&lt;p&gt;I would start with simple videos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“How I submit a developer tool to Linxalium”&lt;/li&gt;
&lt;li&gt;“How to write a better project description for directories”&lt;/li&gt;
&lt;li&gt;“5 places to promote a small SaaS without spamming”&lt;/li&gt;
&lt;li&gt;“What makes a project listing look trustworthy?”&lt;/li&gt;
&lt;li&gt;“How I think about SEO and GEO for small tools in 2026”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These videos do not need to be cinematic.&lt;/p&gt;

&lt;p&gt;They need to be clear.&lt;/p&gt;

&lt;p&gt;A screen recording, a real example, and a useful explanation is enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Commenting under big videos can work, but only if the comment is useful
&lt;/h2&gt;

&lt;p&gt;This is where many people get it wrong.&lt;/p&gt;

&lt;p&gt;They find big videos with many views and write:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Great video! Check out my tool.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is not marketing. That is spam.&lt;/p&gt;

&lt;p&gt;A better comment should add something to the discussion.&lt;/p&gt;

&lt;p&gt;For example, under a video about SEO for startups, I might write:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One thing I’d add for small SaaS projects: don’t treat GEO as a separate magic channel. I think it starts with clear public pages, simple positioning, and examples that are easy for both humans and AI systems to understand. We’re testing this with a small curated directory, and the hardest part is not keywords — it’s writing descriptions that don’t sound generic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This kind of comment does not need a link.&lt;/p&gt;

&lt;p&gt;The account name, profile, and channel content do the soft work.&lt;/p&gt;

&lt;p&gt;If the comment is useful, some people may click. If nobody clicks, the comment still helped the conversation.&lt;/p&gt;

&lt;p&gt;That is the right mindset.&lt;/p&gt;

&lt;h2&gt;
  
  
  The account itself becomes part of the funnel
&lt;/h2&gt;

&lt;p&gt;This is a small but important point.&lt;/p&gt;

&lt;p&gt;If your YouTube account name is connected to your project, then every good comment becomes a small brand touchpoint.&lt;/p&gt;

&lt;p&gt;You do not need to force the link.&lt;/p&gt;

&lt;p&gt;People can see the name. They can open the profile. They can watch the videos. Then they can decide if the product is relevant.&lt;/p&gt;

&lt;p&gt;This is much safer and more natural than dropping the same link everywhere.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;account name: Linxalium&lt;/li&gt;
&lt;li&gt;channel description: curated directory for developer tools and SaaS projects&lt;/li&gt;
&lt;li&gt;videos: useful tutorials about launch, SEO, directories, project discovery&lt;/li&gt;
&lt;li&gt;comments: thoughtful opinions under relevant videos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That creates a small ecosystem.&lt;/p&gt;

&lt;p&gt;Not a huge one. But a real one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Directories are not just backlinks
&lt;/h2&gt;

&lt;p&gt;This is also why I think directories still matter.&lt;/p&gt;

&lt;p&gt;A bad directory is just a link farm.&lt;/p&gt;

&lt;p&gt;A good directory helps people discover products.&lt;/p&gt;

&lt;p&gt;For makers, a listing can provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a crawlable public page&lt;/li&gt;
&lt;li&gt;a clean product description&lt;/li&gt;
&lt;li&gt;a relevant category&lt;/li&gt;
&lt;li&gt;a backlink&lt;/li&gt;
&lt;li&gt;a small discovery surface&lt;/li&gt;
&lt;li&gt;a place to explain the product outside your own website&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backlink is useful, but it should not be the only reason to submit.&lt;/p&gt;

&lt;p&gt;If the directory is curated, indexed, and relevant, it can also become a trust signal.&lt;/p&gt;

&lt;p&gt;That is the direction I want Linxalium to go: less spam, more useful project pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple 2026 promotion plan for a small project
&lt;/h2&gt;

&lt;p&gt;If I were starting from zero, I would not try to do everything.&lt;/p&gt;

&lt;p&gt;I would do this:&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 1: Fix the base
&lt;/h3&gt;

&lt;p&gt;Create or improve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;homepage title&lt;/li&gt;
&lt;li&gt;homepage description&lt;/li&gt;
&lt;li&gt;project tagline&lt;/li&gt;
&lt;li&gt;project description&lt;/li&gt;
&lt;li&gt;Open Graph image&lt;/li&gt;
&lt;li&gt;category pages&lt;/li&gt;
&lt;li&gt;sitemap&lt;/li&gt;
&lt;li&gt;internal links&lt;/li&gt;
&lt;li&gt;clean screenshots&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Week 2: Create proof
&lt;/h3&gt;

&lt;p&gt;Publish:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one real blog post&lt;/li&gt;
&lt;li&gt;one demo video&lt;/li&gt;
&lt;li&gt;one comparison page&lt;/li&gt;
&lt;li&gt;one use-case page&lt;/li&gt;
&lt;li&gt;one founder story&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not AI filler. Real experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 3: Start distribution
&lt;/h3&gt;

&lt;p&gt;Join conversations on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YouTube&lt;/li&gt;
&lt;li&gt;Dev.to&lt;/li&gt;
&lt;li&gt;Reddit&lt;/li&gt;
&lt;li&gt;Hacker News&lt;/li&gt;
&lt;li&gt;Bluesky&lt;/li&gt;
&lt;li&gt;niche directories&lt;/li&gt;
&lt;li&gt;founder communities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But do it carefully.&lt;/p&gt;

&lt;p&gt;Do not post the same thing everywhere. Do not drop links without context. Do not pretend to be a neutral user if you are the founder.&lt;/p&gt;

&lt;h3&gt;
  
  
  Week 4: Repeat what works
&lt;/h3&gt;

&lt;p&gt;Check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which pages get indexed&lt;/li&gt;
&lt;li&gt;which comments get replies&lt;/li&gt;
&lt;li&gt;which videos get impressions&lt;/li&gt;
&lt;li&gt;which directories send traffic&lt;/li&gt;
&lt;li&gt;which posts get saved or shared&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then repeat the best channel.&lt;/p&gt;

&lt;p&gt;Small projects do not need 20 strategies.&lt;/p&gt;

&lt;p&gt;They need 2 or 3 channels that compound.&lt;/p&gt;

&lt;h2&gt;
  
  
  My current view
&lt;/h2&gt;

&lt;p&gt;SEO in 2026 is not only about ranking pages.&lt;/p&gt;

&lt;p&gt;It is about building a public footprint that makes your product understandable.&lt;/p&gt;

&lt;p&gt;That footprint can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;your website&lt;/li&gt;
&lt;li&gt;your blog&lt;/li&gt;
&lt;li&gt;your docs&lt;/li&gt;
&lt;li&gt;YouTube demos&lt;/li&gt;
&lt;li&gt;directory listings&lt;/li&gt;
&lt;li&gt;useful comments&lt;/li&gt;
&lt;li&gt;social posts&lt;/li&gt;
&lt;li&gt;comparisons&lt;/li&gt;
&lt;li&gt;founder notes&lt;/li&gt;
&lt;li&gt;community answers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Linxalium, I want to test this slowly.&lt;/p&gt;

&lt;p&gt;No fake hype. No comment spam. No mass-produced AI pages.&lt;/p&gt;

&lt;p&gt;Just useful pages, useful listings, useful videos, and useful participation in places where makers already search for answers.&lt;/p&gt;

&lt;p&gt;That sounds less exciting than “growth hacks.”&lt;/p&gt;

&lt;p&gt;But I think it is much more durable.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>marketing</category>
      <category>startup</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built a Small Directory for Tools That Help Developers Build Faster</title>
      <dc:creator>Eugene Maiorov</dc:creator>
      <pubDate>Tue, 09 Jun 2026 07:12:33 +0000</pubDate>
      <link>https://dev.to/eugene_maiorov/i-built-a-small-directory-for-tools-that-help-developers-build-faster-3m7j</link>
      <guid>https://dev.to/eugene_maiorov/i-built-a-small-directory-for-tools-that-help-developers-build-faster-3m7j</guid>
      <description>&lt;h2&gt;
  
  
  I Built a Small Directory for Tools That Help Developers Build Faster
&lt;/h2&gt;

&lt;p&gt;There are a lot of SaaS products being launched every day.&lt;/p&gt;

&lt;p&gt;Some are big, polished, and already have marketing budgets. Others are small, useful tools built by indie developers, solo founders, or small teams. Many of those products are actually good, but they are hard to find.&lt;/p&gt;

&lt;p&gt;That is one of the reasons I built &lt;a href="https://linxalium.com" rel="noopener noreferrer"&gt;&lt;strong&gt;Linxalium&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Linxalium is a small directory for tools, apps, services, and resources. The goal is simple: help people discover useful products, and help SaaS developers share what they are building in a cleaner, more structured way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I built it
&lt;/h3&gt;

&lt;p&gt;If you are building a SaaS product, promotion is hard.&lt;/p&gt;

&lt;p&gt;Posting on social media disappears quickly. Product launch platforms are useful, but usually only for a short moment. SEO takes time. Communities often do not like direct promotion. And paid ads are expensive when you are still small.&lt;/p&gt;

&lt;p&gt;So I wanted to create a place where SaaS builders can list their products in a more permanent way.&lt;/p&gt;

&lt;p&gt;Not spam.&lt;br&gt;
Not fake hype.&lt;br&gt;
Not “growth hack” promotion.&lt;/p&gt;

&lt;p&gt;Just a clean product page with the right category, description, link, and context.&lt;/p&gt;

&lt;p&gt;A place where a product can slowly build visibility, reputation, and trust.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Linxalium is
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://linxalium.com" rel="noopener noreferrer"&gt;Linxalium&lt;/a&gt; is a curated directory of tools and services across categories like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI&lt;/li&gt;
&lt;li&gt;Developer Tools&lt;/li&gt;
&lt;li&gt;Design&lt;/li&gt;
&lt;li&gt;Marketing&lt;/li&gt;
&lt;li&gt;Productivity&lt;/li&gt;
&lt;li&gt;Automation&lt;/li&gt;
&lt;li&gt;Business&lt;/li&gt;
&lt;li&gt;Analytics&lt;/li&gt;
&lt;li&gt;E-Commerce&lt;/li&gt;
&lt;li&gt;Education&lt;/li&gt;
&lt;li&gt;No-Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For users, it is a way to discover tools that may help them build, ship, design, market, automate, or manage something faster.&lt;/p&gt;

&lt;p&gt;For SaaS builders, it is a way to present their product outside of the usual noisy channels.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why this matters for small SaaS products
&lt;/h3&gt;

&lt;p&gt;A lot of good products never get attention because the founder does not know how to promote them.&lt;/p&gt;

&lt;p&gt;That is especially true for technical founders.&lt;/p&gt;

&lt;p&gt;We can build the product, improve the backend, polish the UI, fix performance, add features — but then comes the hard part:&lt;/p&gt;

&lt;p&gt;How do people actually find it?&lt;/p&gt;

&lt;p&gt;A directory can help with that, especially when it is structured properly.&lt;/p&gt;

&lt;p&gt;A product listing can become:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a simple public profile for the product&lt;/li&gt;
&lt;li&gt;a way to explain what the product does&lt;/li&gt;
&lt;li&gt;a discoverable page by category&lt;/li&gt;
&lt;li&gt;a reputation signal&lt;/li&gt;
&lt;li&gt;an SEO-friendly page&lt;/li&gt;
&lt;li&gt;a GEO-friendly page for AI search and answer engines&lt;/li&gt;
&lt;li&gt;a long-term link that does not disappear after one day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, a directory alone will not magically bring customers.&lt;/p&gt;

&lt;p&gt;But it can be one more stable place where your product exists, can be found, and can be understood.&lt;/p&gt;

&lt;h3&gt;
  
  
  SEO and GEO are becoming important
&lt;/h3&gt;

&lt;p&gt;Search is changing.&lt;/p&gt;

&lt;p&gt;People still use Google, but more and more product discovery also happens through AI tools, answer engines, curated lists, and recommendation-style searches.&lt;/p&gt;

&lt;p&gt;That means SaaS products need clear public pages that explain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what the product is&lt;/li&gt;
&lt;li&gt;who it is for&lt;/li&gt;
&lt;li&gt;what category it belongs to&lt;/li&gt;
&lt;li&gt;what problem it solves&lt;/li&gt;
&lt;li&gt;why someone should trust it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is where directories can still be useful.&lt;/p&gt;

&lt;p&gt;Not as a replacement for your own website, but as an additional structured presence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why another directory?
&lt;/h3&gt;

&lt;p&gt;Fair question.&lt;/p&gt;

&lt;p&gt;There are already many directories.&lt;/p&gt;

&lt;p&gt;But I think there is still room for smaller and cleaner ones, especially if they help both sides:&lt;/p&gt;

&lt;p&gt;People looking for useful tools.&lt;/p&gt;

&lt;p&gt;And builders looking for a fair way to share their product without being annoying.&lt;/p&gt;

&lt;p&gt;I do not want &lt;a href="https://linxalium.com" rel="noopener noreferrer"&gt;Linxalium&lt;/a&gt; to become a random link farm. That would make it useless.&lt;/p&gt;

&lt;p&gt;The challenge is to keep it simple, useful, and organized.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I want to improve next
&lt;/h3&gt;

&lt;p&gt;Some things I am thinking about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;better product pages&lt;/li&gt;
&lt;li&gt;user submissions&lt;/li&gt;
&lt;li&gt;verification for founders&lt;/li&gt;
&lt;li&gt;richer categories and tags&lt;/li&gt;
&lt;li&gt;similar tool suggestions&lt;/li&gt;
&lt;li&gt;screenshots or previews&lt;/li&gt;
&lt;li&gt;reviews or simple reputation signals&lt;/li&gt;
&lt;li&gt;better SEO structure&lt;/li&gt;
&lt;li&gt;better support for AI/search discovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main goal is still the same:&lt;/p&gt;

&lt;p&gt;Help useful tools get found.&lt;/p&gt;

&lt;h3&gt;
  
  
  Feedback welcome
&lt;/h3&gt;

&lt;p&gt;I would like to hear from other developers and SaaS builders.&lt;/p&gt;

&lt;p&gt;When you list your product somewhere, what actually matters to you?&lt;/p&gt;

&lt;p&gt;Is it SEO, backlinks, referral traffic, reputation, category placement, reviews, or just having one more clean public page for your product?&lt;/p&gt;

&lt;p&gt;And as a user, do you still browse directories to discover tools, or do you mostly rely on search, social media, and AI recommendations?&lt;/p&gt;

</description>
      <category>saas</category>
      <category>devtools</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I Almost Quit Coding to Become a Welder</title>
      <dc:creator>Eugene Maiorov</dc:creator>
      <pubDate>Tue, 26 May 2026 18:46:45 +0000</pubDate>
      <link>https://dev.to/eugene_maiorov/i-almost-quit-coding-to-become-a-welder-38j1</link>
      <guid>https://dev.to/eugene_maiorov/i-almost-quit-coding-to-become-a-welder-38j1</guid>
      <description>&lt;p&gt;Twelve years. That's how long I've written code for a living.&lt;/p&gt;

&lt;p&gt;About a year ago, I was ready to walk away from all of it.&lt;/p&gt;

&lt;p&gt;I'm not joking. I spent real evenings looking up welding schools. I read about handyman gigs. I even checked what delivery drivers make near me. My plan was simple: do &lt;em&gt;anything&lt;/em&gt; that didn't involve a screen. With welding, at least when something breaks, it's not because of a missing semicolon.&lt;/p&gt;

&lt;p&gt;I was burnt out. Bad. I'd open my laptop, stare at the screen, and just... sit there. Four hours would pass. I'd write maybe ten lines of code, hate all of them, then delete nine. The work that used to feel like magic now felt like chewing glass.&lt;/p&gt;

&lt;h2&gt;
  
  
  The plot twist: I'm not even scared of new tech
&lt;/h2&gt;

&lt;p&gt;Here's the funny part. I'm not some guy who hides from the future.&lt;/p&gt;

&lt;p&gt;Back in 2022, I was one of the first 100,000 people to use GPT-3. I thought it was actual sorcery. For a hot minute, I was sure there were real humans on the other end, typing answers as fast as they could. I pictured a room full of very tired interns somewhere, sweating. (There were not. I think. I never got a clear answer on that.)&lt;/p&gt;

&lt;p&gt;I jumped in right away. But the tools were rough back then. They'd make stuff up, break my code, and lie to my face with total confidence. Stack Overflow and the docs were still carrying me. AI was more of a weird hobby than a real helper.&lt;/p&gt;

&lt;p&gt;Then things got bad in a way I didn't see coming.&lt;/p&gt;

&lt;h2&gt;
  
  
  The day my safety net disappeared
&lt;/h2&gt;

&lt;p&gt;Last year, I lost my job.&lt;/p&gt;

&lt;p&gt;Not because I was slow. Not because I messed something up. I lost it because my boss's clients figured out they could "vibecode" their own little tools. Why pay a developer when you can describe what you want to a chatbot and get something that mostly works?&lt;/p&gt;

&lt;p&gt;Turns out my job security was one good prompt away from gone.&lt;/p&gt;

&lt;p&gt;So there I was. Twelve years of experience, suddenly out of work, watching the exact thing I do for a living get handed out for free.&lt;/p&gt;

&lt;p&gt;That's when the welding tabs really started piling up in my browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  But I didn't quit. Not yet.
&lt;/h2&gt;

&lt;p&gt;I had months of empty time. So I made a deal with myself.&lt;/p&gt;

&lt;p&gt;Instead of being mad at these tools, I'd learn to actually &lt;em&gt;build&lt;/em&gt; with them. Not just ask a chatbot to patch a bug. I mean really build. Design whole systems. Ship real features. Move fast.&lt;/p&gt;

&lt;p&gt;It was a love-hate thing for a while. Some days the AI felt like a genius pair programmer. Other days it felt like a confident toddler with a keyboard. I'd ask for one small thing and get back something completely unhinged. I yelled at my screen more than once. My kids probably learned a few new words.&lt;/p&gt;

&lt;p&gt;But slowly, it clicked.&lt;/p&gt;

&lt;p&gt;I stopped "using AI" and started thinking &lt;em&gt;with&lt;/em&gt; it. I learned how to talk to it. How to break a big mess into small pieces. How to set things up so it handled the boring parts while I made the real calls. It went from a toy to a power tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The comeback
&lt;/h2&gt;

&lt;p&gt;Then I landed a new job.&lt;/p&gt;

&lt;p&gt;This time at a company that actually trusts me. They let me bring my whole AI-first workflow to the team. And bringing it to real people, on a real product? Night and day.&lt;/p&gt;

&lt;p&gt;I'm building things now I couldn't have touched two years ago. Like an AI that answers the phone and talks to customers like a real person. The kind of project that used to need a whole team and six months. I'm doing it almost solo, in days.&lt;/p&gt;

&lt;p&gt;And here's the part I didn't expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I love my job again.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm not fighting with syntax. I'm not frozen in front of a blank file, slowly dying inside. I get to think about the fun stuff: what to build, why it matters, how to make it actually good. The boring parts mostly take care of themselves.&lt;/p&gt;

&lt;p&gt;I feel like a developer again. Maybe more than ever.&lt;/p&gt;

&lt;h2&gt;
  
  
  Oh, and the welding?
&lt;/h2&gt;

&lt;p&gt;I wasn't totally joking about that part.&lt;/p&gt;

&lt;p&gt;I got myself a full welding kit for my birthday last year. Mask, inverter, electrodes, the works. Turns out the dream didn't die — it just turned into a weekend hobby instead of an escape plan.&lt;/p&gt;

&lt;p&gt;So now I build software all week and melt metal in the garage on the weekend. Best of both worlds. My code compiles, and so do my welds. (Most of the time.)&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%2Fl99ie1ri530ccjz82de0.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%2Fl99ie1ri530ccjz82de0.jpg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;So that's my story. I went from googling welding schools to feeling more excited about code than I have in years. All because I stopped fighting the wave and learned to surf it.&lt;/p&gt;

&lt;p&gt;I can't be the only one.&lt;/p&gt;

&lt;p&gt;If you've been doing this for 10+ years and hit that same wall — the "I'm done, I'm going to go work with my hands" wall — I want to hear it. Did you find your way back? Or are you still eyeing the welding catalog?&lt;/p&gt;

&lt;p&gt;Drop your story below.&lt;/p&gt;

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