Published: 2025-08-16T12:52:04Z
Tags:
#writing
#ai
#seo
#chatgpt
My blog was invisible to AI search. Three hours later (and a solid round of OCD), I built a lazy Dev.to → GitHub Pages mirror. No flames required.
<blockquote>
<p>First of all — thank you. 🙏</p>
<p>For real. This community has been nothing but encouraging, and it was a huge surprise to end up in the <strong>top seven</strong> last week. I didn’t expect it, but it’s appreciated more than you know. 🫶</p>
</blockquote>
<hr>
<h2>
<a href="#tldr">
</a>
TL;DR
</h2>
<p>If you're looking for a quick and efficient way to increase traffic to your DevTo blog posts (or anywhere else with a little tweaking)? Try my <a href="https://github.com/anchildress1/devto-mirror">10-minute DevTo crawly mirror</a>. Here's how it works:</p>
<ol>
<li>
<strong>Clone the repo</strong>. Enter your DevTO username as an env variable in the repo. Delete the existing <code>gh-pages</code> branch.</li>
<li>
<strong>Scheduled GHA Workflow</strong> off-peak or manually trigger.</li>
<li>
<strong>Static HTML</strong> hosted via GitHub Pages</li>
<li><strong>Canonical back to Dev</strong></li>
</ol>
<hr>
<h2>
<a href="#starting-with-nothing">
</a>
Starting With Nothing 🔦
</h2>
<p>So, this entire thing started with a conversation. </p>
<blockquote>
<p>🦄 About what? I honestly can’t remember now — Copilot, debugging, something in that ballpark. Doesn’t matter.</p>
</blockquote>
<p>But somehow — like so many of my rabbit holes — it mutated and morphed until I wasn't exactly at the same place I had started. I really can't explain the series of events that happened after that. I blame it on <em>curiosity</em> more than anything, but I did the one thing I swore I'd never do: I asked ChatGPT to do a quick search — pull one of my posts.</p>
<p>And... <strong>nothing</strong>. Like the post didn’t exist. 🕳️</p>
<p>Okay. 😅 Fine. Let’s take a step back. Next, I went straight to Google and typed the same thing. Results were <em>better</em> — sure. Scroll, scroll, scroll... and <strong>there</strong> it was. My post. Not at the top, but alive. Win. 😏</p>
<blockquote>
<p>🦄 <strong>Real talk</strong>: Do I care about being #1? No, not in the slightest. Honestly, I love my invisibility bubble — keeps things peaceful in my corner of the internet.</p>
</blockquote>
<p>But here’s the thing: invisibility and AI don’t mix. Because when I need an answer, I don’t open a browser anymore. I yell at my phone: “Hey Google!” Or I pop into ChatGPT or Gemini.</p>
<p>If my posts don’t show up there, they might as well not even exist. 🫤</p>
<hr>
<h2>
<a href="#d%C3%A9j%C3%A0-vu">
</a>
Déjà Vu 🔮
</h2>
<p>So I’m now blessed with the knowledge that my posts are basically hiding out in the Room of Requirement — you know it’s there, but only if the stars align. And <strong>that</strong> makes it hard to share the advice I keep repeating everywhere else that will listen:</p>
<ul>
<li>“Yes, you can use it for debugging.”</li>
<li>“Of course it can generate the tests.”</li>
<li>“Docs? Oh my god, PLEASE let it write the docs.”</li>
</ul>
<p>By the time I’ve said it for the fifth time, it feels like I’m stuck in reruns.</p>
<blockquote>
<p>🦄 Honestly, some days I feel like I need a theme song: “Previously, on AI Adventures with Ashley...” 🎵🎶</p>
</blockquote>
<p>Sure. <em>Sometimes</em>, I let AI run wild (it's more fun that way!). My Coding Agent kills it with documentation. I even built a chat mode that plays architect — reverse engineers a repo and spits out mermaid diagrams like it’s dealing cards in Vegas. That one runs in GitHub Actions, then opens a PR, and I'll merge once everything checks out.</p>
<p>But the everyday stuff? It’s not dramatic. It’s small instructions, nudges, prompts. Rinse, repeat, <em>coffee</em>, repeat again. ☕️ It's slow, incremental improvements to be just a little better than yesterday. 🤏</p>
<p>And what drives me absolutely up the wall? The extremes. Either “AI will replace every dev tomorrow” or “AI is useless, don’t bother.”</p>
<blockquote>
<p>🦄 <strong>Honestly</strong>, it’s like sitting court-side at Quidditch — the little guy zips across the field so fast you think you’ve finally caught up, but nope. He’s already off to something else... and it’s almost always completely wrong, too. 😅</p>
</blockquote>
<hr>
<h2>
<a href="#writing-it-down">
</a>
Writing It Down 📕
</h2>
<p>So my solution: write it down. That’s what most of these blog posts are. Whatever comes up that week — whether it’s me digging, someone else asking, or just another repeated question — if I haven’t covered it already, give me a week. I'll get there.</p>
<p>The beauty of this system? Instead of explaining everything for the tenth time, I can just say: “Glad you’re trying this. I think my blog might help — here’s the link. Let me know if you’ve got questions.”</p>
<p>See. Simple, right? 🙂↕️ But even <em>that</em> wasn’t enough, because usually by the time I arrived on scene things were in somewhat of a state already. Mostly because what AI <em>was</em> helping with had a knowledge cut-off of January and everything else is wading through Microsoft or GitHub docs looking for any little nibble.</p>
<p>So I set out to find a way to make my DevTo posts truly crawly — <em>without</em> Dante's DevOps nightmares playing on repeat at the top of every hour. </p>
<blockquote>
<p>🦄 Sure, I <em>briefly</em> considered the real solution — custom website, full hosting stack, the whole front-end shebang. But I'm a backend engineer for a reason! My personal site is designed for APIs not MUI. I'd really prefer to keep it that way!</p>
</blockquote>
<hr>
<h2>
<a href="#the-hack-in-action">
</a>
The Hack in Action 💻
</h2>
<p>So, I did what any other respectable developer would do with an extra 15 minutes and spark of an idea: I hacked it. What do you get with 3 hours, a solid round of "will OCD win again?" and ChatGPT + GitHub Copilot tag team special? Exactly zero upkeep — mission accomplished. ✅<br>
</p>
<div class="highlight js-code-highlight">
<pre><code>GHA cron → Dev API → static HTML → GitHub Pages → robots.txt
</code></pre>
<div class="highlight__panel js-actions-panel">
<div class="highlight__panel-action js-fullscreen-code-action">
<svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewbox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"><title>Enter fullscreen mode</title>
<path d="M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewbox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-off"><title>Exit fullscreen mode</title>
<path d="M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"></path>
</svg>
</div>
</div>
</div>
<p>That’s it. No CSS. No fancy layout. Just static content, scheduled on a daily push. Best of all? ChatGPT could <em>finally</em> find my posts. Gemini too.</p>
<blockquote>
<p>🦄 <strong>True story</strong>: I spent longer arguing with Leonardo to make a banner image than I did setting up the whole mirror.</p>
</blockquote>
<hr>
<h2>
<a href="#add-a-little-sparkle">
</a>
Add A Little Sparkle ✨
</h2>
<p>I'm in no way an expert when it comes to SEO or even scraping in general. I did happen across this tidbit in the 15 minutes of research I did on the subject. I'm still testing this to see what the impact looks like, but seems promising. 😇</p>
<p>In your DevTo settings, you have the option to use the current rich-text markdown editor we all know and love <em>or</em>, you can switch to the legacy version. It's kind of an all or nothing deal, as far as I can tell. So you either have it <em>everywhere</em> or <em>nowhere</em>. But, it does give you access to the yaml front-matter for your posts and the ability to define your own brief description instead of relying on the first ~160 words you post. </p>
<p>It seems like an awfully lot of work though, and I've kinda gotten used to the new markdown buttons (that I never use). So my solution? Let's just hit buttons until I find one that works. 🤓</p>
<p><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%2F43h29r9zbde4lnr4fy3u.png"><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%2F43h29r9zbde4lnr4fy3u.png" alt="DevTo Frontmatter for Post"></a></p>
<hr>
<h2>
<a href="#whats-mine-is-yours">
</a>
What's Mine is Yours 🍀
</h2>
<p>Whether you’re after more profile views or just tired of repeating yourself like me, this trick works. You can have my quick and easy <a href="https://github.com/anchildress1/devto-mirror">DevTO-Mirror</a> running in less than 10 minutes. Just copy it, fork it, clone it, star it — whatever you like. And please, avoid Dante’s DevOps while you’re at it. 🔥😈</p>
<hr>
<h2>
<a href="#this-post-is-now-searchable">
</a>
This post is now searchable 🛡️
</h2>
<p>Responsibly indexed by me & the robots. Fueled by coffee ☕️, steered by OCD, and completely bypassed the 9th circle of hell. 🔥🚫</p>
<hr>
<blockquote>
<p>🦄 No, I'm still not finished getting this character exactly where I want her to be for the banners. But they're <em>so</em> close that I had to use it. Minor tweaks still and an AI character (or several) to tag along still to come 💖</p>
</blockquote>
Read on Dev.to →