<?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: Om Rajguru</title>
    <description>The latest articles on DEV Community by Om Rajguru (@omrajguru05).</description>
    <link>https://dev.to/omrajguru05</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%2F3837795%2F59707ae3-6606-42d1-9c1c-d06d827aa9a9.png</url>
      <title>DEV Community: Om Rajguru</title>
      <link>https://dev.to/omrajguru05</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/omrajguru05"/>
    <language>en</language>
    <item>
      <title>WebDNA: A structured interface for AI agents</title>
      <dc:creator>Om Rajguru</dc:creator>
      <pubDate>Mon, 06 Apr 2026 13:01:37 +0000</pubDate>
      <link>https://dev.to/omrajguru05/webdna-a-structured-interface-for-ai-agents-2k37</link>
      <guid>https://dev.to/omrajguru05/webdna-a-structured-interface-for-ai-agents-2k37</guid>
      <description>&lt;p&gt;When I watch an AI agent or a coding tool interact with a website today, the process feels inefficient. These models are essentially forced to squint at raw HTML and minified JavaScript bundles while attempting to reverse-engineer the original intent of the developer. They miss the relationship between components, they lose the nuances of brand colors, and they struggle to understand the shape of underlying APIs. I built WebDNA to solve this by creating a bridge between the way humans write code and the way machines need to consume it.&lt;/p&gt;

&lt;p&gt;The core idea is a manifest that lives at a predictable location on your server. By integrating directly into the Next.js build process, WebDNA automatically scans your project and generates a blueprint of your site. It looks at your route tree, extracts design tokens from your Tailwind configuration, and maps out your component hierarchy. This happens without requiring any manual documentation from the developer. It turns the implicit knowledge stored in your codebase into an explicit, structured briefing for any AI that visits your site.&lt;/p&gt;

&lt;p&gt;This system moves beyond existing solutions like sitemaps or basic text files. While those tools offer a list of URLs or high-level summaries, they do not explain the design system or the specific data requirements of a dynamic route. WebDNA provides that missing context. It allows a developer to define which parts of a site are private and which components serve specific roles, ensuring that when an AI tool accesses the site, it does so with a full understanding of the constraints and the brand guidelines.&lt;/p&gt;

&lt;p&gt;Security and privacy are foundational to this standard. The manifest is a static JSON file that cannot execute code and is read-only by design. I have included features like element-level exclusion, where a simple attribute can hide specific sections of a page from the AI manifest. This ensures that developers remain in total control of what information is shared. It is about providing consent-based, structured access rather than leaving AI tools to scrape whatever they can find.&lt;/p&gt;

&lt;p&gt;My goal with WebDNA is to make the web more accessible to the next generation of software tools. By making the architecture of a site discoverable, we reduce the friction and errors that occur when AI tries to navigate or modify web projects. It is a simple addition to a configuration file that provides a significant upgrade in how machines perceive and interact with the work we build. Information about the package and the specification is available on GitHub and through the official documentation.&lt;/p&gt;

&lt;p&gt;Official documentation: &lt;a href="https://webdna.omraj.guru" rel="noopener noreferrer"&gt;webdna.omraj.guru&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>devops</category>
    </item>
    <item>
      <title>I built a Claude Skill to automate brand-consistent social graphics (HTML to PNG) The Backstory</title>
      <dc:creator>Om Rajguru</dc:creator>
      <pubDate>Sat, 04 Apr 2026 17:45:15 +0000</pubDate>
      <link>https://dev.to/omrajguru05/i-built-a-claude-skill-to-automate-brand-consistent-social-graphics-html-to-pngthe-backstory-2ld7</link>
      <guid>https://dev.to/omrajguru05/i-built-a-claude-skill-to-automate-brand-consistent-social-graphics-html-to-pngthe-backstory-2ld7</guid>
      <description>&lt;h1&gt;
  
  
  Automating Brand-Consistent Social Graphics with a Claude Skill
&lt;/h1&gt;

&lt;p&gt;I’ve been using a custom Gemini setup to produce Instagram content for &lt;strong&gt;IBBE&lt;/strong&gt;, a company I work with. While the workflow worked, it was fragile. I found myself repeating brand constraints, hex codes, and styling rules in every new session.&lt;/p&gt;

&lt;p&gt;I wanted a way to formalize this process, something reusable, brand-aware, and easily installable. So, I built a &lt;strong&gt;Claude Skill&lt;/strong&gt; that handles the heavy lifting of design consistency through a structured memory system.&lt;/p&gt;

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

&lt;p&gt;The skill transforms Claude from a general assistant into a specialized brand designer through three main phases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;The Onboarding Interview&lt;/strong&gt;: The first time you request a design, Claude conducts a brand interview. It collects your color palette, typography preferences, design personality, and specific brand restrictions.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Persistent Memory&lt;/strong&gt;: Once the profile is generated, you save it to memory. Every future session picks up exactly where you left off, ensuring your brand identity isn't "hallucinated" or lost between chats.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;HTML-to-Image Pipeline&lt;/strong&gt;: Claude generates a self-contained HTML file. This isn't just a mock-up; it includes a staging environment and an export button that uses &lt;code&gt;html2canvas&lt;/code&gt; to download a high-resolution PNG directly from your browser.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Aesthetic
&lt;/h2&gt;

&lt;p&gt;The design language is opinionated and "dev-friendly." Every asset generated follows a consistent visual logic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structure&lt;/strong&gt;: Inset cards with thick borders and hard offset shadows (Neo-brutalism style).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Textures&lt;/strong&gt;: Dot grid backgrounds and rotated pill tags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamics&lt;/strong&gt;: Carousel slides automatically alternate rotation directions, and visual metaphors are selected based on the slide's specific content.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it Generates
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Instagram Posts &amp;amp; Carousel Slides&lt;/li&gt;
&lt;li&gt;OG Images for blog posts&lt;/li&gt;
&lt;li&gt;Featured Images&lt;/li&gt;
&lt;li&gt;General Visual Assets&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why HTML?
&lt;/h2&gt;

&lt;p&gt;Generating graphics as HTML instead of raw images via DALL-E or Midjourney gives us &lt;strong&gt;pixel-perfect control over text&lt;/strong&gt;. No more AI "gibberish" in your graphics. Since it's code, you can tweak the hex codes or layout in seconds before exporting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check out the repo here:
&lt;/h3&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/omrajguru05/brand-social-design" rel="noopener noreferrer"&gt;https://github.com/omrajguru05/brand-social-design&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear how you guys are using LLMs to automate your design workflows. Any suggestions for the memory system? Let's discuss in the comments!&lt;/p&gt;

</description>
      <category>automation</category>
      <category>claude</category>
      <category>design</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Is Your Project Ready to Launch? I Built a Skill to Find Out</title>
      <dc:creator>Om Rajguru</dc:creator>
      <pubDate>Wed, 01 Apr 2026 11:50:30 +0000</pubDate>
      <link>https://dev.to/omrajguru05/is-your-project-ready-to-launch-i-built-a-skill-to-find-out-2p2m</link>
      <guid>https://dev.to/omrajguru05/is-your-project-ready-to-launch-i-built-a-skill-to-find-out-2p2m</guid>
      <description>&lt;p&gt;Shipping fast is great. Shipping ready is better. Here's how I stopped guessing and started knowing.&lt;/p&gt;

&lt;p&gt;I used to think I had a solid launch checklist. It lived in a doc somewhere; it had checkboxes, and I told myself I would actually use it. Spoiler: I did not always use it. Features would go missing, a monitoring alert, or a README that said "TODO," or a rollback plan that existed only in my head. Every time, the feeling was the same. That quiet dread of realizing something got missed after it was already live.&lt;/p&gt;

&lt;p&gt;So I built something to fix that. "Launch Readiness" is a skill I created to make pre-launch checks feel less like homework and more like a conversation. Instead of digging through a doc I inevitably forgot to update, I can just ask. It walks through the things that actually matter before a release: documentation, monitoring, rollback strategy, stakeholder sign-off, and more. It does not let me skip ahead. It asks, it listens, and it flags what is missing.&lt;/p&gt;

&lt;p&gt;What I love most about it is that it changed how my team thinks about launches. We stopped treating readiness as a formality and started treating it as a real conversation. The skill is not a gatekeeper. It is more like a thoughtful colleague who asks the right questions at the right time and genuinely wants the launch to go well.&lt;/p&gt;

&lt;p&gt;The best part is that you can try it yourself right now. Setup is straightforward, and within a few minutes you will have a launch process that actually holds up under pressure.&lt;/p&gt;

&lt;p&gt;Launching something you built is exciting. I want that excitement to last past day one. This is my small contribution to making that happen.&lt;/p&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/omrajguru05" rel="noopener noreferrer"&gt;
        omrajguru05
      &lt;/a&gt; / &lt;a href="https://github.com/omrajguru05/launch-readiness" rel="noopener noreferrer"&gt;
        launch-readiness
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A Claude skill that audits your app before launch and gives you a readiness score, ranked issues, exact fixes, and copy-paste prompts. Install in one command. Updates at omrajguru.com
    &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;App Launch Readiness Skill for Claude&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A Claude skill that audits your web app or SaaS product before launch. Give it your repo, your live URL, or both, and it returns a scored readiness report with every problem ranked by severity, exact fix instructions for each one, and copy-paste Claude prompts so you can resolve issues immediately without writing a single prompt yourself.&lt;/p&gt;
&lt;p&gt;I built this because pre-launch checklists are either too generic to act on or scattered across a dozen blog posts. This skill pulls everything into one structured audit that runs inside Claude, reads your actual code or live URL, and tells you precisely what is broken and how to fix it.&lt;/p&gt;
&lt;p&gt;I update this skill as new patterns, security issues, and launch gotchas emerge. All updates are published at &lt;a href="https://omrajguru.com" rel="nofollow noopener noreferrer"&gt;omrajguru.com&lt;/a&gt;.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;There are three ways to install depending on how you use Claude.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Option A: One-line&lt;/h3&gt;…&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/omrajguru05/launch-readiness" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
    </item>
    <item>
      <title>I built a Formspree alternative because flat pricing is stupid</title>
      <dc:creator>Om Rajguru</dc:creator>
      <pubDate>Sun, 22 Mar 2026 01:20:08 +0000</pubDate>
      <link>https://dev.to/omrajguru05/i-built-a-formspree-alternative-because-flat-pricing-is-stupid-3iig</link>
      <guid>https://dev.to/omrajguru05/i-built-a-formspree-alternative-because-flat-pricing-is-stupid-3iig</guid>
      <description>&lt;p&gt;&lt;strong&gt;Aldform public beta: aldform.com&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Formspree: $16/month flat. 10 or 10k submissions — same price.&lt;/p&gt;

&lt;p&gt;Aldform: &lt;strong&gt;$1.20 per 1k submissions&lt;/strong&gt; (₹100). 100 free/month.&lt;/p&gt;

&lt;p&gt;Your HTML/CSS. We handle storage, email, API.&lt;/p&gt;

&lt;p&gt;Alpha fixes shipped:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server-side auth only, API keys
&lt;/li&gt;
&lt;li&gt;File uploads to S3 (10MB, images/PDF)&lt;/li&gt;
&lt;li&gt;Polar billing, SES emails, dashboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;aldform.com/release-notes&lt;/p&gt;

&lt;p&gt;Try it &amp;amp; And please let me know!!&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
  </channel>
</rss>
