<?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: CaPaCaptain</title>
    <description>The latest articles on DEV Community by CaPaCaptain (@capacaptain).</description>
    <link>https://dev.to/capacaptain</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%2F3995136%2F4dece02c-ecdc-4f69-9a62-d4232fbf999f.jpg</url>
      <title>DEV Community: CaPaCaptain</title>
      <link>https://dev.to/capacaptain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/capacaptain"/>
    <language>en</language>
    <item>
      <title>I built an AI browser extension in a month with an AI coding assistant. The code was the easy part.</title>
      <dc:creator>CaPaCaptain</dc:creator>
      <pubDate>Thu, 08 Oct 2026 08:42:42 +0000</pubDate>
      <link>https://dev.to/capacaptain/i-built-an-ai-browser-extension-in-a-month-with-an-ai-coding-assistant-the-code-was-the-easy-part-18hn</link>
      <guid>https://dev.to/capacaptain/i-built-an-ai-browser-extension-in-a-month-with-an-ai-coding-assistant-the-code-was-the-easy-part-18hn</guid>
      <description>&lt;p&gt;I watch a lot of long content: hour-long lectures, 40-page PDFs, long articles in languages I read slowly. For months my workflow was: copy, switch tab, paste into a chat, ask, switch back. Dozens of times a day. Every switch broke my focus.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;SideDog&lt;/strong&gt;, an AI assistant that lives in the browser's side panel and helps you understand the page you're on. It summarizes web pages, PDFs and videos, lets you ask follow-up questions, translates whole pages, and lets you screenshot a chart and ask about it. Video summaries come with timestamps you can click to jump to that moment.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8kmoivxwg2njuiempnv.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8kmoivxwg2njuiempnv.jpg" alt="SideDog: summarize web pages, PDFs and videos in the side panel" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built it alone, pairing with an AI coding assistant, in about a month. This post isn't a tutorial. It's about everything &lt;em&gt;around&lt;/em&gt; the code, which turned out to take most of the time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The build: a month, ~80 small PRs
&lt;/h2&gt;

&lt;p&gt;Roughly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Week 1:&lt;/strong&gt; wrote a plan, then cut it down to the smallest loop that works: side panel, read the page, chat, sign-in, a daily free quota, an admin dashboard. Everything else went to a "later" list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 2:&lt;/strong&gt; first working version, shared as a zip with a few friends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 3:&lt;/strong&gt; images and screenshots, PDFs, full-page translation, video summaries from captions, one-click actions that change with the page type, 10 UI languages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 4:&lt;/strong&gt; legal pages, store assets, a promo video, SEO, payment research, analytics.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every change was one task → one branch → one PR → merge. Around 80 of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  What worked when pairing with an AI coding assistant
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;You own the scope.&lt;/strong&gt; The assistant will happily add features. Deciding what &lt;em&gt;not&lt;/em&gt; to build is still your job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every change needs proof.&lt;/strong&gt; I asked for tests plus a run in a real browser, with screenshots. "It should work" didn't count.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Let it push back.&lt;/strong&gt; Several times it flagged a wrong assumption before writing any code: a reference project didn't actually have the feature I thought it had, or a payment provider didn't support the payment method I wanted. That saved days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write the rules down.&lt;/strong&gt; "API keys never reach the client" lives in the project rules and is checked on every build. I don't rely on remembering it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The hard parts weren't code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Store submission is its own project
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The privacy form is detailed.&lt;/strong&gt; You explain every permission, every category of data you collect, and whether you run remote code. Vague answers get rejected. Optional host permissions, requested only when needed, made review smoother.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer accounts have publishing limits.&lt;/strong&gt; I hit the cap and had to unpublish an old item first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EU trader disclosure.&lt;/strong&gt; If you plan to charge, you'll likely declare as a trader, and your contact details become public on the listing. Decide early what details you'll use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your title is your pitch.&lt;/strong&gt; "SideDog" alone told people nothing. "SideDog: AI Summary for Web, PDF &amp;amp; YouTube" did much better.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reviewers really sign up.&lt;/strong&gt; Accounts named "Test Account" and "ms test" appeared in my dashboard during review. Make sure a reviewer can finish sign-in, and write clear test notes. Edge asks for them on every submission.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Half my early users couldn't open the store
&lt;/h3&gt;

&lt;p&gt;My first real users came from China, where the Chrome Web Store isn't reachable without a VPN. People got interested, clicked "Add to Chrome", and hit a dead page.&lt;/p&gt;

&lt;p&gt;What fixed it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A zip download with step-by-step "load unpacked" instructions. It works, but a lot of people give up partway.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publishing on Microsoft Edge Add-ons too.&lt;/strong&gt; It's reachable there, installs in one click and updates automatically.&lt;/li&gt;
&lt;li&gt;Both buttons on the homepage.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lesson: &lt;strong&gt;the store your users can actually reach matters more than the biggest store.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Payments for a solo developer
&lt;/h3&gt;

&lt;p&gt;I compared several merchant-of-record providers. Low setup effort, higher fees, and in some cases payouts only to a personal account, which raises tax and accounting questions you should ask an accountant early. Some providers also have extra review requirements for AI products: model disclosure, published pricing, refund policy, support contact.&lt;/p&gt;

&lt;p&gt;My decision: &lt;strong&gt;launch as a free beta first.&lt;/strong&gt; With single-digit users, conversion rates mean nothing. Prove that people use it and come back, then turn on billing.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. You need your own numbers from day one
&lt;/h3&gt;

&lt;p&gt;Store dashboards lag, and the numbers mix in reviewers and your own test installs. I added, on my own backend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source tracking:&lt;/strong&gt; every channel gets its own &lt;code&gt;?ref=&lt;/code&gt; link, recorded at sign-up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A sign-up funnel:&lt;/strong&gt; saw the sign-in page → clicked → succeeded, failed or cancelled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An uninstall survey:&lt;/strong&gt; one question, six reasons.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;In-extension feedback.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One surprise: my store stats said 71% of installs were from the US, but 86% of installs used Chinese as the language. Those were VPN users. &lt;strong&gt;Language was more trustworthy than region.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;About 20 store installs in the first month. Several were reviewers or me.&lt;/li&gt;
&lt;li&gt;Real external users: single digits.&lt;/li&gt;
&lt;li&gt;The first real user came from a Chinese video site where I posted a demo. That first video got 37 views; the thumbnail didn't show the pain point.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not impressive. But it told me who the users are (students and people learning from long videos), which channel works, and that installation friction was the biggest leak.&lt;/p&gt;

&lt;h2&gt;
  
  
  How SideDog is different
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frvey40ld7926ogfgfar3.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frvey40ld7926ogfgfar3.png" alt="One-click page summary in the side panel" width="800" height="500"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7xosjb1sgpowsql13euv.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7xosjb1sgpowsql13euv.png" alt="Follow-up question answered with a table, grounded in the page" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are excellent all-in-one AI extensions. SideDog deliberately does less:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One job:&lt;/strong&gt; understand the page in front of you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video summaries with clickable timestamps&lt;/strong&gt;, on YouTube and other video sites.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-click actions that change with the page:&lt;/strong&gt; video outline on videos, "paper at a glance" on papers, pros &amp;amp; cons on product pages, a job breakdown on job posts, a reply draft on emails. No prompt writing needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reads the page only when you ask&lt;/strong&gt;, and keeps your chat history in your browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free during the beta&lt;/strong&gt;, no card required.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Takeaways for anyone building a small AI tool
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ship the smallest loop that works, then add features.&lt;/li&gt;
&lt;li&gt;Write down what you're &lt;em&gt;not&lt;/em&gt; building.&lt;/li&gt;
&lt;li&gt;Distribution beats features: stores, compliance, reachability, channels.&lt;/li&gt;
&lt;li&gt;Instrument from day one. You can't improve what you can't see.&lt;/li&gt;
&lt;li&gt;Small, honest numbers are still signal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you read a lot of long content, I'd love for you to try it: &lt;strong&gt;&lt;a href="https://sidedog.7m7s.tech/?ref=devto" rel="noopener noreferrer"&gt;sidedog.7m7s.tech&lt;/a&gt;&lt;/strong&gt; (Chrome and Edge).&lt;/p&gt;

&lt;p&gt;I'm also launching on Product Hunt on November 7. If you want a reminder, you can follow it here: &lt;strong&gt;&lt;a href="https://www.producthunt.com/products/sidedog" rel="noopener noreferrer"&gt;SideDog on Product Hunt&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What's the "too long to read or watch" moment in your day? I'll use the answers to decide what to build next.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chrome</category>
      <category>productivity</category>
      <category>indiehackers</category>
    </item>
  </channel>
</rss>
