<?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: L. Cordero</title>
    <description>The latest articles on DEV Community by L. Cordero (@earlgreyhot1701d).</description>
    <link>https://dev.to/earlgreyhot1701d</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3683045%2F7ee68517-114b-40b7-8b26-3e0e95acfe11.jpg</url>
      <title>DEV Community: L. Cordero</title>
      <link>https://dev.to/earlgreyhot1701d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/earlgreyhot1701d"/>
    <language>en</language>
    <item>
      <title>STEEP: Your repo's fortune, steeped in truth.</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Sat, 04 Apr 2026 19:42:43 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/steep-your-repos-fortune-steeped-in-truth-24ac</link>
      <guid>https://dev.to/earlgreyhot1701d/steep-your-repos-fortune-steeped-in-truth-24ac</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




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

&lt;p&gt;Think teapot. Think tea. Think Ig Nobel. Think esoteric. Think absolutely useless. Think...Harry Potter?...Professor Trelawney?...divination!&lt;/p&gt;

&lt;p&gt;Tea leaf reading. For GitHub repos.  &lt;/p&gt;

&lt;p&gt;That's &lt;strong&gt;Steep&lt;/strong&gt;.&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%2Fnndj9yija1oyedk0s9v2.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%2Fnndj9yija1oyedk0s9v2.png" alt=" " width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste a public GitHub repo URL. Steep fetches your commit history, file tree, languages, README, and contributors. It finds patterns in the data and maps them to real tasseography symbols, the same symbols tea leaf readers have used for centuries. Mountain. Skull. Heart. Snake. Teacup.&lt;/p&gt;

&lt;p&gt;Then &lt;strong&gt;Madame Steep&lt;/strong&gt; reads them.&lt;/p&gt;

&lt;p&gt;Madame Steep is an AI fortune teller powered by the Gemini API. She trained at a prestigious academy (she won't say which) and pivoted to software divination when she realized codebases contain more suffering than any teacup. She delivers a structured reading of your repo's past, present, and future with a brew rating, a lucky commit message, and a one-sentence verdict.&lt;/p&gt;

&lt;p&gt;She will not help you write better code. She cannot brew coffee. She can only read leaves.&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%2Fke81rbk2l1yp2k9n9q7r.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%2Fke81rbk2l1yp2k9n9q7r.png" alt=" " width="800" height="751"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I pointed Steep at &lt;a href="https://github.com/earlgreyhot1701D/memoria-clew" rel="noopener noreferrer"&gt;my own repo&lt;/a&gt;. &lt;br&gt;
The Sun appeared (test files found). The Spade appeared (CI/CD configured). The Apple appeared (README over 12,000 characters). And Madame Steep had this to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"A robust brew, full of promise, awaiting its next steep."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;She's not wrong.&lt;/p&gt;

&lt;p&gt;Three teapots. I'll take it.&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%2F48tebveym4ln5i7uv1ar.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%2F48tebveym4ln5i7uv1ar.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When your reading is done, hit "Share My Fortune." Steep generates a downloadable card with your verdict, symbols, brew rating, and lucky commit message. Post it. Tag a developer who needs their leaves read.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Video:&lt;/strong&gt;   &lt;iframe src="https://www.youtube.com/embed/fW0KYFcC7Aw"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://steep418.vercel.app" rel="noopener noreferrer"&gt;steep418.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste your repo. Or a coworker's. Or that side project you abandoned in 2023. The carousel has readings for some well-known repos if you want to see what Madame Steep does before you hand her your own cup.&lt;/p&gt;

&lt;p&gt;When you land on the page, you'll see what looks like a crash screen. It's not a bug. It's the opening act. Press any key to skip, or wait for the glitch dissolve.&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%2Fhv6wzu4kh52zmsqyqs5u.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%2Fhv6wzu4kh52zmsqyqs5u.png" alt=" " width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What a reading looks like:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Paste a repo URL. Click DIVINE. Madame Steep peers into your cup. She tells you about your repo's past, its present state (the roast), and its ominous future. She rates your brew (1-5 teapots). She gives you a lucky commit message. She delivers a one-sentence verdict.&lt;/p&gt;

&lt;p&gt;Then you can download your fortune as a shareable image or save it to your Grimoire (localStorage).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This has been a reading from a teapot. You came here for code review. The leaves had other plans.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/earlgreyhot1701D" rel="noopener noreferrer"&gt;
        earlgreyhot1701D
      &lt;/a&gt; / &lt;a href="https://github.com/earlgreyhot1701D/steep" rel="noopener noreferrer"&gt;
        steep
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A deliberately useless tea leaf reading app for GitHub repos. Paste a URL, get a dramatic, wildly specific, and entirely unhelpful divination of your codebase. Powered by Gemini, tasseography, and poor judgment. Built for the DEV April Fools Challenge 2026. This is a teapot. It cannot brew coffee. 🫖
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;STEEP&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Your repo's fortune, steeped in truth.&lt;/strong&gt; 🫖&lt;/p&gt;
&lt;p&gt;&lt;a href="https://steep418.vercel.app" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fearlgreyhot1701D%2Fsteep%2FHEAD%2Fassets%2FSteep%2520Banner.jpg" alt="Steep Banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://youtu.be/fW0KYFcC7Aw" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/2d75a021ea99748e0928f677d0512b9ddbd292720bde5511332cb5e24deab8f9/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f6657304b594663433741772f6d617872657364656661756c742e6a7067" alt="Watch the demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In 1998, Larry Masinter wrote RFC 2324 as an April Fools' joke. It defined a protocol for controlling coffee pots over HTTP and introduced status code 418: "I'm a teapot." The spec notes that the response body "MAY be short and stout."&lt;/p&gt;
&lt;p&gt;It was satire about over-extending HTTP. Then a 15-year-old developer started the Save 418 movement. Major frameworks kept it. Python 3.9 added &lt;code&gt;IM_A_TEAPOT&lt;/code&gt;. A joke became permanent internet infrastructure.&lt;/p&gt;
&lt;p&gt;Steep is that teapot.&lt;/p&gt;
&lt;p&gt;It reads tea leaves. The tea leaves are your GitHub repository. Paste a repo URL and Steep fetches your commit history, file tree, languages, and README. It finds patterns in the data and maps them to real tasseography symbols from centuries-old tea leaf reading traditions. Then an AI fortune teller named Madame Steep delivers a dramatic, weirdly specific, and entirely useless divination of your codebase's…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/earlgreyhot1701D/steep" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User pastes repo URL
        |
        v
github.js fetches repo data (unauthenticated, 60 req/hr)
        |
        v
symbols.js selects symbols deterministically
  - 17 triggers evaluated against real repo data
  - sorted by drama (Grim before Apple)
  - Teacup always included
        |
        v
/api/divine.js sends data + symbols to Gemini 2.5 Flash
  - 80+ line Madame Steep system prompt
  - returns structured JSON
        |
        v
reading.js renders the full reading
  - DOM construction via textContent (no innerHTML)
  - shareable card via html2canvas
  - save to localStorage grimoire
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One page. Vanilla HTML/CSS/JS. No framework. One Vercel serverless function. Total cost: $0.&lt;/p&gt;

&lt;p&gt;The pixel art crash screen, the dusty blue aesthetic, the scanline overlay, the three-font system (Press Start 2P for the machine, VT323 for the terminal, Cormorant Garamond for the mystic) are all CSS. No images except the SVG pixel teacup, which is drawn inline.&lt;/p&gt;

&lt;p&gt;21 unit tests. Yes, the joke app has tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The idea
&lt;/h3&gt;

&lt;p&gt;The concept started in a conversation with Gemini. I was exploring Ig Nobel Prize winners for "delightfully useless" inspiration. We went through dead code reanimation tools, commit quality scanners based on astrology, and repo phrenology before landing on tasseography. Tea leaf reading. Because the challenge prizes are teapots. And the Larry Masinter category is literally about a tea/coffee protocol. The concept locked when I realized the ENTIRE APP could be a 418 response: a teapot that someone asked to do useful work, refusing politely.&lt;/p&gt;

&lt;h3&gt;
  
  
  The design
&lt;/h3&gt;

&lt;p&gt;I explored eight UI directions across Claude, Google Gemini, and Google Stitch. Carnival fortune teller. Victorian broadsheet. Dark séance dashboard. Warm tea shop. Steampunk newspaper. The dark directions kept looking too serious. The light directions didn't match the pixel art energy.&lt;/p&gt;

&lt;p&gt;Google Stitch generated complete Material Design 3 systems with color tokens, font stacks, and Tailwind configs. Beautiful, but they all looked like SaaS products. The final direction, dusty blue pixel art with a crash screen opening, came from stripping everything back and asking: what would a haunted computer's fortune teller look like?&lt;/p&gt;

&lt;p&gt;I also used Google Veo to generate the banner image for this post.&lt;/p&gt;

&lt;h3&gt;
  
  
  The symbols
&lt;/h3&gt;

&lt;p&gt;The 17-symbol system is the part I'm most proud of. Each symbol comes from real tasseography tradition. Each one maps to a deterministic trigger in the GitHub data. The Mountain appears when your repo has 100+ commits. The Skull appears when you have no LICENSE file. The Grim appears when your repo hasn't been touched in 6 months.&lt;/p&gt;

&lt;p&gt;The selection happens client-side in &lt;code&gt;symbols.js&lt;/code&gt;. No AI involved. The symbols are sorted by drama (Grim outranks Apple). If fewer than three triggers match, the Bird (good news) appears as a default. The Teacup is always present. The reading happens inside a teapot.&lt;/p&gt;

&lt;p&gt;This split is deliberate: the DATA is deterministic, the STORYTELLING is AI. Same repo, same symbols every time. But each reading is a unique narrative.&lt;/p&gt;

&lt;h3&gt;
  
  
  The AI
&lt;/h3&gt;

&lt;p&gt;Madame Steep is an 80+ line Gemini system prompt. She's Professor Trelawney meets a disappointed senior engineer. The prompt engineering focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Making her reference specific repo data (file names, commit messages, percentages) instead of generic observations&lt;/li&gt;
&lt;li&gt;Weaving tea metaphors naturally into every section&lt;/li&gt;
&lt;li&gt;Keeping verdicts under 15 words (the shareable moment)&lt;/li&gt;
&lt;li&gt;A banned word list to kill LLM filler ("formidable," "testament," "leviathan," "sprawl")&lt;/li&gt;
&lt;li&gt;Never giving useful advice. She's a mystic, not a linter.&lt;/li&gt;
&lt;li&gt;Never being cruel to the developer. She roasts the code, not the coder.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Vanilla HTML/CSS/JS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;Vercel (free tier)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;One Vercel serverless function&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;Google Gemini 2.5 Flash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;GitHub REST API (unauthenticated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage&lt;/td&gt;
&lt;td&gt;localStorage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Share&lt;/td&gt;
&lt;td&gt;html2canvas&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The 60 request/hour GitHub API rate limit is a feature. The neon bar at the top of the app tracks it in real time: "LEAVES REMAINING: 47 / 60 • THE LEAVES GROW WEARY." When you run out: "THE LEAVES HAVE GONE SILENT. RETURN WHEN THE HOUR TURNS."&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Best Ode to Larry Masinter
&lt;/h3&gt;

&lt;p&gt;In 1998, Larry Masinter wrote RFC 2324 as an April Fools' joke. He defined a Hyper Text Coffee Pot Control Protocol, complete with a BREW method, Accept-Additions headers (cream, sugar), and status code 418: "I'm a teapot." The spec notes the response body "MAY be short and stout," a nod to the nursery rhyme.&lt;/p&gt;

&lt;p&gt;It was satire about over-extending HTTP for absurdly specific purposes. Then in 2017, a 15-year-old developer named Shane Brunswick started the Save 418 movement when the IETF tried to remove it. The movement went viral. Node.js, Go, Python, and ASP.NET all kept 418. Python 3.9 officially added &lt;code&gt;IM_A_TEAPOT&lt;/code&gt;. A joke from 1998 became permanent internet infrastructure.&lt;/p&gt;

&lt;p&gt;Steep is structurally a 418 response. The entire app is a teapot that someone asked to do useful developer work (code review), and it responded with a tea leaf reading instead. The 418 page is not an Easter egg. It's the thesis.&lt;/p&gt;

&lt;p&gt;Click "Actually, give me a real code review" and Steep tells you: "You asked me to brew coffee. I can only read leaves. This is not a code review tool. This is a vessel of divination. RFC 2324, Section 2.3.2."&lt;/p&gt;

&lt;p&gt;The rate limit bar says "THE LEAVES GROW WEARY." The loading screen says "Madame Steep peers into your cup." The crash screen error code is &lt;code&gt;ERR_TEAPOT_418 :: STEEP_DIVINATION_FAULT&lt;/code&gt;. Every interaction is steeped (sorry) in the teapot metaphor. The app IS a teapot. It has always been a teapot.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Google AI Usage
&lt;/h3&gt;

&lt;p&gt;Google AI is embedded throughout Steep, from concept to design to product:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini Chat&lt;/strong&gt; helped shape the concept. The path from "Ig Nobel prizes" to "tasseography for GitHub repos" happened in a Gemini conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Stitch&lt;/strong&gt; generated the UI explorations. Multiple rounds of complete page mockups with color token systems and component patterns. Eight distinct directions before locking in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Veo&lt;/strong&gt; generated the banner image for this submission.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini 2.5 Flash API&lt;/strong&gt; powers the live product. Every reading is a real-time Gemini call with an 80+ line character prompt, structured JSON output, and creative interpretation channeled through a deterministic symbol framework.&lt;/p&gt;

&lt;p&gt;The symbol system is where the architecture gets interesting. 17 symbols from real tasseography, each mapped to a deterministic trigger:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symbol&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Your repo earns it when...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;⛰ Mountain&lt;/td&gt;
&lt;td&gt;A great journey&lt;/td&gt;
&lt;td&gt;100+ commits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;💀 Grim&lt;/td&gt;
&lt;td&gt;Death approaches&lt;/td&gt;
&lt;td&gt;No commits in 6+ months&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;♥ Heart&lt;/td&gt;
&lt;td&gt;Devotion&lt;/td&gt;
&lt;td&gt;Solo contributor, 50+ commits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐍 Snake&lt;/td&gt;
&lt;td&gt;Deception&lt;/td&gt;
&lt;td&gt;50%+ lazy commit messages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;☀ Sun&lt;/td&gt;
&lt;td&gt;Great happiness&lt;/td&gt;
&lt;td&gt;Test files found&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;☠ Skull&lt;/td&gt;
&lt;td&gt;Danger&lt;/td&gt;
&lt;td&gt;No LICENSE file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;♠ Spade&lt;/td&gt;
&lt;td&gt;Hard work&lt;/td&gt;
&lt;td&gt;CI/CD configured&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🍎 Apple&lt;/td&gt;
&lt;td&gt;Knowledge&lt;/td&gt;
&lt;td&gt;README over 500 characters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚔ Sword&lt;/td&gt;
&lt;td&gt;Conflict&lt;/td&gt;
&lt;td&gt;30%+ merge commits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚓ Anchor&lt;/td&gt;
&lt;td&gt;Stability&lt;/td&gt;
&lt;td&gt;Consistent commits over 6+ months&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐦 Bird&lt;/td&gt;
&lt;td&gt;Good news&lt;/td&gt;
&lt;td&gt;Pushed within 7 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✝ Cross&lt;/td&gt;
&lt;td&gt;Trials&lt;/td&gt;
&lt;td&gt;20+ open issues&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌳 Tree&lt;/td&gt;
&lt;td&gt;Growth&lt;/td&gt;
&lt;td&gt;5+ active branches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🪁 Kite&lt;/td&gt;
&lt;td&gt;Wishes&lt;/td&gt;
&lt;td&gt;Roadmap file detected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌙 Moon&lt;/td&gt;
&lt;td&gt;Mystery&lt;/td&gt;
&lt;td&gt;.env and .env.example both present&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐈 Cat&lt;/td&gt;
&lt;td&gt;Treachery&lt;/td&gt;
&lt;td&gt;Outdated dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌰 Acorn&lt;/td&gt;
&lt;td&gt;Windfall&lt;/td&gt;
&lt;td&gt;High stars-to-age ratio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🫖 Teacup&lt;/td&gt;
&lt;td&gt;The vessel speaks&lt;/td&gt;
&lt;td&gt;Always present&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Symbol selection is deterministic. No AI involved. Gemini's job is to interpret the symbols it's given, not to choose them. This means every reading is grounded in real data, and Gemini's creativity is channeled through a structured framework rather than generating everything from scratch. The data is consistent. The storytelling is not.&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%2Fx57eg2aholluha2ycqnm.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%2Fx57eg2aholluha2ycqnm.png" alt=" " width="800" height="783"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Built by L. Cordero&lt;/strong&gt; (&lt;a href="https://dev.to/earlgreyhot1701D"&gt;@earlgreyhot1701D&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI assisted. Human approved. Powered by NLP.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
      <category>learning</category>
    </item>
    <item>
      <title>Do you work here? I flew to Albuquerque to speak at a national conference. Someone asked if I worked the door.</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Tue, 31 Mar 2026 17:59:36 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/do-you-work-here-i-flew-to-albuquerque-to-speak-at-a-national-ai-conference-someone-asked-if-i-3inj</link>
      <guid>https://dev.to/earlgreyhot1701d/do-you-work-here-i-flew-to-albuquerque-to-speak-at-a-national-ai-conference-someone-asked-if-i-3inj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/wecoded-2026"&gt;2026 WeCoded Challenge&lt;/a&gt;: Echoes of Experience&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I get asked if I work here. A lot.&lt;/p&gt;

&lt;p&gt;Target. Hallmark. Grocery stores. I'll be in jeans and a t-shirt, baseball cap on, holding my own cart, my own bags, clearly in the middle of my own shopping, and someone will walk up and ask where something is. Or skip the question entirely:&lt;/p&gt;

&lt;p&gt;"Do you work here?"&lt;/p&gt;

&lt;p&gt;I never do.&lt;/p&gt;

&lt;p&gt;After a while, you stop being surprised. You start keeping track without trying. What you were wearing. How you were standing. Who asked. What they saw when they looked at you, and what they decided it meant. The catalog builds on its own.&lt;/p&gt;

&lt;p&gt;It gets heavy.&lt;/p&gt;




&lt;p&gt;In March 2026, I flew to Albuquerque for the NACM Midyear Conference, the National Association for Court Management.&lt;/p&gt;

&lt;p&gt;I was there to present. My session was about whether courts should invest in building internal AI capacity through their frontline staff, and I used my own work as the case study. Jury eligibility chatbots. Document processing with AWS Textract. A data pipeline for eleven years of jury utilization records. An automation attempt that dead-ended when I found out vendor data quality was the real problem, not the AI.&lt;/p&gt;

&lt;p&gt;Civic tech, built from the operations side, for people trying to figure out what AI actually means in their courts. I'd been writing about it and building for months. But this was the first time I was standing in front of court administrators at a national conference, in person, walking them through what I built and what it taught us.&lt;/p&gt;




&lt;p&gt;I got to the hotel early, before registration opened. A woman walked up to the entrance at the same time I did, her hands full. I reached for the door.&lt;/p&gt;

&lt;p&gt;"Would you like me to open it?"&lt;/p&gt;

&lt;p&gt;She looked at me.&lt;/p&gt;

&lt;p&gt;"Do you work here?"&lt;/p&gt;

&lt;p&gt;I had on a baseball cap. Sunglasses. A Mexican woven shirt. I was just a person holding a door.&lt;/p&gt;

&lt;p&gt;"No. Your hands are full."&lt;/p&gt;

&lt;p&gt;She said she appreciated it.&lt;/p&gt;

&lt;p&gt;I walked in ahead of her, stood in line ahead of her, and checked in.&lt;/p&gt;

&lt;p&gt;Another entry.&lt;/p&gt;




&lt;p&gt;Here's what I keep coming back to.&lt;/p&gt;

&lt;p&gt;The places where people mistake me for staff are places where I've never once felt out of place. I think about the grocery store near my house where one of the women who works there calls me mija every time I come in. She doesn't know what I do. She doesn't care. She just sees me, and that's the whole interaction. No performance required. I think about the aisles where someone won't just point you toward what you're looking for but will walk you there. Those places take care of people.&lt;/p&gt;

&lt;p&gt;No one asks you to earn it first.&lt;/p&gt;




&lt;p&gt;The rooms I've actually earned my way into are different.&lt;/p&gt;

&lt;p&gt;Not because anyone inside is doing something wrong. But because by the time I reach the door, someone has usually already told me what they think I am. So I walk in carrying it. Adjusting anyway. Even when I shouldn't have to.&lt;/p&gt;

&lt;p&gt;That's what I carried into the conference room when I set up my slides and tested my mic in Albuquerque.&lt;/p&gt;




&lt;p&gt;I gave the talk. It went well. People stayed for questions. Courts have followed up since, asking how to start their own AI work, how to think about risk, how to structure bounded experiments in an environment where you can't afford to get it wrong.&lt;/p&gt;

&lt;p&gt;That was the whole point of being there.&lt;/p&gt;




&lt;p&gt;That question doesn't stay at the door.&lt;/p&gt;

&lt;p&gt;There's a conversation in AI/tech/dev communities right now about what counts as "real" building. If you learned with AI tools, if you came from outside the industry, if you figured it out as you went, there are people who will question whether it counts. Whether you understand what you shipped. Whether you earned it.&lt;/p&gt;

&lt;p&gt;Sometimes it sounds like "Do you understand what you've built?"&lt;/p&gt;

&lt;p&gt;Sometimes it sounds like "Do you work here?"&lt;/p&gt;

&lt;p&gt;The mechanics are the same. Someone looks at you, decides what you are, and asks a question they already think they know the answer to.&lt;/p&gt;




&lt;p&gt;I built things that work. I learned in the margins of a full-time job, using the tools available to get started and keep going. I also know what I don't know yet, and I'm working on closing those gaps.&lt;/p&gt;

&lt;p&gt;Both of those are true at the same time.&lt;/p&gt;

&lt;p&gt;I was careful about how I built for my work prototypes. Nothing went into production. That was by design. Every prototype existed to generate operational intelligence, to help court leadership understand what these tools could actually do before committing real resources. I documented everything. I set boundaries. I stopped when something wasn't mine to solve. I made it easier for my manager to say yes the next time.&lt;/p&gt;

&lt;p&gt;The work did what it was supposed to do.&lt;/p&gt;




&lt;p&gt;I don't have a clean ending for this.&lt;/p&gt;

&lt;p&gt;The pattern started long before I learned to code, and it will keep going whether I build ten more prototypes or a hundred. I'm not interested in performing my way past it, and I don't think the answer is accumulating enough credentials that people stop asking the question. They won't.&lt;/p&gt;

&lt;p&gt;I walked into that hotel. Then I walked into that conference room. I gave the talk I came to give.&lt;/p&gt;

&lt;p&gt;If you're building from a path that doesn't look the way people expect, from a role without a clean title, from someone people size up before they listen to, you already know what the catalog feels like. It's not any single entry that weighs you down. It's that there's always a next one.&lt;/p&gt;

&lt;p&gt;The catalog gets heavy.&lt;/p&gt;

&lt;p&gt;The work is still yours.&lt;/p&gt;




&lt;p&gt;AI assisted. Human approved. Powered by NLP. &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>wecoded</category>
      <category>dei</category>
      <category>career</category>
    </item>
    <item>
      <title>I Planned an Exit Strategy. I Stayed the Whole Time.</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Mon, 09 Mar 2026 03:37:29 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/i-planned-an-exit-strategy-i-stayed-the-whole-time-4ejh</link>
      <guid>https://dev.to/earlgreyhot1701d/i-planned-an-exit-strategy-i-stayed-the-whole-time-4ejh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/wecoded-2026"&gt;2026 WeCoded Challenge&lt;/a&gt;: Echoes of Experience&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I told my wife to keep her phone close. "I might call you to come get me early," I said, already mapping the exit in my head before she'd even pulled away from the curb. Large groups of strangers in new environments are not my thing. Never have been. I had a whole contingency plan: polite excuses, a headache maybe, the classic slip-out-the-back-door if it came to that.&lt;/p&gt;

&lt;p&gt;That was this morning, March 8th. International Women's Day. I was walking into a &lt;a href="https://shebuilds.lovable.app" rel="noopener noreferrer"&gt;SheBuilds on Lovable&lt;/a&gt; event to celebrate by doing something I would not have imagined doing a few years ago: building an app in a room full of people I had never met. Lovable opened its AI app builder for free for 24 hours, powered by Anthropic, and handed every participant $100 in Claude API credits and $250 in Stripe credits. No application. No eligibility requirements. Just show up with a laptop and an idea.&lt;/p&gt;

&lt;p&gt;I showed up with both, and a detailed exit strategy I never used.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I was building
&lt;/h2&gt;

&lt;p&gt;Live music memories fade. You remember the feeling but not the setlist. You remember the venue but not the year. You have ticket stubs in a shoebox or maybe just a mental list that gets shorter every time you try to recall it. I wanted a way to preserve that history and actually see the story it tells about you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aftershowatlas.lovable.app/" rel="noopener noreferrer"&gt;Aftershow Atlas&lt;/a&gt;. A personal concert history tracker with an Old Hollywood marquee aesthetic. You log a show you attended (artist, venue, date), and the app pulls the real setlist from setlist.fm, drops a pin on your map, and you enter memory line for each show.&lt;/p&gt;

&lt;p&gt;The feature I was most excited about is Musical DNA. It reads your concert history and tells you who you are as a music fan. Not stats. Interpretation. "A devoted alternative rock archaeologist who excavates the grittiest gems of the '90s underground, returning again and again to worship at the altar of Shirley Manson's defiant anthems. They chase the raw, unpolished edge of rock's rebellious daughters across continents, from Dublin's punk halls to Mexico's intimate venues." That kind of thing.&lt;/p&gt;

&lt;p&gt;I had spent the night before building out the full brief with Claude: design system, database schema, edge functions, accessibility requirements, a 14-section build document. I came prepared. What I did not come prepared for was how the day would actually feel.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened in the room
&lt;/h2&gt;

&lt;p&gt;Christina, our host, gave us about an hour and twenty minutes to build. I remember her announcing that time was up and genuinely not believing it. How? We had just gotten here.&lt;/p&gt;

&lt;p&gt;But that is the thing. We did not just build. We got to know each other first. And then, even while building, I talked to Billie, Alison, and Kushboo about what they were working on, what they were experiencing, what problems they were trying to solve. Sharing ideas with strangers. Getting excited about someone else's project. Offering a suggestion. Asking a question you were not sure was smart enough to ask.&lt;/p&gt;

&lt;p&gt;I do not think I spoke with a single builder who had an engineering background. Not one. And they were all building something that mattered to them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The builder identity
&lt;/h2&gt;

&lt;p&gt;One of the conversations Christina led, and I keep coming back to, was about embracing the builder identity. Not the engineer identity. Not the developer identity. The builder identity.&lt;/p&gt;

&lt;p&gt;We may not be building unicorns. Our apps might stay at v1 forever. The code might not be elegant by anyone's standard. But we are building. We are taking up space and filling it with our ideas, our products, our passions. And we are doing it together, which means we get to shine in our strengths and support each other through the parts that are hard.&lt;/p&gt;

&lt;p&gt;That reframe mattered to me. Because when you come from courtroom operations, not computer science, when you learned to build by directing AI tools instead of writing code from scratch, calling yourself a builder can feel like you are borrowing someone else's jacket. Christina made it clear that the jacket fits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I come from
&lt;/h2&gt;

&lt;p&gt;I spent years managing courtroom operations before I ever touched a codebase. My path into tech was not a boot camp or a CS degree. It was curiosity, AI tools, and a stubbornness about building things that actually help people.&lt;/p&gt;

&lt;p&gt;I do not write code from scratch. I provide creative direction and validation. I work with a handful of AI tools, compare their outputs, choose the best pieces, and stitch them together into something that works. The AI generates. I direct, validate, and refine. That is a deliberate workflow, not a limitation.&lt;/p&gt;

&lt;p&gt;The point is not that engineering degrees do not matter. They do. We need people who can read code, write code, and help the rest of us fix our mistakes. The point is that there is more than one path to building something worth using, and mine started in a courtroom.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I keep waiting for
&lt;/h2&gt;

&lt;p&gt;I keep waiting for the part where I have to be cynical about this. The part where I hedge, or qualify, or add the "but of course, it is not all sunshine" paragraph so it does not sound naive.&lt;/p&gt;

&lt;p&gt;It has not come yet.&lt;/p&gt;

&lt;p&gt;Nobody in that room felt like they had to perform. Nobody was networking in that calculating way where you can feel someone scanning for your job title. People showed up. People built. People helped each other. Product.io hosted us, Christina put the whole thing together, and the energy was just... great.&lt;/p&gt;

&lt;p&gt;When you spend enough time building alone in an echo chamber (solo builder anyone?), or showing up to spaces that feel curated or transactional, you notice when one feels different. This one did.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this is for
&lt;/h2&gt;

&lt;p&gt;If you are reading this and you do not have a tech background but you have been thinking about building something, this is for you. If you are in an underserved community wondering whether the tools and the spaces and the support actually exist, they do.&lt;/p&gt;

&lt;p&gt;If you want to be a founder, help others, invest in your community, or just finally build that idea that has been sitting in your notes app for six months, it feels like the barrier is lower than it has ever been. I built Aftershow Atlas as a solo builder with no engineering background and a very detailed brief. If I can do that, I think a lot of other people can too.&lt;/p&gt;

&lt;h2&gt;
  
  
  The app
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://aftershowatlas.lovable.app/" rel="noopener noreferrer"&gt;Aftershow Atlas&lt;/a&gt; is live. It is not perfect. The auth flow gave me trouble (Google OAuth was a disaster, we pivoted to magic link mid-event). Lovable ran out of Claude credits partway through, and we kept going anyway. The marquee bulb animation is maybe a little extra. The Musical DNA feature still needs more show data before it really sings.&lt;/p&gt;

&lt;p&gt;But it exists. Because I showed up to a room full of strangers on International Women's Day, did not call my wife for an early ride home, and built something.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built at &lt;a href="https://shebuilds.lovable.app" rel="noopener noreferrer"&gt;SheBuilds on Lovable&lt;/a&gt; on March 8, 2026, celebrating International Women's Day. Powered by Lovable, Anthropic Claude, Supabase, and the setlist.fm API. Thank you to Christina, Product.io, and every builder in that room.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Check out &lt;a href="https://aftershowatlas.lovable.app/" rel="noopener noreferrer"&gt;Aftershow Atlas&lt;/a&gt; or find me on GitHub: &lt;a href="https://github.com/earlgreyhot1701D" rel="noopener noreferrer"&gt;@earlgreyhot1701D&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>wecoded</category>
      <category>dei</category>
      <category>career</category>
    </item>
    <item>
      <title>I'm a semifinalist in AWS 10,000 AIdeas Competition 🎯 Community voting is open through March 20th — would love your support!
👉 https://tinyurl.com/clewdirective
Better yet, try it: clewdirective.com — 4 questions, personalized AI learning path PDF.</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Sun, 08 Mar 2026 00:48:29 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/im-a-semifinalist-in-aws-10000-aideas-competition-community-voting-is-open-through-march-20th--h52</link>
      <guid>https://dev.to/earlgreyhot1701d/im-a-semifinalist-in-aws-10000-aideas-competition-community-voting-is-open-through-march-20th--h52</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/earlgreyhot1701d/me-a-semi-finalist-in-the-aws-10000-aideas-competition-heres-what-i-built-524p" class="crayons-story__hidden-navigation-link"&gt;Me? A Semi-Finalist in the AWS 10,000 AIdeas Competition? Here's What I Built&lt;/a&gt;
    &lt;div class="crayons-article__cover crayons-article__cover__image__feed"&gt;
      &lt;iframe src="https://www.youtube.com/embed/cEK1BKNxiNQ" title="Me? A Semi-Finalist in the AWS 10,000 AIdeas Competition? Here's What I Built"&gt;&lt;/iframe&gt;
    &lt;/div&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/earlgreyhot1701d" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3683045%2F7ee68517-114b-40b7-8b26-3e0e95acfe11.jpg" alt="earlgreyhot1701d profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/earlgreyhot1701d" class="crayons-story__secondary fw-medium m:hidden"&gt;
              L. Cordero
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                L. Cordero
                
              
              &lt;div id="story-author-preview-content-3274147" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/earlgreyhot1701d" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3683045%2F7ee68517-114b-40b7-8b26-3e0e95acfe11.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;L. Cordero&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/earlgreyhot1701d/me-a-semi-finalist-in-the-aws-10000-aideas-competition-heres-what-i-built-524p" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 22&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/earlgreyhot1701d/me-a-semi-finalist-in-the-aws-10000-aideas-competition-heres-what-i-built-524p" id="article-link-3274147"&gt;
          Me? A Semi-Finalist in the AWS 10,000 AIdeas Competition? Here's What I Built
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/aws"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;aws&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/learning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;learning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/earlgreyhot1701d/me-a-semi-finalist-in-the-aws-10000-aideas-competition-heres-what-i-built-524p#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




&lt;p&gt;

&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://builder.aws.com/content/39mEGMF2RFcE1Yt3xZ97TKFz4Xs/aideas-clew-directive-free-ai-learning-navigator-or-stop-following-the-hype-start-directing-the-search" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuilder.aws.com%2Fassets%2Fog-hiXAX-on.png" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://builder.aws.com/content/39mEGMF2RFcE1Yt3xZ97TKFz4Xs/aideas-clew-directive-free-ai-learning-navigator-or-stop-following-the-hype-start-directing-the-search" rel="noopener noreferrer" class="c-link"&gt;
            AWS Builder Center
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Connect with builders who understand your journey. Share solutions, influence AWS product development, and access useful content that accelerates your growth. Your community starts here.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbuilder.aws.com%2Fassets%2Fbuilder-favicon-sq0js-4n.svg"&gt;
          builder.aws.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;




</description>
      <category>ai</category>
      <category>beginners</category>
      <category>aws</category>
      <category>learning</category>
    </item>
    <item>
      <title>I Didn't Always Understand What I Was Building. That Was the Point.</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Sun, 01 Mar 2026 22:19:58 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/i-didnt-always-understand-what-i-was-building-that-was-the-point-2i2b</link>
      <guid>https://dev.to/earlgreyhot1701d/i-didnt-always-understand-what-i-was-building-that-was-the-point-2i2b</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/mlh/built-with-google-gemini-02-25-26"&gt;Built with Google Gemini: Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  I Didn't Always Understand What I Was Building. That Was the Point.
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;A reflection on Memoria Clew, Google Gemini, and nine months of learning to build.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Nine months ago I wrote my first API call. This past December I built a full-stack application with Docker, rate limiting, a real MCP server, and multi-model fallback — in 20 hours, over a holiday weekend, inside an IDE that felt like magic.&lt;/p&gt;

&lt;p&gt;I didn't always understand what I was building. That turned out to be the most important thing I learned.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Built with Google Gemini
&lt;/h2&gt;

&lt;p&gt;I built Memoria Clew inside Google's Antigravity IDE, powered by Gemini. That means Gemini was doing two things simultaneously: it was the engine building the project from my architecture documents and staged prompts, and it was the intelligence inside the product itself — handling content summarization and tag extraction for every URL and snippet a user captures. Builder and built-in at the same time. That turned out to matter more than I expected.&lt;/p&gt;

&lt;p&gt;Here is the problem the project solves, in its simplest form: I read AI and dev articles constantly. I forget constantly. The gap between those two things is where useful knowledge goes to die.&lt;/p&gt;

&lt;p&gt;I would read something genuinely useful — a deep dive on async patterns, a thread about Docker networking, a README from a project doing something clever — and weeks later, while struggling through exactly the problem that article solved, I couldn't find it. Not because it wasn't saved. Because I couldn't remember &lt;em&gt;why&lt;/em&gt; I saved it. The context was gone. Bookmarks don't remember why.&lt;/p&gt;

&lt;p&gt;Memoria Clew was built to close that gap. It's a local-first research memory for developers that captures what you read, stores it with Gemini-generated summaries and tags, and surfaces relevant items back when your current work context matches something you already know. Not based on a search query you have to think up. Based on what you're actually building right now.&lt;/p&gt;

&lt;p&gt;When something surfaces, you see exactly why. "Matches tags: REACT, TYPESCRIPT. Saved 4 days ago." No mystery. The system shows its work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Video walkthrough:&lt;/strong&gt; &lt;a href="https://youtu.be/YOUR_LINK_HERE" rel="noopener noreferrer"&gt;YouTube Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/earlgreyhot1701D/memoria-clew" rel="noopener noreferrer"&gt;earlgreyhot1701D/memoria-clew&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hackathon results:&lt;/strong&gt; &lt;a href="https://vibe.yaps.gg/" rel="noopener noreferrer"&gt;AI Vibe Coding Hackathon — Full Rankings&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Memoria Clew placed 4th out of 250 projects and won two category prizes: Top 6 Best Projects Built with ElevenLabs and First Place Build with Featherless.ai. The happy path is strong — capture a URL, watch it summarize and tag, trigger recall, see the reasoning. The logs are there. The pattern analysis runs. It doesn't pretend to do more than it does.&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%2Febp41w5zdf305v6uq49r.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%2Febp41w5zdf305v6uq49r.png" alt=" " width="800" height="407"&gt;&lt;/a&gt;&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%2Fvv7tvrs3znxg6oguxttm.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%2Fvv7tvrs3znxg6oguxttm.png" alt=" " width="800" height="407"&gt;&lt;/a&gt;&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%2Flqn5b4qdg3ryw0ui4kfl.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%2Flqn5b4qdg3ryw0ui4kfl.png" alt=" " width="800" height="376"&gt;&lt;/a&gt;&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%2Fn8yup2vtmgpk3rrxkvml.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%2Fn8yup2vtmgpk3rrxkvml.png" alt=" " width="800" height="853"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;h3&gt;
  
  
  The question that changed how I build
&lt;/h3&gt;

&lt;p&gt;The question I learned to ask wasn't &lt;em&gt;will this work?&lt;/em&gt; It was &lt;em&gt;will this work the way my idea intended?&lt;/em&gt; Those are different questions. The first is about function. The second is about meaning.&lt;/p&gt;

&lt;p&gt;When something broke or didn't behave the way I pictured, the answer was almost never to abandon it. It was to pivot. The pivot usually taught me something the original plan couldn't have. That's not a consolation prize — it's actually how vibe coding works when it's going well. It's discovery with guardrails, not chaos.&lt;/p&gt;

&lt;p&gt;The PRD made that possible. Before a single line of code was written, there was an architecture document, a philosophy statement, and a staged build plan. When Antigravity's context window couldn't hold the whole system at once — and it couldn't, that was a real constraint — the stages gave each prompt clear scope. The agent knew what it was building in Phase 3 because Phase 3 was defined before Phase 1 started.&lt;/p&gt;

&lt;h3&gt;
  
  
  The moment that became the whole philosophy
&lt;/h3&gt;

&lt;p&gt;There was a specific problem with tag extraction mid-build. Gemini was producing plausible tags for captured content — tags that sounded right but weren't actually in the text. It was inferring rather than extracting. The fix was a single prompt change: &lt;em&gt;extract only what is explicitly mentioned in this content, do not infer.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That one constraint — extraction versus inference — turned out to be the recall engine in miniature. The whole project in one prompt fix. If you ask a model to be helpful without boundaries, it will be helpful in ways you didn't ask for. If you ask it to extract, it extracts.&lt;/p&gt;

&lt;p&gt;I built a logging layer to catch exactly this kind of problem. When tags didn't match content, the mismatch was visible. The system showed its work even when the work was wrong. That logging layer, which started as a debugging tool, became the thing a judge — a principal engineer at Microsoft — specifically called out: &lt;em&gt;"The explainable recall engine with transparent scoring is exactly what most AI projects lack."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Friction became feature. I want to remember that pattern.&lt;/p&gt;

&lt;h3&gt;
  
  
  The thing vibe coders usually skip
&lt;/h3&gt;

&lt;p&gt;Rate limiting isn't glamorous. It doesn't show up in demo videos. Nobody puts it in a project thumbnail.&lt;/p&gt;

&lt;p&gt;But vibe coders ship fast and leave the door open. It's one of the most consistent blind spots in AI-assisted development — you build the thing that works, you demo it, you submit it, and somewhere in the backend there's an endpoint with no protection on it. Anyone who finds it can hammer it until your API credits are gone or your service falls over.&lt;/p&gt;

&lt;p&gt;I knew this going in and built rate limiting deliberately — per-IP limits, security middleware, tests to verify it held. Not because I had to. Because leaving it out felt dishonest to the project's whole premise. If Memoria Clew was going to be a system you could trust, it needed to behave like one even in the parts nobody sees.&lt;/p&gt;

&lt;p&gt;That same judge who called out the recall engine also mentioned the production-grade infrastructure. I think rate limiting was part of what he meant. It's the kind of thing that's invisible when it works and catastrophic when it doesn't.&lt;/p&gt;

&lt;h3&gt;
  
  
  On nine months and what magic actually means
&lt;/h3&gt;

&lt;p&gt;Working in VS Code with chat windows as a guide and working inside Antigravity with Gemini embedded in the build process are not the same experience. The difference is night and day. The IDE feels like a collaborator. That collaborator is fast, capable, occasionally wrong, and completely unaware of what it built in the previous session.&lt;/p&gt;

&lt;p&gt;The speed is the thing that's hardest to describe to someone who hasn't felt it. The Christmas Day skeleton — a full-stack application scaffold with routing, services, and component structure — appeared faster than seemed possible. For someone nine months into coding, that speed doesn't just save time. It changes what feels buildable. Projects that would have taken weeks to attempt became weekend sprints.&lt;/p&gt;

&lt;p&gt;The word that came to mind watching it happen was &lt;em&gt;magic&lt;/em&gt;. Not metaphorically. It genuinely felt like that.&lt;/p&gt;

&lt;p&gt;When the project placed 4th out of 250 and won two category prizes, one judge left a comment that felt like — there's no better way to put this — a connection to the ether. Like work done in relative isolation had been seen by someone who understood exactly what it was trying to do. That feeling was real and I'm not going to undersell it.&lt;/p&gt;

&lt;p&gt;Another judge scored it 2.9/5 and noted that similar tools already exist. That was also fair. Both things are true at the same time. The idea isn't novel. The execution had something worth looking at.&lt;/p&gt;




&lt;h2&gt;
  
  
  Google Gemini Feedback
&lt;/h2&gt;

&lt;p&gt;This is where the paradox lives.&lt;/p&gt;

&lt;p&gt;Memoria Clew was built to be transparent — to show its reasoning, log its decisions, make its intelligence inspectable. It was built &lt;em&gt;inside&lt;/em&gt; a tool that felt like magic, whose reasoning wasn't always visible, whose context window had edges I didn't know about until I hit them.&lt;/p&gt;

&lt;p&gt;Building a tool that shows its work, inside a tool that doesn't always show its own — that tension ran through the whole project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What worked:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The speed is real and it's genuinely extraordinary. Not just convenient — for a developer still learning what questions to ask, it changes what feels possible. That's not a small thing.&lt;/p&gt;

&lt;p&gt;Antigravity understood architecture documents. Feeding it a staged PRD and watching it wire components to real APIs felt like having a senior developer read the brief and start building. When the prompts were clear and scoped, the output was strong.&lt;/p&gt;

&lt;p&gt;Gemini's summarization quality, when the prompt was right, was solid. Technical content came back with accurate summaries. The model understood the domain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where the friction was:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The context window was the main constraint. The agent didn't remember what it had built in a previous session. Stage 3 didn't know what Stage 1 had decided. Fixing something in one part of the system could quietly break something elsewhere because the agent was working with a partial picture of the whole.&lt;/p&gt;

&lt;p&gt;The solution was external — better staged prompts, tighter scope per session, architecture documentation that could be re-fed as context. That worked, but it meant I had to carry the full system in my head even when the agent couldn't.&lt;/p&gt;

&lt;p&gt;The tag inference problem was Gemini defaulting to helpfulness in a way that wasn't useful. When asked to identify topics in content, it would go beyond what was actually there. It was trying to be smart. The fix was constraining the prompt — but the constraint had to be discovered by watching the output carefully and noticing when something was slightly off. Which is the whole argument for transparency in the first place.&lt;/p&gt;

&lt;p&gt;The last thing is more of an observation than a criticism. Antigravity moves fast enough that it's possible to outrun your own understanding. Something gets built, it works, and you're not entirely sure why. For a developer still learning, that speed is a double-edged thing — you ship faster, but the gaps in understanding compound quietly if you're not reading what gets built, not just running it.&lt;/p&gt;

&lt;p&gt;The right relationship with these tools turned out to be the same relationship Memoria Clew tries to model: use the intelligence, stay in control, keep the reasoning visible. AI that shows its work.&lt;/p&gt;

&lt;p&gt;I didn't set out to build a project that embodied the lesson I was learning while building it. But that's what happened.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for the Built with Google Gemini: Writing Challenge presented by MLH.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;GitHub: &lt;a href="https://github.com/earlgreyhot1701D/memoria-clew" rel="noopener noreferrer"&gt;earlgreyhot1701D/memoria-clew&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Hackathon results: &lt;a href="https://vibe.yaps.gg/" rel="noopener noreferrer"&gt;vibe.yaps.gg&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was written with structural assistance from Claude Code, which helped organize and refine the draft. The experiences, observations, and bad decisions are entirely my own.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;#geminireflections #devchallenge #gemini #ai&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>geminireflections</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Me? A Semi-Finalist in the AWS 10,000 AIdeas Competition? Here's What I Built</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Sun, 22 Feb 2026 00:27:03 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/me-a-semi-finalist-in-the-aws-10000-aideas-competition-heres-what-i-built-524p</link>
      <guid>https://dev.to/earlgreyhot1701d/me-a-semi-finalist-in-the-aws-10000-aideas-competition-heres-what-i-built-524p</guid>
      <description>&lt;p&gt;So this happened: my little project, &lt;strong&gt;Clew Directive&lt;/strong&gt;, got selected as a semi-finalist in the AWS 10,000 AIdeas Competition. I'm now among the top 1,000 innovators moving to the building phase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick version&lt;/strong&gt;: Clew Directive is a free tool that generates personalized AI learning paths in 60 seconds using Amazon Nova's reasoning. No paywalls, no tracking, no accounts. Just a PDF you can download and keep.&lt;/p&gt;

&lt;p&gt;I'm genuinely shocked. But in a good way - like, I believed in the idea, and it turns out other people saw the vision too.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters (To Me)
&lt;/h2&gt;

&lt;p&gt;AI literacy is becoming a baseline life skill. But access shouldn't depend on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How much money you have&lt;/li&gt;
&lt;li&gt;Where you live&lt;/li&gt;
&lt;li&gt;Whether an algorithm decided to feed you the "right" courses&lt;/li&gt;
&lt;li&gt;Your ability to figure out which resources are legit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When people are overwhelmed, they freeze. They don't move forward. And that's exactly who I'm building Clew Directive for - the people who &lt;em&gt;want&lt;/em&gt; to learn but don't know where to start, who are tired of hype, who just need someone to point them in the right direction.&lt;/p&gt;

&lt;p&gt;I'm inspired by work like &lt;a href="https://www.yuda.io/" rel="noopener noreferrer"&gt;Yuda.io&lt;/a&gt;, which is built on the same belief: AI literacy shouldn't be gatekept. Yuda is creating free, high-quality AI education specifically designed for people who are being left behind by the current tech landscape - people without expensive bootcamp access, people in regions where resources are limited, people who just need clarity without the hype. That idea keeps me going. If you haven't checked them out, they're doing important work.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Moment That Started It All
&lt;/h2&gt;

&lt;p&gt;Here's where it came from: I was doomscrolling Instagram and my algorithm had decided I needed to learn AI. Every. Other. Post. "Learn AI in 10 Days!" "Master ChatGPT!" "AI Bootcamp Starting Now!"&lt;/p&gt;

&lt;p&gt;I couldn't tell which courses were actually free. Which ones were worth my time. What came &lt;em&gt;next&lt;/em&gt; after the first course. I spent like an hour just... researching which resources to use. Tab after tab. Spreadsheet comparisons. Analysis paralysis.&lt;/p&gt;

&lt;p&gt;And I thought: &lt;strong&gt;I'm not the only person overwhelmed by this.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Clew Directive?
&lt;/h2&gt;

&lt;p&gt;It's straightforward: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You answer 4 quick questions about your experience level, goals, learning style, and background&lt;/li&gt;
&lt;li&gt;Amazon Nova's reasoning agents synthesize that into a personalized profile&lt;/li&gt;
&lt;li&gt;The system reasons through 28 curated, verified free resources and builds &lt;em&gt;your&lt;/em&gt; learning path&lt;/li&gt;
&lt;li&gt;You download a PDF and start learning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What makes it different&lt;/strong&gt;: The PDF is yours to keep. It's not just a list - it's a thoughtful roadmap with reasoning about why each resource was picked for &lt;em&gt;you&lt;/em&gt;, clickable links, estimated time commitment, and next steps. The links are live (not just URLs), so you can click directly from the PDF into each course. Since Clew Directive is completely stateless (no accounts, no tracking, no database), that PDF becomes the artifact you can reference later, share with a friend, or revisit months into your learning journey. It's something tangible you walk away with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No paywalls. No tracking. No accounts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The core idea: AI-powered reasoning should democratize access, not gate it behind subscriptions.&lt;/p&gt;

&lt;p&gt;I should mention: I built this without formal computer science training or education. I work in public service and stumbled into coding through hackathons (3 wins, lucky me) and built my own learning path. So when it came time to actually build Clew Directive, I leaned on AI tools - Claude, ChatGPT, Gemini, Kiro - for scaffolding, code generation, testing, and architectural review. Every line got reviewed and tested. All decisions and mistakes are mine.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The competition moves into a voting phase. The top 300 projects (by likes) move forward to final judging. If you're curious about what I built, I'd genuinely love for you to check it out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Try it&lt;/strong&gt;: &lt;a href="https://clewdirective.com" rel="noopener noreferrer"&gt;clewdirective.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the deep dive&lt;/strong&gt;: &lt;a href="https://builder.aws.com/content/39mEGMF2RFcE1Yt3xZ97TKFz4Xs/aideas-clew-directive-free-ai-learning-navigator-or-stop-following-the-hype-start-directing-the-search" rel="noopener noreferrer"&gt;AWS Builder post&lt;/a&gt; (detailed breakdown of the architecture and reasoning)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch the explainer&lt;/strong&gt;: &lt;a href="https://app.heygen.com/videos/clew-directive-direct-your-ai-search-landscape-update-6e682665d1c0454a889cebbc85f60bd0" rel="noopener noreferrer"&gt;My avatar explains it&lt;/a&gt; (yes, I made an AI avatar explain my AI project)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check the code&lt;/strong&gt;: &lt;a href="https://github.com/earlgreyhot1701D/Clew-Directive" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;See it in action&lt;/strong&gt;: &lt;a href="https://youtu.be/cEK1BKNxiNQ?si=kcSACMWoo06S0yem" rel="noopener noreferrer"&gt;YouTube demo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you dig it, great. If you have feedback or ideas, I genuinely want to hear them. I'm learning as I go.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Talk
&lt;/h2&gt;

&lt;p&gt;Full transparency: I was anxious about this. Not imposter syndrome - I know I built something I can be proud of. But this whole space moves so fast. Everyone's using AI. Everyone's building agents. And there's this underlying current of "if you're not moving at lightspeed, you're behind."&lt;/p&gt;

&lt;p&gt;To me, that's bs, and it's exactly why I built Clew Directive.&lt;/p&gt;

&lt;p&gt;Not everyone learns at the same pace. Not everyone has the same goals. Not everyone should be following the same hype cycle. People need their own path. Their own pace. Their own direction.&lt;/p&gt;

&lt;p&gt;So if you're learning AI and feeling overwhelmed? That's not a you problem. The landscape is genuinely overwhelming. But it doesn't have to be.&lt;/p&gt;




&lt;h2&gt;
  
  
  About the Name
&lt;/h2&gt;

&lt;p&gt;I'm not in love with the name "Clew Directive" anymore. It made sense as a play on "clew" (a ball of thread, a guide through a maze), but honestly, when people hear it, they're like "...what?" If you've got name ideas, I'm all ears. &lt;/p&gt;




&lt;p&gt;Thanks for reading. And thanks to AWS for getting behind this idea.&lt;/p&gt;

&lt;p&gt;Now back to building. 🚀&lt;/p&gt;




&lt;h1&gt;
  
  
  AWS #AmazonNova #AI #Education #Learning #Hackathon #OpenSource #AIDeveloper)**
&lt;/h1&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%2F4g6mj2dwog8dutgdhe2r.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%2F4g6mj2dwog8dutgdhe2r.png" alt=" " width="800" height="476"&gt;&lt;/a&gt;&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%2Fiettpnbr6midns4r8v1m.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%2Fiettpnbr6midns4r8v1m.png" alt=" " width="800" height="778"&gt;&lt;/a&gt;&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%2Fi7ogm0grvk5sv5vkvsyd.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%2Fi7ogm0grvk5sv5vkvsyd.png" alt=" " width="800" height="468"&gt;&lt;/a&gt;&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%2Fwfptm72u42wh6348seuv.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%2Fwfptm72u42wh6348seuv.png" alt=" " width="800" height="508"&gt;&lt;/a&gt;&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%2F1l7oig1ml9lugbv6kf8q.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%2F1l7oig1ml9lugbv6kf8q.png" alt=" " width="800" height="875"&gt;&lt;/a&gt;&lt;/p&gt;




</description>
      <category>ai</category>
      <category>beginners</category>
      <category>aws</category>
      <category>learning</category>
    </item>
    <item>
      <title>Anton Clew — Stop AI From Committing Regret</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Sun, 08 Feb 2026 18:16:04 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/anton-clew-stop-ai-from-committing-regret-j71</link>
      <guid>https://dev.to/earlgreyhot1701d/anton-clew-stop-ai-from-committing-regret-j71</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Anton Clew — Stop AI From Committing Regret
&lt;/h1&gt;

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

&lt;p&gt;&lt;strong&gt;Anton Clew&lt;/strong&gt; is a deterministic, policy-driven CLI that prevents risky or unauthorized file changes before they are committed, adding enforceable safety guardrails to AI-assisted coding workflows in Git repositories.&lt;/p&gt;

&lt;p&gt;As AI agents and automation generate changes faster than humans can reliably review them, it becomes easy to accidentally modify sensitive files (keys/secrets), touch critical configuration, or change core code paths without explicit approval. Anton Clew shifts safety &lt;strong&gt;left&lt;/strong&gt; by enforcing &lt;strong&gt;policy as code&lt;/strong&gt; &lt;em&gt;before commits happen&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Developers define simple YAML rules (path and glob-based), and Anton Clew evaluates &lt;strong&gt;staged files&lt;/strong&gt; and classifies each change as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ALLOW&lt;/strong&gt; — safe changes that proceed normally
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NEEDS_APPROVAL&lt;/strong&gt; — changes requiring explicit human review
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DENY&lt;/strong&gt; — changes that are blocked entirely
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core design principle is &lt;strong&gt;determinism&lt;/strong&gt;: no probabilistic judgments, no hallucinations—just predictable enforcement that can be trusted in local workflows, pre-commit hooks, and CI pipelines.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;Anton Clew operates on &lt;strong&gt;staged Git changes&lt;/strong&gt;. Developers define repository policies using a simple YAML file that describes which file paths are allowed, require approval, or are explicitly denied.&lt;/p&gt;

&lt;p&gt;When the CLI is run, Anton Clew inspects the staged files and deterministically classifies each change as &lt;strong&gt;ALLOW&lt;/strong&gt;, &lt;strong&gt;NEEDS_APPROVAL&lt;/strong&gt;, or &lt;strong&gt;DENY&lt;/strong&gt;. If any denied or unapproved changes are present, the check fails—preventing risky commits before they land.&lt;/p&gt;

&lt;p&gt;This approach enables early, enforceable checks on staged changes, making it practical to integrate Anton Clew into local development workflows, pre-commit hooks, and CI pipelines—especially when AI tools or automation are generating code at high speed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/earlgreyhot1701D/antonclew" rel="noopener noreferrer"&gt;https://github.com/earlgreyhot1701D/antonclew&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video Overview (NotebookLM):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://youtu.be/VDftFjy8KGI" rel="noopener noreferrer"&gt;https://youtu.be/VDftFjy8KGI&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;For the demo, I created a small Git repository with a policy file and staged changes designed to trigger all three decision paths. Anton Clew evaluates the staged files and produces clear, deterministic outcomes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.agentpolicy.yaml&lt;/code&gt; and &lt;code&gt;README.md&lt;/code&gt; → &lt;strong&gt;ALLOW&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;secrets/private.key&lt;/code&gt; → &lt;strong&gt;DENY&lt;/strong&gt; (matches deny rules for sensitive files)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/example.ts&lt;/code&gt; → &lt;strong&gt;NEEDS_APPROVAL&lt;/strong&gt; (matches approval-required paths) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This demonstrates Anton Clew’s intended use case: enforcing guardrails on what is &lt;em&gt;about to be committed&lt;/em&gt;, especially when AI tools or automation are generating code at high speed.&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%2F0lt8ononhyqbwdsxu8na.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%2F0lt8ononhyqbwdsxu8na.png" alt=" " width="800" height="517"&gt;&lt;/a&gt;&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%2Fz1kpib6clss0acxwj60w.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%2Fz1kpib6clss0acxwj60w.png" alt=" " width="800" height="198"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot CLI acted as a practical, terminal-native assistant throughout development—particularly during testing, debugging, and build stabilization.&lt;/p&gt;

&lt;p&gt;I used Copilot CLI to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Diagnose failing tests and edge-case mismatches
&lt;/li&gt;
&lt;li&gt;Fix TypeScript build errors (missing dependencies, implicit &lt;code&gt;any&lt;/code&gt; issues)
&lt;/li&gt;
&lt;li&gt;Resolve Node.js ESM import and runtime issues
&lt;/li&gt;
&lt;li&gt;Apply focused, minimal patches while keeping changes reviewable
&lt;/li&gt;
&lt;li&gt;Iterate faster without leaving the terminal or breaking flow
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Copilot CLI accelerated problem-solving without replacing judgment. Every change was validated with tests and builds, keeping the project deterministic and reliable.&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%2Fowvphrvz577o9dhfvqzt.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%2Fowvphrvz577o9dhfvqzt.png" alt=" " width="800" height="573"&gt;&lt;/a&gt;&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%2Fx9cgh2g5bes6r0b9oumv.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%2Fx9cgh2g5bes6r0b9oumv.png" alt=" " width="800" height="580"&gt;&lt;/a&gt;&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%2Fqmw1ijaor6s6ok3md1f8.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%2Fqmw1ijaor6s6ok3md1f8.png" alt=" " width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;p&gt;This project was built with assistance from &lt;strong&gt;GitHub Copilot CLI&lt;/strong&gt; and &lt;strong&gt;ChatGPT&lt;/strong&gt;, used as development accelerators for debugging, iteration, and problem-solving during the build process.&lt;/p&gt;

&lt;p&gt;Final design decisions, validation, testing, and responsibility for the codebase are entirely human.&lt;/p&gt;

&lt;p&gt;The name &lt;strong&gt;Anton Clew&lt;/strong&gt; is a playful reference to &lt;em&gt;Son of Anton&lt;/em&gt;—a nod to Silicon Valley–style systems thinking, legacy, and the idea of leaving a clear “thread” (a clew) to follow through complex technical problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI assisted. Human approved.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
All mistakes are mine.&lt;/p&gt;




&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/la-shara-cordero-a0017a11/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/la-shara-cordero-a0017a11/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>Clew Quest: Intelligent Project Discovery with Algolia Agent Studio</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Mon, 19 Jan 2026 22:31:36 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/clew-quest-intelligent-project-discovery-with-algolia-agent-studio-3jon</link>
      <guid>https://dev.to/earlgreyhot1701d/clew-quest-intelligent-project-discovery-with-algolia-agent-studio-3jon</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/algolia"&gt;Algolia Agent Studio Challenge&lt;/a&gt;: Consumer-Facing Non-Conversational Experiences&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Clew Quest: Intelligent Project Discovery with Algolia Agent Studio
&lt;/h1&gt;

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

&lt;p&gt;Clew Quest is an open source project discovery tool that helps developers find GitHub repositories matched to their skill level and learning goals.&lt;/p&gt;

&lt;p&gt;Instead of searching "machine learning" and getting overwhelmed by 50,000 results with no context, users answer 4 simple questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What do you want to learn?&lt;/li&gt;
&lt;li&gt;What languages or skills do you care about?&lt;/li&gt;
&lt;li&gt;What's your skill level? (Beginner, Intermediate, Advanced)&lt;/li&gt;
&lt;li&gt;Search&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They get back GitHub projects with specific explanations for why each one matches their criteria.&lt;/p&gt;

&lt;p&gt;They get back GitHub projects with explanations for why each one matches their criteria.&lt;/p&gt;

&lt;p&gt;The tool indexes 2,800 GitHub repositories and uses smart keyword matching combined with AI reasoning to understand developer intent. Each result includes: project name, star count, language, difficulty level, and an explanation of why it matches the user's goals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data&lt;/strong&gt;: Github Repos dataset by &lt;a href="https://www.kaggle.com/datasets/donbarbos/github-repos" rel="noopener noreferrer"&gt;Don Barbos&lt;/a&gt; on Kaggle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2F0y41h8h5cfqo1ys0s2sv.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%2F0y41h8h5cfqo1ys0s2sv.png" alt=" "&gt;&lt;/a&gt;&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%2F9a321dsflyrv6zw3xnd4.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%2F9a321dsflyrv6zw3xnd4.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/earlgreyhot1701D/clew-quest" rel="noopener noreferrer"&gt;https://github.com/earlgreyhot1701D/clew-quest&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Video:&lt;/strong&gt; &lt;a href="https://youtu.be/sP9eQe3xEA4" rel="noopener noreferrer"&gt;https://youtu.be/sP9eQe3xEA4&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Audio Overview:&lt;/strong&gt; &lt;a href="https://notebooklm.google.com/notebook/0a3b7c43-1446-459f-94d1-868cbaa91f42?artifactId=04209d69-2163-4cfd-9f4c-8da7faeda29a" rel="noopener noreferrer"&gt;https://notebooklm.google.com/notebook/0a3b7c43-1446-459f-94d1-868cbaa91f42?artifactId=04209d69-2163-4cfd-9f4c-8da7faeda29a&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Algolia Agent Studio
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Data Indexed
&lt;/h3&gt;

&lt;p&gt;2,800 GitHub repositories from a public dataset, each with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project name&lt;/li&gt;
&lt;li&gt;Star count &amp;amp; fork count&lt;/li&gt;
&lt;li&gt;Primary language&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;Difficulty level (Beginner, Intermediate, Advanced—classified via Gemini)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The data pipeline: CSV → Gemini Batch API for difficulty classification → Algolia index.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retrieval Strategy
&lt;/h3&gt;

&lt;p&gt;Algolia's Search API handles the retrieval layer by combining:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keyword search&lt;/strong&gt; - Matches explicit terms ("Python", "React", "machine learning")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart ranking&lt;/strong&gt; - Results ordered by relevance + community signal (star count)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filtering&lt;/strong&gt; - Applies difficulty level and ecosystem filters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When a user says "I want to learn Python machine learning," the search understands this as: find projects related to both Python AND machine learning, ranked by community adoption, filtered by selected difficulty level.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prompt Engineering
&lt;/h3&gt;

&lt;p&gt;The system prompt for Gemini (via Agent Studio) focuses on generating specific, actionable reasoning:&lt;/p&gt;

&lt;p&gt;For each project result, Gemini generates an explanation that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Names the project&lt;/li&gt;
&lt;li&gt;Connects it to the user's specific intent and skill level&lt;/li&gt;
&lt;li&gt;Includes one concrete signal (star count, community size, or use case)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example outputs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"scikit-learn is ideal—top Python ML library (46K stars) with beginner tutorials everywhere"&lt;/li&gt;
&lt;li&gt;"TensorFlow is the industry standard (182K stars) so you learn skills used by 90% of ML teams"&lt;/li&gt;
&lt;li&gt;"Rust is perfect for systems programming—memory safety built-in, growing community"&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Agent Studio Integration
&lt;/h3&gt;

&lt;p&gt;Agent Studio orchestrates intelligent recommendations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Receives user query from the React form&lt;/li&gt;
&lt;li&gt;Sends to Algolia Agent Studio with the system prompt&lt;/li&gt;
&lt;li&gt;Agent Studio coordinates:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemini&lt;/strong&gt; analyzes the user's intent and skill level&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Algolia Search&lt;/strong&gt; queries the github_projects index based on that analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini&lt;/strong&gt; generates specific reasoning for each recommended result&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Returns ranked results with explanations&lt;/li&gt;
&lt;li&gt;Frontend displays project cards with reasoning, star count, language, difficulty level, and feedback buttons&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The integration is seamless: one endpoint, one orchestration layer, no custom backend code needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fallback &amp;amp; Reliability
&lt;/h3&gt;

&lt;p&gt;If Agent Studio recommendations aren't available, the system gracefully falls back to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Broad keyword search using extracted terms + ecosystem filters&lt;/li&gt;
&lt;li&gt;Smart heuristic reasoning based on project signals (stars, language match, difficulty level)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This ensures users always get results, even if the Agent experiences issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Fast Retrieval Matters
&lt;/h2&gt;

&lt;p&gt;Developer experience depends on speed and relevance working together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed&lt;/strong&gt;: Algolia's infrastructure means search results appear quickly. Slow retrieval kills discovery—users don't wait for results when searching for projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relevance&lt;/strong&gt;: Semantic search means results actually match what users are looking for. If a user searches "learning machine learning," they get beginner-friendly projects, not just repositories with "ML" mentioned in passing.&lt;/p&gt;

&lt;p&gt;Together, these create a workflow where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users get answers immediately&lt;/li&gt;
&lt;li&gt;Answers are contextually relevant to their specific goal and skill level&lt;/li&gt;
&lt;li&gt;The AI reasoning is grounded in actual project data (no hallucinations)&lt;/li&gt;
&lt;li&gt;Users trust the recommendations because they make sense&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without fast retrieval, the agent reasoning would be slow and frustrating. Without semantic search, users would see irrelevant results despite Gemini's reasoning being correct. Algolia enables both speed AND relevance at the same time.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/earlgreyhot1701D/clew-quest" rel="noopener noreferrer"&gt;https://github.com/earlgreyhot1701D/clew-quest&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Portfolio:&lt;/strong&gt; &lt;a href="https://beyond-the-docket-489960083310.us-west1.run.app/" rel="noopener noreferrer"&gt;https://beyond-the-docket-489960083310.us-west1.run.app/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/la-shara-cordero-a0017a11/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/la-shara-cordero-a0017a11/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>algoliachallenge</category>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>From Jury Services to AI Builder in 6 Months</title>
      <dc:creator>L. Cordero</dc:creator>
      <pubDate>Mon, 05 Jan 2026 06:02:32 +0000</pubDate>
      <link>https://dev.to/earlgreyhot1701d/from-jury-services-to-ai-builder-in-6-months-d2l</link>
      <guid>https://dev.to/earlgreyhot1701d/from-jury-services-to-ai-builder-in-6-months-d2l</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;I'm a Judicial Services Manager at Santa Barbara Superior Court. Six months ago, I started building AI projects. I've shipped seven, won two hackathons, and learned that the fastest way to learn is to build things that solve actual problems.&lt;/p&gt;

&lt;p&gt;The first one started from frustration. People called constantly with jury eligibility questions. "Am I eligible?" "What does this code section mean?" "Can I defer?" I'd look up the same answers in California legal code and send emails. Same questions, hundreds of times.&lt;/p&gt;

&lt;p&gt;So I built a chatbot. AWS Bedrock, Claude AI, fed it the legal code as context so it could answer accurately and cite sources. Took a weekend. The court staff use it now.&lt;/p&gt;

&lt;p&gt;That project proved something: I could build useful things. From there, each project solved something I saw.&lt;/p&gt;

&lt;p&gt;This portfolio documents six months of that.&lt;/p&gt;




&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://beyond-the-docket-489960083310.us-west1.run.app/"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;




&lt;p&gt;Everything is live and interactive. Click through the projects, expand the side quests, try the case study generator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The 4 Main Projects&lt;/strong&gt; (timeline view):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Jury Eligibility Chatbot&lt;/strong&gt; (July) - RAG-powered, uses court-verified legal code, production-ready&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF Text Extractor&lt;/strong&gt; (August) - Cal Poly DxHub project. I was selected 1 of 100 from 1,300 applicants. Our team placed 2nd out of 14.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Janus-Clew&lt;/strong&gt; (December) - Won AWS Vibe Hackathon. Built a growth tracker that measures technical complexity progression.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Athena-Clew&lt;/strong&gt; (January) - Gemini 3 Hackathon entry. Autonomous debugging tool using Deep Thinking models.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Plus 10 Side Projects&lt;/strong&gt;: Court innovation tools, hackathon submissions, creative builds. Collapsible in the portfolio so it doesn't overwhelm the narrative.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React 19 + TypeScript (frontend)&lt;/li&gt;
&lt;li&gt;Node.js + Express (backend)&lt;/li&gt;
&lt;li&gt;Gemini 2.0 Flash API (case study generation)&lt;/li&gt;
&lt;li&gt;GitHub API (live project metadata)&lt;/li&gt;
&lt;li&gt;Docker + Google Cloud Run (deployment)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Feature I Built For Myself: Dual-Mode Case Study Generator
&lt;/h3&gt;

&lt;p&gt;When you finish a project, you need to explain it in completely different ways depending on your audience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For a job application&lt;/strong&gt;, you write:&lt;br&gt;
"Led development of PDF extraction engine using Python and PyPDF2. Achieved 95% accuracy on academic document extraction. Selected as 1 of 100 fellows from 1,300 applicants. Delivered 2nd place finish on high-performing team."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For a personal blog&lt;/strong&gt;, the same project becomes:&lt;br&gt;
"My teammate Cai and I had 36 hours and an insane goal. We stayed up until 1am debugging a .env file that made no sense. But Friday morning it worked. Our team placed 2nd. Here's what we learned."&lt;/p&gt;

&lt;p&gt;Same project. Completely different narratives. I was writing both versions and it was tedious.&lt;/p&gt;

&lt;p&gt;So I built a tool: input your project details once, then generate either mode instantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blog Post Mode&lt;/strong&gt; produces a personal narrative (your thinking, decisions, learnings). Good for LinkedIn or your blog.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Professional Mode&lt;/strong&gt; produces a professional case study (problem → solution → technical approach → results). Good for resumes and applications.&lt;/p&gt;

&lt;p&gt;It's a prototype showing how AI can solve the context-switching problem developers face when marketing their work. Powered by Gemini 2.0 Flash because it's fast (under 2 seconds) and produces markdown I can actually use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Design Decisions
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why Gemini 2.0 Flash?&lt;/strong&gt; Speed matters for interactive UX. Quality output means I'm not editing markdown for 20 minutes after generation. The free tier covers a portfolio demo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why GitHub API integration?&lt;/strong&gt; Live data (stars, language, forks) instead of static snapshots. Makes the portfolio feel current, not frozen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Cloud Run?&lt;/strong&gt; Meets the challenge requirement, free tier works great, and the embed feature makes it trivial to show working code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this design language?&lt;/strong&gt; Editorial style (not corporate) with intentional color psychology. Tech blue for foundation, innovation purple for sophistication, achievement gold for wins, energy cyan for interactivity. Every choice serves a purpose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How fast?&lt;/strong&gt; Built in ~12 hours using Antigravity (Google's AI development environment with a Chrome extension for real-time browser testing). The extension was the force multiplier—caught bugs instantly instead of the typical "let me check if this works" debugging cycle.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The case study generator&lt;/strong&gt; — I built it because I needed it. It solves a real problem (context-switching between audiences when marketing your work). It actually generates usable output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The GitHub integration&lt;/strong&gt; — Project cards show live data. Not static info I typed in. Real stats that update.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The design system&lt;/strong&gt; — Editorial, intentional, purposeful. The colors aren't random. The layout has hierarchy. The animations have reasons. Nothing decorative.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The timeline narrative&lt;/strong&gt; — Six months of progression. Not a flat list of accomplishments. You can see the arc: first project → hackathon selection → hackathon win → new challenge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's shipped&lt;/strong&gt; — Not a concept or demo. Live on Cloud Run, fully functional, judges can actually use the case study generator.&lt;/p&gt;




&lt;h2&gt;
  
  
  Stack &amp;amp; Links
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Built with&lt;/strong&gt;: React 19, TypeScript, Gemini 2.0 Flash, Google Cloud Run, Antigravity&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository&lt;/strong&gt;: &lt;a href="https://github.com/earlgreyhot1701D/beyondthedocket" rel="noopener noreferrer"&gt;github.com/earlgreyhot1701D/beyondthedocket&lt;/a&gt; (MIT License)&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;La Shara Cordero&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Judicial Services Manager | AI Builder&lt;br&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/la-shara-cordero-a0017a11/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://github.com/earlgreyhot1701D" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://theforumfiles.substack.com/" rel="noopener noreferrer"&gt;Blog&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; #devchallenge #googleaichallenge #portfolio #gemini #dev&lt;/p&gt;




</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
