<?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: Gregory Potemkin</title>
    <description>The latest articles on DEV Community by Gregory Potemkin (@gregory_potemkin_d6b42d5a).</description>
    <link>https://dev.to/gregory_potemkin_d6b42d5a</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%2F3842814%2F287699e6-4d29-4696-ac49-5804c68fd88b.png</url>
      <title>DEV Community: Gregory Potemkin</title>
      <link>https://dev.to/gregory_potemkin_d6b42d5a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gregory_potemkin_d6b42d5a"/>
    <language>en</language>
    <item>
      <title>We audited 49 Show HN launches. 38 had a critical bug on day one.</title>
      <dc:creator>Gregory Potemkin</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:19:31 +0000</pubDate>
      <link>https://dev.to/gregory_potemkin_d6b42d5a/we-audited-49-show-hn-launches-38-had-a-critical-bug-on-day-one-1dk7</link>
      <guid>https://dev.to/gregory_potemkin_d6b42d5a/we-audited-49-show-hn-launches-38-had-a-critical-bug-on-day-one-1dk7</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://prufa.dev/blog/engineering/we-audited-49-show-hn-launches/" rel="noopener noreferrer"&gt;Prufa blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In June 2026 we pointed Prufa's free audit at 50 products that had just launched on Show HN — every launch from the previous 30 days that earned at least 10 points. These are products at their moment of maximum attention: front page, real traffic, founders watching the comments.&lt;/p&gt;

&lt;p&gt;The headline numbers, from the 49 audits that completed (one site couldn't be reached by our runner):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100% of the 49 launches&lt;/strong&gt; had at least one machine-verified finding.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;78% — 38 of 49 — had at least one critical finding.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;40 critical and 61 warning findings&lt;/strong&gt; in total, every one verified by deterministic checks against captured browser evidence.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No site is named in this post. The point isn't to embarrass anyone — it's that these failures are systematic, and if these teams have them on launch day, you probably do too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Methodology, briefly
&lt;/h2&gt;

&lt;p&gt;Each site got the same audit a free Prufa run does: a real browser loads the public pages, captures network traffic, console output, cookies, and response codes, and a fixed suite of deterministic checks grades the evidence. Same input, same verdict. &lt;strong&gt;Every number below is from a code-verified check&lt;/strong&gt; — no LLM opinions are counted anywhere in this data.&lt;/p&gt;

&lt;p&gt;One honest caveat: our export keeps only the top findings per site, so the per-issue counts below are &lt;strong&gt;floors&lt;/strong&gt;, not totals. The real numbers are equal or worse.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually breaks at website launch: the numbers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sites affected (of 49)&lt;/th&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;No analytics events detected&lt;/td&gt;
&lt;td&gt;critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;td&gt;No canonical link on entry page&lt;/td&gt;
&lt;td&gt;info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;Cookies set without the &lt;code&gt;Secure&lt;/code&gt; attribute&lt;/td&gt;
&lt;td&gt;warning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;Broken links&lt;/td&gt;
&lt;td&gt;warning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;No &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; heading on entry page&lt;/td&gt;
&lt;td&gt;info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;No robots.txt&lt;/td&gt;
&lt;td&gt;info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;JavaScript console errors during page load&lt;/td&gt;
&lt;td&gt;warning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Missing meta description&lt;/td&gt;
&lt;td&gt;warning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Images missing alt text&lt;/td&gt;
&lt;td&gt;info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Missing Open Graph tags&lt;/td&gt;
&lt;td&gt;info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Tag container loads, but no analytics events fire&lt;/td&gt;
&lt;td&gt;warning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Canonical URL pointing to a &lt;em&gt;different&lt;/em&gt; host&lt;/td&gt;
&lt;td&gt;critical&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The most common launch bug: analytics that record nothing
&lt;/h2&gt;

&lt;p&gt;The most common critical finding, by a wide margin: &lt;strong&gt;no analytics events detected&lt;/strong&gt;. The page loads, the browser captures every outgoing request — and nothing resembling an analytics event leaves the page.&lt;/p&gt;

&lt;p&gt;Think about what that means on launch day specifically. Front page of Hacker News is, for many of these products, the single largest traffic spike they will ever see. Which referrers converted, which pages people actually read, how many of those visitors signed up — for 38 of these 49 teams, that data simply doesn't exist. Not sampled, not skewed: absent.&lt;/p&gt;

&lt;p&gt;Three more sites had a subtler version: the tag container loads (so a quick "view source" check looks fine), but &lt;strong&gt;no events ever fire&lt;/strong&gt;. That one is nasty precisely because it passes the eyeball test — the only way to catch it is to watch the network traffic, which is what our check does.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rest of the list is the unglamorous stuff
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Broken links (14 sites).&lt;/strong&gt; Nobody clicks every link on their own site — especially footer links, docs links, and that one pricing anchor that moved two redesigns ago. Visitors do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Console errors at page load (10 sites).&lt;/strong&gt; Errors at load time often mean broken features visitors never report — they just leave. These ten sites shipped them to the HN front page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cookies without &lt;code&gt;Secure&lt;/code&gt; (22 sites).&lt;/strong&gt; A one-attribute fix, sitting on nearly half the cohort.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The canonical-to-wrong-host pair (2 sites, critical).&lt;/strong&gt; Two sites shipped a &lt;code&gt;&amp;lt;link rel="canonical"&amp;gt;&lt;/code&gt; pointing at a &lt;em&gt;different domain&lt;/em&gt; — almost certainly a leftover from a template or staging config. That tag tells search engines "index that other site instead of me." On launch week.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we take from this
&lt;/h2&gt;

&lt;p&gt;These aren't careless teams. They got a product to Show HN and earned points doing it. The pattern says something else: &lt;strong&gt;the surface area that needs verifying grows faster than anyone's willingness to click through it&lt;/strong&gt; — especially in the week before a launch, when everything is on fire.&lt;/p&gt;

&lt;p&gt;None of the findings above require judgment to detect. Every one is a deterministic check against evidence a browser can capture: a response code, a network request that did or didn't happen, an attribute on a cookie. Which is exactly why this should be automated — and why &lt;a href="https://prufa.dev/blog/engineering/how-prufa-verifies-a-signup-flow/" rel="noopener noreferrer"&gt;the LLM in our pipeline never grades results&lt;/a&gt;; plain code does.&lt;/p&gt;

&lt;p&gt;We turned this dataset into a &lt;a href="https://prufa.dev/blog/guides/website-qa-checklist-before-launch/" rel="noopener noreferrer"&gt;pre-launch checklist ordered by these failure rates&lt;/a&gt;, if you want the actionable version.&lt;/p&gt;

&lt;p&gt;That's the audit we ran on these 49 sites, and it's free: paste a URL on &lt;a href="https://prufa.dev/" rel="noopener noreferrer"&gt;prufa.dev&lt;/a&gt;, get the same machine-verified findings for your own site in about a minute. Before your launch day, ideally.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
      <category>startup</category>
      <category>qa</category>
    </item>
    <item>
      <title>How I Set Up OpenClaw: A Developer's Guide to Self-Hosted AI Assistant Infrastructure</title>
      <dc:creator>Gregory Potemkin</dc:creator>
      <pubDate>Wed, 25 Mar 2026 08:49:10 +0000</pubDate>
      <link>https://dev.to/gregory_potemkin_d6b42d5a/how-i-set-up-openclaw-a-developers-guide-to-self-hosted-ai-assistant-infrastructure-293i</link>
      <guid>https://dev.to/gregory_potemkin_d6b42d5a/how-i-set-up-openclaw-a-developers-guide-to-self-hosted-ai-assistant-infrastructure-293i</guid>
      <description>&lt;p&gt;I recently set up OpenClaw, the open-source AI assistant framework, and wanted to share my experience for anyone considering self-hosting vs managed options.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is OpenClaw?
&lt;/h2&gt;

&lt;p&gt;OpenClaw is an AI assistant framework that lets you run your own AI assistant with integrations for Telegram, Slack, WhatsApp, and a built-in web chat. Think of it as your own ChatGPT that you control completely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Self-Host?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data privacy&lt;/strong&gt;: Your conversations stay on your infrastructure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost control&lt;/strong&gt;: Use your own API keys, pay only for what you use&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization&lt;/strong&gt;: Full control over models, prompts, and integrations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning&lt;/strong&gt;: Great way to understand AI infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Setup Process
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Install OpenClaw
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;macOS/Linux/WSL2:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://openclaw.ai/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Windows PowerShell:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;iwr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-useb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://openclaw.ai/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Run the Onboarding Wizard
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw onboard &lt;span class="nt"&gt;--install-daemon&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This configures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model authentication (OpenAI, Anthropic, Gemini, etc.)&lt;/li&gt;
&lt;li&gt;Workspace defaults&lt;/li&gt;
&lt;li&gt;Gateway settings&lt;/li&gt;
&lt;li&gt;Optional messaging channels&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Verify Everything Works
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw gateway status
openclaw doctor
openclaw dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The last command opens Control UI at &lt;code&gt;http://127.0.0.1:18789/&lt;/code&gt; where you can send your first message.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Lessons Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use localhost for dashboard&lt;/strong&gt;: Never expose the Control UI to the public internet. Use Tailscale or SSH tunneling if you need remote access.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Run doctor after updates&lt;/strong&gt;: Always run &lt;code&gt;openclaw doctor&lt;/code&gt; after setup and upgrades to catch issues early.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start with built-in chat&lt;/strong&gt;: You don't need Telegram or Slack configured to get started. The Control UI works immediately.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Document your install method&lt;/strong&gt;: Whether you used the script, npm, or source build - keep track of how you installed it for troubleshooting.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  When to Consider Managed Hosting
&lt;/h2&gt;

&lt;p&gt;Self-hosting is great for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers who want full control&lt;/li&gt;
&lt;li&gt;Teams with existing infrastructure&lt;/li&gt;
&lt;li&gt;Privacy-sensitive use cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But if you want zero infrastructure work, there's &lt;a href="https://openclaw-setup.me" rel="noopener noreferrer"&gt;OpenClaw Setup&lt;/a&gt; - managed hosting that handles operations while you keep control of your credentials and config.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://openclaw-setup.me/openclaw-setup/" rel="noopener noreferrer"&gt;Official Setup Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://openclaw-setup.me/install-openclaw/" rel="noopener noreferrer"&gt;Install Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://openclaw-setup.me/openclaw-setup-troubleshooting/" rel="noopener noreferrer"&gt;Troubleshooting Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Have you tried self-hosting AI assistants? What's been your experience?&lt;/p&gt;

</description>
      <category>devops</category>
      <category>ai</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
