<?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: tobub</title>
    <description>The latest articles on DEV Community by tobub (@tobub).</description>
    <link>https://dev.to/tobub</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%2F4070032%2F866c976b-b34c-4128-8b7d-a7efb5015a57.png</url>
      <title>DEV Community: tobub</title>
      <link>https://dev.to/tobub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tobub"/>
    <language>en</language>
    <item>
      <title>Building Local Browser Automation Workflows with Tobub</title>
      <dc:creator>tobub</dc:creator>
      <pubDate>Mon, 12 Oct 2026 05:37:36 +0000</pubDate>
      <link>https://dev.to/tobub/building-local-browser-automation-workflows-with-tobub-5ci</link>
      <guid>https://dev.to/tobub/building-local-browser-automation-workflows-with-tobub-5ci</guid>
      <description>&lt;p&gt;Search Reddit discussions by keyword, follow new posts in a subreddit, review YouTube comments, browse TikTok feeds, check GitHub Trending, or organize Amazon product details. These are examples of repeatable workflows you can build with Tobub Skills.&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%2Fpo0uinj8fbp4msadfnzk.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%2Fpo0uinj8fbp4msadfnzk.png" alt=" " width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tobub is a permanently free, local browser automation harness. It runs workflows defined as JSON Skills, combining browser actions, page rules, and Runtime services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example workflows on global platforms
&lt;/h2&gt;

&lt;p&gt;The current Skill examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reddit:&lt;/strong&gt; search posts by keyword, browse subreddit posts, review comments, monitor new posts, and run a repeatable browsing flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; view Trending repositories by day, week, or month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon:&lt;/strong&gt; search for products and organize product details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;YouTube:&lt;/strong&gt; review video comments and run a browsing flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TikTok:&lt;/strong&gt; automate a repeatable feed browsing flow.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How a Skill operates the browser
&lt;/h2&gt;

&lt;p&gt;A Skill takes parameters, performs browser actions, then uses extraction rules to structure the page results. Here is a simplified Reddit keyword search:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tobub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tobub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;adapter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;bootstrap&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tobub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;atoms&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fill&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;faceplate-search-input[name="q"]&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;inputMode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;direct&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tobub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;atoms&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;press&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Enter&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tobub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;adapter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extract&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;post_search_list&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;atoms&lt;/code&gt; provides browser operations such as navigation, input, clicking, and scrolling. &lt;code&gt;adapter.extract&lt;/code&gt; applies page rules to return structured fields. Skill parameters—such as a search term or result limit—can be configured in the UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Saving structured results
&lt;/h2&gt;

&lt;p&gt;A workflow can save its results locally for later review or processing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tobub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;saveContent&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;platform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;reddit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;contentType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;post&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;externalId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;record&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;postTitle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;authorName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;postUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;likes&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;comments&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;time&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Runtime also provides account sessions, local data storage, HTTP and WebSocket interfaces, and scheduled tasks. For event-driven workflows, Skills can observe page or network events and process them in bounded batches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration and reuse
&lt;/h2&gt;

&lt;p&gt;Headless mode, User-Agent, locale, timezone, viewport, and proxy settings are available through the UI. Skills can also be shared or invoked through an API, so a workflow can be reused without rewriting its browser steps.&lt;/p&gt;

&lt;p&gt;Tobub is a permanently free, local browser automation harness. The project and Skill examples are available at &lt;a href="https://github.com/pow505/tobub" rel="noopener noreferrer"&gt;github.com/pow505/tobub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>bigdata</category>
      <category>programming</category>
    </item>
    <item>
      <title>tobub: A Free, Local Alternative to Apify</title>
      <dc:creator>tobub</dc:creator>
      <pubDate>Sun, 09 Aug 2026 15:59:28 +0000</pubDate>
      <link>https://dev.to/tobub/tobub-a-free-local-alternative-to-apify-3cjf</link>
      <guid>https://dev.to/tobub/tobub-a-free-local-alternative-to-apify-3cjf</guid>
      <description>&lt;p&gt;Your data workflows don’t always need to run in the cloud.&lt;br&gt;
tobub is a free, local-first automation and data collection platform for developers, researchers, and teams who need crawling, monitoring, analysis, and AI-powered workflows.&lt;br&gt;
With tobub, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crawl websites and platform data&lt;/li&gt;
&lt;li&gt;Monitor content and changes on a schedule&lt;/li&gt;
&lt;li&gt;Store, manage, and analyze collected data&lt;/li&gt;
&lt;li&gt;Use AI for extraction, classification, summarization, and decision-making&lt;/li&gt;
&lt;li&gt;Build extensible workflows with Skills&lt;/li&gt;
&lt;li&gt;Manage accounts, proxies, browser sessions, and execution history
tobub supports multiple ways to run and integrate:&lt;/li&gt;
&lt;li&gt;Desktop app: simple and visual task management&lt;/li&gt;
&lt;li&gt;Docker: ideal for servers and long-running workloads&lt;/li&gt;
&lt;li&gt;OpenAPI: connect tobub to your existing systems&lt;/li&gt;
&lt;li&gt;SDK: build custom crawlers and automation workflows with code
Unlike cloud-only platforms, tobub focuses on local execution and data ownership. Your data, login sessions, execution records, and runtime environment can stay under your control—making it a great fit for personal projects, internal tools, and experimental workflows.
tobub is still in an experimental stage, and both its features and experience are actively evolving. Try it out, open an Issue, report a problem, or share what you’d like to build with it.
If you’re looking for a free, flexible, self-hosted alternative to Apify, give tobub a try.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;github:&lt;a href="https://github.com/pow505/tobub" rel="noopener noreferrer"&gt;https://github.com/pow505/tobub&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%2Fw9w77gcdsv6sevnhwzil.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%2Fw9w77gcdsv6sevnhwzil.png" alt=" " width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>webdev</category>
      <category>apify</category>
    </item>
  </channel>
</rss>
