<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>HeroWebDev&apos;s Blog</title><description>Blog with news, tutorials, resources and other interesting content related to web development, design and technology.</description><link>https://heroweb.dev</link><language>en</language><managingEditor>contact@heroweb.dev (Hector Romero)</managingEditor><webMaster>contact@heroweb.dev (Hector Romero)</webMaster><item><title>How to Buy an AI Sales System Without Getting Burned</title><link>https://heroweb.dev/en/en/how-to-buy-ai-sales-system</link><guid isPermaLink="true">https://heroweb.dev/en/en/how-to-buy-ai-sales-system</guid><description>Demos are the vendor&apos;s best case; what you&apos;re buying is the Tuesday-afternoon case. This final post is the checklist for seeing it before you pay: five contract-level questions, the red flags, a fair pilot design — and, since I sell these systems, the scenario where the honest answer is don&apos;t buy from me.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><category>AI for Sales</category><enclosure url="https://images.unsplash.com/photo-1450101499163-c8848c66ca85?q=80&amp;w=2069&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>Speed to Lead: The Sales Metric AI Actually Fixes</title><link>https://heroweb.dev/en/en/speed-to-lead-ai</link><guid isPermaLink="true">https://heroweb.dev/en/en/speed-to-lead-ai</guid><description>You can&apos;t verify most AI sales claims without buying first. Speed to lead is the exception: how long a new lead waits for a real answer is a number, and you can measure yours this week with a stopwatch. I build these systems for a living, and this is the one part of my pitch you don&apos;t have to take on trust.</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><category>AI for Sales</category><enclosure url="https://images.unsplash.com/photo-1501139083538-0139583c060f?q=80&amp;w=2069&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>What an AI Receptionist Actually Does All Day (and Where It Breaks)</title><link>https://heroweb.dev/en/en/what-an-ai-receptionist-actually-does</link><guid isPermaLink="true">https://heroweb.dev/en/en/what-an-ai-receptionist-actually-does</guid><description>Vendors sell the term &apos;AI receptionist&apos; on warmth. Here&apos;s the shift log instead: what one actually handles in a day for a clinic or a contractor, what a good handoff to a human looks like, and the four places where it breaks. I build these systems, so the failure modes come first.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><category>AI for Sales</category><enclosure url="https://images.unsplash.com/photo-1497366754035-f200968a6e72?q=80&amp;w=2069&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>Will AI Replace Salespeople? An Honest Answer From Someone Who Sells AI</title><link>https://heroweb.dev/en/en/will-ai-replace-salespeople</link><guid isPermaLink="true">https://heroweb.dev/en/en/will-ai-replace-salespeople</guid><description>I build AI sales systems for a living, so read my answer with the suspicion it deserves: no, AI will not replace salespeople. It&apos;s already replacing something else — the part of sales that was never selling. Knowing which part is which is worth real money if you run a business.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><category>AI for Sales</category><enclosure url="https://images.unsplash.com/photo-1521791136064-7986c2920216?q=80&amp;w=2069&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>Context Engineering Is Just Plumbing: What Actually Feeds My Coding Agent</title><link>https://heroweb.dev/en/en/context-engineering-is-just-plumbing</link><guid isPermaLink="true">https://heroweb.dev/en/en/context-engineering-is-just-plumbing</guid><description>Everyone is selling context engineering as the new discipline. On my machine it&apos;s plumbing: four boring pipes that feed the agent, one drain that keeps junk out, and a valve that decides which pipe answers which question.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1517180102446-f3ece451e9d8?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>How I Cut My Homepage Image Weight 88% (Astro + Sharp + WebP)</title><link>https://heroweb.dev/en/en/cut-homepage-image-weight-astro-sharp-webp</link><guid isPermaLink="true">https://heroweb.dev/en/en/cut-homepage-image-weight-astro-sharp-webp</guid><description>A static Astro site with 15KB of JavaScript was shipping 3.4MB of images. Here are the three failure modes that got past the image pipeline — the fallback-always-ships rule, the screenshot the optimizer never touched, and the boilerplate nobody referenced — and the 15 lines of Sharp that fixed all of it.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1516035069371-29a1b244cc32?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>git branch --no-merged Lies to You After a Squash Merge</title><link>https://heroweb.dev/en/en/git-no-merged-lies-squash-merged-branches</link><guid isPermaLink="true">https://heroweb.dev/en/en/git-no-merged-lies-squash-merged-branches</guid><description>My cleanup list said eight branches were unmerged. Every single one had already shipped to production. The problem wasn&apos;t the branches. It was the question I was asking git.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1499750310107-5fef28a66643?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>Security Headers for a Static Site: The 10 Lines I Added to vercel.json</title><link>https://heroweb.dev/en/en/security-headers-static-site</link><guid isPermaLink="true">https://heroweb.dev/en/en/security-headers-static-site</guid><description>No server does not mean nothing to configure. These are the four response headers I added to my static site, what each one blocks, and the one I left out on purpose.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>Running Two AI Coding Agents on One Repo: Git Worktrees Are the Fix</title><link>https://heroweb.dev/en/en/two-ai-agents-one-repo-git-worktrees</link><guid isPermaLink="true">https://heroweb.dev/en/en/two-ai-agents-one-repo-git-worktrees</guid><description>Today a second AI agent started up in a directory where another session was mid-work on a dirty branch. It was one git switch away from committing onto the wrong branch. Here&apos;s the boring, native fix.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1555066931-4365d14bab8c?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>How I Run My AI Coding Agent Overnight — and What Actually Ships</title><link>https://heroweb.dev/en/en/ai-coding-agent-overnight</link><guid isPermaLink="true">https://heroweb.dev/en/en/ai-coding-agent-overnight</guid><description>The honest version of overnight AI development: the agent opens pull requests, a human merges. What ships by morning is reviewable drafts and done-when-green fixes — never an autonomous push to prod. Here&apos;s the setup that makes it real leverage instead of a liability.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1504639725590-34d0984388bd?q=80&amp;w=2074&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>Astro 5 to 6 Migration: The 3 Breaking Changes That Bit Me</title><link>https://heroweb.dev/en/en/astro-5-to-6-migration-breaking-changes</link><guid isPermaLink="true">https://heroweb.dev/en/en/astro-5-to-6-migration-breaking-changes</guid><description>The Astro 5 to 6 migration looked like a ten-minute security bump. Instead I hit three build failures back to back — every one of them in vendored theme code I never wrote. Here are the exact errors, the fixes, and why a themed site breaks where your own code doesn&apos;t.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1517180102446-f3ece451e9d8?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>The Astro SEO Setup Most Portfolios Skip</title><link>https://heroweb.dev/en/en/astro-seo-setup-most-portfolios-skip</link><guid isPermaLink="true">https://heroweb.dev/en/en/astro-seo-setup-most-portfolios-skip</guid><description>A title tag and a meta description aren&apos;t an SEO setup — they&apos;re the part every template already gives you. The plumbing that compounds (JSON-LD, canonicals that don&apos;t 404, hreflang that doesn&apos;t backfire, a clean sitemap) is what portfolios skip. Here&apos;s my full Astro SEO setup, real code included.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1555066931-4365d14bab8c?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>How I Use Claude Code + a Second Brain to Keep Context Between Sessions</title><link>https://heroweb.dev/en/en/claude-code-gbrain-context</link><guid isPermaLink="true">https://heroweb.dev/en/en/claude-code-gbrain-context</guid><description>Every new session with an AI coding assistant starts blind — it can&apos;t remember why you rejected that approach three weeks ago. The fix isn&apos;t a bigger context window, it&apos;s persistent memory across sessions, layered. Here&apos;s the pattern: native memory for the live thread, a file index for durable facts, and a semantic second brain for everything older.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1499750310107-5fef28a66643?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>How I Validate an Astro Blog Post Before It Goes Live</title><link>https://heroweb.dev/en/en/validate-astro-blog-post-before-publishing</link><guid isPermaLink="true">https://heroweb.dev/en/en/validate-astro-blog-post-before-publishing</guid><description>Publishing a static Astro post is one merge away from live — which is exactly why the silent bugs are dangerous. A wrong lang, a canonical that 404s, a leaked cross-language link: none of them show up in your editor, only in the built HTML. Here&apos;s the checklist I run on dist/ before every post, scripts included.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1550439062-609e1531270e?q=80&amp;w=2070&amp;auto=format&amp;fit=crop" type="image/jpeg"/></item><item><title>Your Google Analytics Is Silently Dead: The Partytown Trap in Astro Themes</title><link>https://heroweb.dev/en/en/google-analytics-partytown-astro</link><guid isPermaLink="true">https://heroweb.dev/en/en/google-analytics-partytown-astro</guid><description>My Google Analytics was installed, verified, and collecting absolutely nothing — with zero errors to warn me. The culprit was a Partytown default in my Astro theme that emits GA as a script the browser never runs. Here&apos;s the trap, and the one-line fix.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1551288049-bebda4e38f71?q=80&amp;w=2070&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" type="image/jpeg"/></item><item><title>AI for Educators: Turn the Technology Into Your Best Teaching Assistant</title><link>https://heroweb.dev/en/en/ai-for-educators</link><guid isPermaLink="true">https://heroweb.dev/en/en/ai-for-educators</guid><description>Stop treating AI as a threat and start using it as your teaching copilot. A beginner-friendly guide to the strategies and tools that fold AI into your day-to-day work as an educator.</description><pubDate>Sat, 07 Jun 2025 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1524178232363-1fb2b075b655?q=80&amp;w=2070&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" type="image/jpeg"/></item><item><title>The Best Ways to Learn to Code: A Practical Guide</title><link>https://heroweb.dev/en/en/best-ways-to-learn-to-code</link><guid isPermaLink="true">https://heroweb.dev/en/en/best-ways-to-learn-to-code</guid><description>From online courses and bootcamps to YouTube channels and open-source code on GitHub: the main ways to learn programming, what each one is good for, and where you need to be careful.</description><pubDate>Fri, 06 Jun 2025 00:00:00 GMT</pubDate><author>contact@heroweb.dev (Hector Romero)</author><enclosure url="https://images.unsplash.com/photo-1461749280684-dccba630e2f6?q=80&amp;w=2069&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" type="image/jpeg"/></item></channel></rss>