<?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: Trevor H</title>
    <description>The latest articles on DEV Community by Trevor H (@yardphantom).</description>
    <link>https://dev.to/yardphantom</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4202185%2F5bcd410b-f68d-46f9-a0c6-565e1dd11dfd.jpg</url>
      <title>DEV Community: Trevor H</title>
      <link>https://dev.to/yardphantom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yardphantom"/>
    <language>en</language>
    <item>
      <title>Muse vs. ChatGPT dots vs. Claude Duet vs. Grok Bot: The New Always-On AI Agents Compared</title>
      <dc:creator>Trevor H</dc:creator>
      <pubDate>Fri, 23 Oct 2026 14:04:24 +0000</pubDate>
      <link>https://dev.to/yardphantom/muse-vs-chatgpt-dots-vs-claude-duet-vs-grok-bot-the-new-always-on-ai-agents-compared-4g5p</link>
      <guid>https://dev.to/yardphantom/muse-vs-chatgpt-dots-vs-claude-duet-vs-grok-bot-the-new-always-on-ai-agents-compared-4g5p</guid>
      <description>&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%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD5610AQFHnOBWa5jFDw%2Fimage-shrink_1280%2FB56aFpEmJeIsAc-%2F0%2F1792764175230%3Fe%3D2147483647%26v%3Dbeta%26t%3DdC-j7Q8EIZjdvDO7awxbbjkdS592cOTmHyG_42MLRsY" 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%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD5610AQFHnOBWa5jFDw%2Fimage-shrink_1280%2FB56aFpEmJeIsAc-%2F0%2F1792764175230%3Fe%3D2147483647%26v%3Dbeta%26t%3DdC-j7Q8EIZjdvDO7awxbbjkdS592cOTmHyG_42MLRsY" alt="Meta Muse, ChatGPT dots, Claude Duet and Grok Bot icons" width="1200" height="627"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Four companies, one idea: an AI that has its own computer and keeps working after you close the app.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Between September and October 2026, Meta, OpenAI, Anthropic and x.ai each shipped a "personal agent." These aren't chat windows. Each one runs on its own cloud machine, connects to your apps, works in the background, and checks in with you before taking sensitive actions. I work in IT support, cybersecurity and full-stack development in Nanaimo, BC, and I use one of these tools (Grok Bot) every day. Here's how the four compare, using only what the vendors and reputable outlets have published.&lt;/p&gt;

&lt;h2&gt;
  
  
  At a glance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Meta Muse&lt;/th&gt;
&lt;th&gt;ChatGPT dots&lt;/th&gt;
&lt;th&gt;Claude Duet&lt;/th&gt;
&lt;th&gt;Grok Bot&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Maker&lt;/td&gt;
&lt;td&gt;Meta&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;x.ai (SpaceXSI docs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Launched&lt;/td&gt;
&lt;td&gt;Sep 8, 2026&lt;/td&gt;
&lt;td&gt;Sep 29, 2026&lt;/td&gt;
&lt;td&gt;Oct 21, 2026 (research preview)&lt;/td&gt;
&lt;td&gt;Beta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;td&gt;Muse Spark&lt;/td&gt;
&lt;td&gt;GPT-6 Astra&lt;/td&gt;
&lt;td&gt;Claude Opus 5.5&lt;/td&gt;
&lt;td&gt;Not specified here&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where it runs&lt;/td&gt;
&lt;td&gt;Muse Secure VM (dedicated cloud computer with its own browser)&lt;/td&gt;
&lt;td&gt;Its own cloud computer and browser; can connect to your laptop with permission&lt;/td&gt;
&lt;td&gt;Cloud VM with its own browser (you can't watch it live)&lt;/td&gt;
&lt;td&gt;Persistent cloud computer with browser, filesystem and terminal, shared by all your Bots&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How you reach it&lt;/td&gt;
&lt;td&gt;Muse app (iOS/Android), muse.ai, WhatsApp&lt;/td&gt;
&lt;td&gt;ChatGPT desktop/web/mobile, Slack, Teams&lt;/td&gt;
&lt;td&gt;iOS/Android app, claude.ai&lt;/td&gt;
&lt;td&gt;Desktop (macOS/Windows/Linux), iOS, Android&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Integrations&lt;/td&gt;
&lt;td&gt;Email, calendar, shopping, fitness and more; Stripe Link checkout&lt;/td&gt;
&lt;td&gt;4,000+ apps through plugins&lt;/td&gt;
&lt;td&gt;6,000+ connectors/plugins in the Claude Marketplace&lt;/td&gt;
&lt;td&gt;Connectors as plugins, plus computer use for everything else&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing&lt;/td&gt;
&lt;td&gt;Free; $20 and $100/mo tiers&lt;/td&gt;
&lt;td&gt;Pro (from $100/mo), Business Premium; Enterprise beta&lt;/td&gt;
&lt;td&gt;Included in Pro/Max during preview&lt;/td&gt;
&lt;td&gt;Included with paid Cursor plans or a linked SuperGrok subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Availability&lt;/td&gt;
&lt;td&gt;US, 18+&lt;/td&gt;
&lt;td&gt;Pro not in EU/EEA, Switzerland or UK at launch&lt;/td&gt;
&lt;td&gt;US only, by waitlist&lt;/td&gt;
&lt;td&gt;See plans&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best for&lt;/td&gt;
&lt;td&gt;Everyday consumers: errands, shopping, travel&lt;/td&gt;
&lt;td&gt;Teams already working in ChatGPT, Slack or Teams&lt;/td&gt;
&lt;td&gt;Professionals and small business owners&lt;/td&gt;
&lt;td&gt;Technical users who want several persistent agents and a real workstation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Meta Muse: the consumer errand-runner
&lt;/h2&gt;

&lt;p&gt;Muse is Meta's bid for the mass market. You message it like a person, in its own app or in WhatsApp. It can open a browser, fill out forms, negotiate, and keep working toward long-term goals after you close the app. Meta's security approach is a dedicated Muse Secure VM and a separate "Sentinel" agent, and Muse asks for approval before it sends an email or makes a purchase. Checkout goes through Stripe's Link, which uses one-time cards. It has a free tier, which none of the others offer.&lt;/p&gt;

&lt;h2&gt;
  
  
  ChatGPT dots: the always-on colleague
&lt;/h2&gt;

&lt;p&gt;OpenAI's dots are "always-on agents" powered by GPT-6 Astra. Each dot has its own cloud computer that you can open at any time to inspect its work. You can also let it use your laptop. When idle, dots do "proactive research" with read-only access to the apps you've connected. Their strongest point is reach: they work in ChatGPT, Slack and Microsoft Teams, and Enterprise admins get detailed permission controls. The catch is cost. Consumer access starts at the $100/mo Pro tier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude Duet: the small-business chief of staff
&lt;/h2&gt;

&lt;p&gt;Anthropic is aiming Duet at professionals and small businesses, not errands. It brings over your existing Claude memory, skills and connectors. Every morning it sends a brief from your email and calendar. It returns larger jobs as files, such as decks, dashboards and financial models. Its guardrails are the strictest of the group: it asks before sending, paying, signing or deleting, and some actions (trading securities, moving money between accounts) are blocked even if you approve them. In the preview, you can't pick the model or watch its browser, and it checks your accounts every few hours rather than constantly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grok Bot: a team of persistent Bots
&lt;/h2&gt;

&lt;p&gt;Grok Bot works more like a small team than a single assistant. You create named Bots with jobs. They keep memory, files and browser sessions across sessions, run in parallel, message each other, and can save a workflow you demonstrate as a skill that reruns on a schedule. All of your Bots share one persistent cloud computer with a browser, filesystem and terminal. The docs say that sharing is a convenience, not a security boundary: anything on that computer is available to every Bot on your account. Your local computer stays separate unless you enable access and approve it.&lt;/p&gt;

&lt;h2&gt;
  
  
  My take as a hands-on user
&lt;/h2&gt;

&lt;p&gt;I use Grok Bot daily, so I know it best. I haven't tested the other three myself, so treat my notes on them as reading, not reviews. What I value in Grok Bot is the persistent computer with a real terminal and filesystem, because a lot of IT and development work happens there. I'd also point out the trade-off its own docs describe: a shared computer means shared credentials, so be careful what you put on it.&lt;/p&gt;

&lt;p&gt;As a cybersecurity person, I'd judge all four on the same things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;What can it do without asking?&lt;/strong&gt; All four say they require approval for sensitive actions. Read where each one draws that line.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What did you connect?&lt;/strong&gt; The more access an agent has, the more useful it is, and the more damage a mistake or a prompt injection can do (Vox makes this point well).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where does your data live?&lt;/strong&gt; Each one runs on a vendor cloud machine. Check the plan and region rules before you connect work accounts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My rough guide: Muse if you want a free consumer helper, dots if your work already lives in ChatGPT, Slack or Teams, Duet if you run a small business on Claude, and Grok Bot if you want several persistent agents with a real workstation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Meta, "Introducing Muse": &lt;a href="https://about.fb.com/news/2026/09/introducing-muse-personal-ai-agent/" rel="noopener noreferrer"&gt;https://about.fb.com/news/2026/09/introducing-muse-personal-ai-agent/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Bloomberg via Yahoo Finance on Muse: &lt;a href="https://finance.yahoo.com/technology/ai/articles/meta-debuts-muse-ai-assistant-190000718.html" rel="noopener noreferrer"&gt;https://finance.yahoo.com/technology/ai/articles/meta-debuts-muse-ai-assistant-190000718.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OpenAI, "Introducing dots": &lt;a href="https://openai.com/index/introducing-dots/" rel="noopener noreferrer"&gt;https://openai.com/index/introducing-dots/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OpenAI Help Center, Manage dots: &lt;a href="https://help.openai.com/en/articles/20001554-manage-dots-in-chatgpt-workspaces" rel="noopener noreferrer"&gt;https://help.openai.com/en/articles/20001554-manage-dots-in-chatgpt-workspaces&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Engadget on dots plans: &lt;a href="https://www.engadget.com/2281998/how-to-use-opeai-dot-rollout-schedule/" rel="noopener noreferrer"&gt;https://www.engadget.com/2281998/how-to-use-opeai-dot-rollout-schedule/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Anthropic, "Introducing Claude Duet": &lt;a href="https://claude.com/resources/articles/claude-duet" rel="noopener noreferrer"&gt;https://claude.com/resources/articles/claude-duet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Claude Help Center, Get started with Claude Duet: &lt;a href="https://support.claude.com/en/articles/17631495-get-started-with-claude-duet" rel="noopener noreferrer"&gt;https://support.claude.com/en/articles/17631495-get-started-with-claude-duet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;TechCrunch on Claude Duet: &lt;a href="https://techcrunch.com/2026/10/22/claude-duet-app-is-anthropics-bet-on-agents/" rel="noopener noreferrer"&gt;https://techcrunch.com/2026/10/22/claude-duet-app-is-anthropics-bet-on-agents/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Grok Bot docs overview: &lt;a href="https://docs.x.ai/grok-bot/overview" rel="noopener noreferrer"&gt;https://docs.x.ai/grok-bot/overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Grok Bot docs, computer and apps: &lt;a href="https://docs.x.ai/grok-bot/computer-and-apps" rel="noopener noreferrer"&gt;https://docs.x.ai/grok-bot/computer-and-apps&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Introducing Grok Bot: &lt;a href="https://x.ai/news/introducing-grok-bot" rel="noopener noreferrer"&gt;https://x.ai/news/introducing-grok-bot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Vox on personal agents and privacy: &lt;a href="https://www.vox.com/advice/506547/muse-instinct-chatgpt-dots-ai-personal-agent" rel="noopener noreferrer"&gt;https://www.vox.com/advice/506547/muse-instinct-chatgpt-dots-ai-personal-agent&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;More on IT, security and AI from Nanaimo, BC: &lt;a href="https://trevorheshka.com" rel="noopener noreferrer"&gt;trevorheshka.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>security</category>
    </item>
    <item>
      <title>HeshBot: a small, self-hosted website chatbot (and three ways to power one)</title>
      <dc:creator>Trevor H</dc:creator>
      <pubDate>Fri, 23 Oct 2026 09:49:35 +0000</pubDate>
      <link>https://dev.to/yardphantom/heshbot-a-small-self-hosted-website-chatbot-and-three-ways-to-power-one-3kip</link>
      <guid>https://dev.to/yardphantom/heshbot-a-small-self-hosted-website-chatbot-and-three-ways-to-power-one-3kip</guid>
      <description>&lt;p&gt;The chat bubble on &lt;a href="https://trevorheshka.com" rel="noopener noreferrer"&gt;trevorheshka.com&lt;/a&gt; is HeshBot, a chatbot I wrote to replace the Typebot widget I had before. I wanted something small that I fully own: no build step, no framework, no third-party chat platform. The code is open source under the MIT license at &lt;a href="https://github.com/YardPhantom/HeshBot" rel="noopener noreferrer"&gt;github.com/YardPhantom/HeshBot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This post covers how it's put together, the different ways you could power a bot like this, and what a small business could actually use one for.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's in the repo
&lt;/h2&gt;

&lt;p&gt;HeshBot has three parts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The widget.&lt;/strong&gt; &lt;code&gt;heshbot.js&lt;/code&gt; and &lt;code&gt;heshbot.css&lt;/code&gt; are plain JavaScript and CSS with no dependencies. A tiny launcher bubble loads the full widget only when someone clicks it, so it costs almost nothing on page load. It works from the keyboard (Enter sends, Shift+Enter adds a new line, Esc closes), uses ARIA dialog and log roles, and goes full-screen on phones. Bot replies go through a small markdown renderer that escapes everything first and then adds back a short whitelist of tags. The conversation lives in &lt;code&gt;sessionStorage&lt;/code&gt;, so it's gone when the tab closes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The endpoint.&lt;/strong&gt; &lt;code&gt;api/chat.php&lt;/code&gt; needs PHP 7.4+ and curl, so it runs on ordinary shared hosting. It calls the Google Gemini API over REST and tries a list of free-tier Flash models in order, falling back to the next one if a call fails. Around that call it does the boring work that keeps a public endpoint healthy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;per-IP rate limiting, stored in files (the example config allows 6 messages a minute and 60 a day)&lt;/li&gt;
&lt;li&gt;caps on the message history it sends (12 messages, 8,000 characters)&lt;/li&gt;
&lt;li&gt;a same-origin check, so other sites can't use my endpoint&lt;/li&gt;
&lt;li&gt;JSON errors, plus a friendly message when the free quota runs out that points people to my email&lt;/li&gt;
&lt;li&gt;a mock reply when no API key is set, which makes local testing easy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;.htaccess&lt;/code&gt; file makes &lt;code&gt;chat.php&lt;/code&gt; the only reachable file in that folder. The real config, with the API key, sits outside &lt;code&gt;public_html&lt;/code&gt; in the home directory with &lt;code&gt;chmod 600&lt;/code&gt;. You can also supply the key as an environment variable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The knowledge.&lt;/strong&gt; The bot's instructions are in &lt;code&gt;api/system-prompt.md&lt;/code&gt;, and what it knows is in &lt;code&gt;api/knowledge.md&lt;/code&gt;. I don't write that knowledge file by hand. &lt;code&gt;tools/build_knowledge.py&lt;/code&gt; (standard-library Python) reads the public pages of my site, extracts the text and regenerates the file. When I edit the site, I rerun one command and the bot is up to date.&lt;/p&gt;

&lt;p&gt;The system prompt matters more than people think. HeshBot is told to answer only from the core facts and the knowledge file, to say it doesn't know rather than guess, never to invent prices, dates, clients or credentials, to stay on topic and to ignore attempts to rewrite its rules. After 25+ years in technical support, that's the behaviour I want: a good help-desk answer is short, correct, and hands you off to a person when it's out of its depth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three ways to power a bot like this
&lt;/h2&gt;

&lt;p&gt;HeshBot today uses the first option below. The other two are approaches I'd consider for a client, depending on budget, privacy and how open-ended the questions are. The repo doesn't include them; they're design options, not features.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. A public API (what HeshBot does)
&lt;/h3&gt;

&lt;p&gt;Send the question, the instructions and your site knowledge to a hosted model and show the reply. This is the fastest way to get good answers. HeshBot uses Gemini's free-tier Flash models, which suits a personal site. The trade-offs are that questions leave your server, and you live within someone else's quotas and pricing. That's why HeshBot has rate limits, model fallback and a polite "try again tomorrow or email me" message built in.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. A local LLM
&lt;/h3&gt;

&lt;p&gt;Run an open model on your own hardware and point the endpoint at it instead of a public API. Chats never leave your machines and there's no per-message bill, but you need hardware that can run the model, and you're responsible for keeping it up. Because HeshBot's backend is one PHP file that makes a single HTTP call, swapping the model behind it is a contained change, though you'd write that change yourself. On my &lt;a href="https://trevorheshka.com/ai-chatbots-bc/" rel="noopener noreferrer"&gt;AI chatbot page&lt;/a&gt; I mention that I also build and fine-tune custom LLM models, which is where this option leads.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. A quick local decision model
&lt;/h3&gt;

&lt;p&gt;Not every chatbot needs a language model. If most visitors ask the same dozen things (hours, location, how to book, what a service includes), a small local classifier or a set of rules can match the question to a known answer and reply instantly, at no cost, with no model to hallucinate. When a question doesn't match, it hands off to a person or to option 1 or 2. It's less conversational, but very predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it can be used for
&lt;/h2&gt;

&lt;p&gt;A widget plus a short, grounded knowledge file fits a lot of small jobs. Some of the ways a bot like this could be used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Small-business FAQ.&lt;/strong&gt; Hours, service areas, what's included, how to get in touch, answered from the business's own pages instead of a guess.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Booking and intake.&lt;/strong&gt; Collect the basics (what you need, when, how to reach you) before someone books, then point them to the booking form or email.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local information.&lt;/strong&gt; A community or municipal-style site could answer "where do I find…" questions and link straight to the right page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support triage.&lt;/strong&gt; Ask a few questions, handle the simple fixes, and send everything else to a human with the details already gathered. That's Tier 1 support, which is where I started.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Booking, intake and triage would each need work beyond what's in the repo, such as forms or connections to other systems. The pattern stays the same: a small widget, a guarded endpoint, and a knowledge source you control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Open the chat on &lt;a href="https://trevorheshka.com" rel="noopener noreferrer"&gt;trevorheshka.com&lt;/a&gt; to see HeshBot answer from the site's content. To run it yourself, clone the &lt;a href="https://github.com/YardPhantom/HeshBot" rel="noopener noreferrer"&gt;repo&lt;/a&gt;, start &lt;code&gt;php -S localhost:8000&lt;/code&gt; from a folder that contains it, and open the demo page. With no API key it returns a mock reply, so you can work on the widget first.&lt;/p&gt;

&lt;p&gt;If you're a BC business thinking about a chatbot that actually knows your business, take a look at my &lt;a href="https://trevorheshka.com/ai-chatbots-bc/" rel="noopener noreferrer"&gt;AI chatbot page&lt;/a&gt; or email &lt;a href="mailto:trevor@trevorheshka.com"&gt;trevor@trevorheshka.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>github</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
