blog: Building a Company #2 — derez-company plugin, 70 leads, and the workflow change that fixed everything

This commit is contained in:
Oliver
2026-07-10 06:43:16 -03:00
parent d84af0b069
commit 7c9aa7464a
3 changed files with 160 additions and 1 deletions
+149
View File
@@ -0,0 +1,149 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://derez.ai/blog/posts/building-a-company-plugin.html" />
<title>Building a Company #2 — I Built a Hermes Plugin That Runs My Business (And Then Let Hermes Finish It) | derez.ai Blog</title>
<meta name="description" content="I created a Hermes plugin that integrates all the skills my company needs — CRM, dashboard, sales, marketing — into one repo. First 70 leads imported and visible on the dashboard. What I learned about building Hermes plugins the hard way." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://derez.ai/blog/posts/building-a-company-plugin.html" />
<meta property="og:title" content="Building a Company #2 — I Built a Hermes Plugin That Runs My Business" />
<meta property="og:description" content="I created a Hermes plugin that integrates all the skills my company needs — CRM, dashboard, sales, marketing — into one repo. First 70 leads imported and visible on the dashboard. What I learned about building Hermes plugins the hard way." />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Building a Company #2 — I Built a Hermes Plugin That Runs My Business" />
<script defer data-domain="derez.ai" src="https://plausible.odoo4projects.com/js/script.file-downloads.outbound-links.tagged-events.js"></script>
<script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700&display=swap" rel="stylesheet" />
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #08080c; color: #e8e8f0; font-family: 'Inter', sans-serif; line-height: 1.7; padding: 40px 20px; }
.container { max-width: 720px; margin: 0 auto; }
a { color: #00f5ff; text-decoration: none; }
a:hover { text-decoration: underline; }
.back { margin-bottom: 32px; display: inline-block; font-size: 0.9rem; color: #888; }
.back:hover { color: #00f5ff; }
.series-link { display: inline-block; font-size: 0.82rem; color: #888; margin-bottom: 8px; }
.series-link:hover { color: #00f5ff; }
h1 { font-size: 1.9rem; font-weight: 700; line-height: 1.3; margin-bottom: 12px; }
.meta { font-size: 0.85rem; color: #888; margin-bottom: 40px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.area-tag { display: inline-block; background: #00ff88; color: #000; font-size: 0.75rem; font-weight: 700; padding: 2px 10px; border-radius: 20px; text-transform: uppercase; letter-spacing: 0.5px; }
.chip-tag { display: inline-block; background: rgba(0,245,255,0.1); color: #00f5ff; border: 1px solid rgba(0,245,255,0.3); font-size: 0.75rem; font-weight: 600; padding: 2px 10px; border-radius: 20px; text-transform: uppercase; letter-spacing: 0.5px; }
h2 { font-size: 1.3rem; font-weight: 600; margin: 36px 0 12px; color: #f0f0ff; }
h3 { font-size: 1.1rem; font-weight: 600; margin: 24px 0 8px; color: #e0e0f0; }
p { margin-bottom: 16px; color: #c8c8d8; }
ul, ol { margin: 0 0 16px 24px; color: #c8c8d8; }
li { margin-bottom: 6px; }
code { background: #0e0e14; padding: 2px 6px; border-radius: 4px; font-size: 0.9em; color: #00f5ff; }
pre { background: #0e0e14; border: 1px solid #1a1a24; border-radius: 12px; padding: 16px 20px; overflow-x: auto; margin: 16px 0; font-size: 0.85rem; color: #c8c8d8; }
strong { color: #f0f0ff; }
.pro-tip { background: rgba(0,245,255,0.06); border-left: 3px solid #00f5ff; border-radius: 8px; padding: 16px 20px; margin: 20px 0; font-size: 0.92rem; color: #d0d0e0; }
.pro-tip strong { color: #00f5ff; }
.lesson-box { background: rgba(255,107,107,0.06); border-left: 3px solid #ff6b6b; border-radius: 8px; padding: 16px 20px; margin: 20px 0; font-size: 0.92rem; color: #d0d0e0; }
.lesson-box strong { color: #ff6b6b; }
@media (max-width: 600px) { body { padding: 24px 16px; } h1 { font-size: 1.5rem; } }
</style>
</head>
<body>
<div class="container">
<a class="series-link" href="https://derez.ai/#blog">&larr; Back to Blog</a><br>
<span style="font-size:0.8rem;color:#666;">Building a Company &mdash; Part 2</span>
<h1>I Built a Hermes Plugin That Runs My Business<br>(And Then Let Hermes Finish It)</h1>
<div class="meta">
<span>July 8, 2026</span>
<span class="area-tag">story</span>
<span class="chip-tag">Hermes</span>
</div>
<p>
<a href="https://derez.ai/blog/posts/building-a-company-intro.html">&larr; Read Part 1 first</a>
</p>
<p>In the first post I said we were structuring everything as a reusable distribution. This post is about the step I took to actually build it.</p>
<p>I created a Hermes plugin called <strong>derez-company</strong>. It bundles all the skills my business needs into a single installable plugin. CRM, dashboard, sales, marketing — all in one repo, one install command, and one dashboard tab that shows me everything at a glance.</p>
<p>The repo is here: <a href="https://github.com/AquaMCU/derez-company">github.com/AquaMCU/derez-company</a></p>
<h2>What's in the plugin</h2>
<p>The plugin has two live skills so far:</p>
<ul>
<li><strong>derez-crm</strong> — A complete CRM data skill that uses plain Markdown files as the database. Every lead is a Markdown file with YAML frontmatter. No database, no API, no lock-in. Humans can read and edit it. Agents can read and edit it. Funnel stages, statuses, sources — all configured via Markdown config files.</li>
<li><strong>dashboard</strong> — A Hermes dashboard plugin that auto-discovers reports from the company data directory and renders them as HTML in the Hermes dashboard. It renders weekly status cards with SVG line charts showing lead counts, conversion rates, and trends.</li>
</ul>
<p>Sales and marketing skills are in progress. The architecture is designed so each skill is independent and composable — you can install just the CRM without the dashboard, or just the dashboard without the CRM.</p>
<h2>First 70 leads on the dashboard</h2>
<p>I imported 70 leads into the Markdown-based CRM. Each one is a single <code>.md</code> file with structured YAML frontmatter. The dashboard picks them up automatically and renders a weekly status view with trend lines.</p>
<p>No SQL. No API calls. No database migrations. Just files in a folder that both I and my agent can read and write.</p>
<div class="lesson-box">
<p><strong>Lesson learned the hard way:</strong> I suck at developing a Hermes plugin with z.dev and then importing it into my Hermes. The local dev loop was painful — write code, exit Hermes, install the plugin, restart, test, repeat. Every iteration took minutes. Mistakes meant digging through logs. It felt like I was fighting the tool instead of building with it.</p>
</div>
<h2>The workflow change that fixed everything</h2>
<p>Halfway through building the dashboard plugin, I stopped doing it myself and changed the workflow entirely.</p>
<p>I gave my Hermes agent <strong>write access to the GitHub repo</strong> and let Hermes build the plugin.</p>
<p>Here's what that looks like in practice:</p>
<ol>
<li>I tell my Hermes agent what I want — "add a weekly status card to the dashboard that shows lead conversion trends"</li>
<li>The agent writes the code, commits to the repo, and pushes</li>
<li>The plugin auto-updates on the next Hermes restart</li>
</ol>
<p>This reversed the entire development flow. Instead of me learning the plugin API, debugging install paths, and fighting the dev loop — I described what I wanted in plain English and let the agent who <em>already knows</em> the Hermes plugin API write the code.</p>
<p>The agent doesn't get blocked by z.dev documentation gaps. It doesn't need to restart and check. It writes, commits, pushes — and I just pull the result.</p>
<div class="pro-tip">
<p><strong>The insight:</strong> The fastest way to build a Hermes plugin is to not build it yourself. Give your agent the repo keys and describe what you want. It knows the API better than you do.</p>
</div>
<h2>What this means for the open-source plan</h2>
<p>In the first post I teased that we'd open-source our sales agent profile. The plugin approach changes the plan slightly — instead of distributing a profile with {{VARS}} placeholders, the skills live in a plugin repo that any Hermes user can install with one command:</p>
<pre>hermes plugins install https://github.com/AquaMCU/derez-company.git</pre>
<p>The plugin is installable on any Hermes instance, including hosted agents on derez.ai. Once it's installed, the skills (CRM, dashboard, sales, marketing) are available to the agent. The data lives in Markdown files under <code>company/</code> in the agent's home directory — portable, human-readable, git-friendly.</p>
<h2>What's next</h2>
<p>The CRM skill is live with 70 leads. The dashboard shows weekly progress with trend charts. The next step is wiring it all together:</p>
<ul>
<li><strong>The sales agent</strong> — use the CRM data with the email skill to start making first contacts. Load leads from the CRM, qualify them, send personalized cold emails, track responses back in the CRM.</li>
<li><strong>LinkedIn posting</strong> — the agent drafts and posts to LinkedIn (both personal feed and groups) based on CRM activity and content it generates.</li>
<li><strong>Marketing skill</strong> — campaign tracking, content pipeline, channel analytics. All Markdown-based, all composable.</li>
</ul>
<p>The CRM with 70 leads is the foundation. Everything else builds on top of it.</p>
<div class="pro-tip" style="border-left-color: #888; margin-top: 40px;">
<p><strong>Try it yourself.</strong> Install the <a href="https://github.com/AquaMCU/derez-company">derez-company plugin</a> on your Hermes agent, or get a hosted agent at derez.ai and search for it in the skill library. The CRM and dashboard work out of the box.</p>
<p style="margin-top: 8px;">
<a href="https://github.com/AquaMCU/derez-company">View on GitHub &rarr;</a> &nbsp;|&nbsp;
<a href="https://derez.ai/#pricing">Get a Hermes agent &rarr;</a>
</p>
</div>
<p style="margin-top: 48px; font-size: 0.85rem; color: #666;">
<a href="https://derez.ai">derez.ai</a> &mdash;
<a href="https://derez.ai/#blog">Blog</a> &mdash;
<a href="https://derez.ai/blog/posts/building-a-company-plugin.html">Permalink</a>
</p>
</div>
</body>
</html>