<?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>Forem: Smard</title>
    <description>The latest articles on Forem by Smard (@smardprotocol).</description>
    <link>https://forem.com/smardprotocol</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%2F3894490%2F1c47b6e6-e13c-4bda-93c2-b7ca66fb5855.png</url>
      <title>Forem: Smard</title>
      <link>https://forem.com/smardprotocol</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/smardprotocol"/>
    <language>en</language>
    <item>
      <title>I'm not a developer. So I wrote a communication protocol spec.</title>
      <dc:creator>Smard</dc:creator>
      <pubDate>Thu, 23 Apr 2026 14:49:39 +0000</pubDate>
      <link>https://forem.com/smardprotocol/im-not-a-developer-so-i-wrote-a-communication-protocol-spec-14mo</link>
      <guid>https://forem.com/smardprotocol/im-not-a-developer-so-i-wrote-a-communication-protocol-spec-14mo</guid>
      <description>&lt;p&gt;I've been frustrated with the same problem for years.&lt;/p&gt;

&lt;p&gt;Every important conversation ends up lost.&lt;/p&gt;

&lt;p&gt;The bathroom renovation budget (or organize a birthday) buried in 400 WhatsApp messages. The email thread where nobody remembers &lt;br&gt;
the final decision. The group chat that mixed &lt;br&gt;
the project files with the birthday memes.&lt;/p&gt;

&lt;p&gt;I'm not a developer. I'm the product person who got &lt;br&gt;
frustrated enough to do something about it.&lt;/p&gt;

&lt;p&gt;So I wrote a protocol spec.&lt;/p&gt;


&lt;h2&gt;
  
  
  The problem with email and chat
&lt;/h2&gt;

&lt;p&gt;Email was designed for one-directional, asynchronous &lt;br&gt;
communication. It's structured but slow, and completely &lt;br&gt;
broken for collaboration.&lt;/p&gt;

&lt;p&gt;Chat fixed the speed problem but destroyed context. &lt;br&gt;
WhatsApp is fast. It's also a black hole where &lt;br&gt;
everything important disappears.&lt;/p&gt;

&lt;p&gt;Neither solves the real problem: &lt;strong&gt;there's no place &lt;br&gt;
for a conversation that deserves context.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not a document. Not a thread. Not a channel.&lt;br&gt;
A room — convened for something specific, &lt;br&gt;
with a name, with everyone involved, &lt;br&gt;
with everything related to that topic in one place.&lt;/p&gt;

&lt;p&gt;That's what I tried to spec out.&lt;/p&gt;


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

&lt;p&gt;SMARD is an open protocol for structured communication &lt;br&gt;
capsules. Apache 2.0.&lt;/p&gt;

&lt;p&gt;The core unit is the &lt;strong&gt;capsule&lt;/strong&gt; — a self-contained &lt;br&gt;
JSON object that groups everything related to &lt;br&gt;
a specific topic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"smard_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a7f3k9m2p8q1w5x6y0z3b4c8"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bathroom renovation — Marcos quote"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"body"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Photos attached. Need this done before May 15th."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"inbox"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"open"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@alice"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"participants"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"@alice"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@marcos"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@marcos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Got it. Sending the quote this afternoon."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"sparks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@alice"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"👍"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"attachments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"image"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bathroom_current.jpg"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tasks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Confirm final price"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"done"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s a complete Smard. Everything about that&lt;br&gt;
renovation conversation lives in one place.&lt;br&gt;
Forever. Searchable. Never lost.&lt;/p&gt;

&lt;p&gt;The decisions that matter&lt;br&gt;
No deletion. Archive only.&lt;br&gt;
What was said stays said. SMARD is for&lt;br&gt;
communication that must endure.&lt;br&gt;
No roles. No admins.&lt;br&gt;
If you received a Smard, you participate&lt;br&gt;
exactly as the person who created it.&lt;br&gt;
Hierarchy is not a protocol’s responsibility.&lt;br&gt;
Title is mandatory.&lt;br&gt;
If you don’t write one, the client suggests it&lt;br&gt;
from your content. No context-free communication.&lt;br&gt;
Ever.&lt;br&gt;
No AI in the core.&lt;br&gt;
The protocol will never depend on any AI company’s&lt;br&gt;
pricing decisions. But the JSON structure is&lt;br&gt;
natively readable by any LLM without&lt;br&gt;
additional instructions.&lt;br&gt;
That last point is intentional architecture,&lt;br&gt;
not a limitation.&lt;/p&gt;

&lt;p&gt;Four capsule types&lt;br&gt;
Not everything is a conversation.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;inbox&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Communication between participants on a topic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;note&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Private — yours alone. A Smard you write to yourself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scheduled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Any Smard with a date and time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wallet&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Documents of value: invoices, tickets, contracts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Same format. Four contexts. One protocol.&lt;/p&gt;

&lt;p&gt;Built for today. Designed for what’s next.&lt;br&gt;
Here’s something worth saying clearly:&lt;br&gt;
Email protocols were designed before mobile.&lt;br&gt;
Before real-time. Before AI.&lt;br&gt;
SMARD is designed for the next 20 years —&lt;br&gt;
including the part where AI agents act on our behalf.&lt;br&gt;
When an agent buys something for you, negotiates&lt;br&gt;
with a supplier, or coordinates a delivery —&lt;br&gt;
that interaction needs somewhere to live.&lt;br&gt;
Right now it disappears into API logs&lt;br&gt;
and unstructured noise.&lt;br&gt;
A Smard is the natural container for that record.&lt;br&gt;
The agent writes to it. You have full context.&lt;br&gt;
Nothing gets lost.&lt;br&gt;
The protocol doesn’t need to change for this.&lt;br&gt;
It’s already prepared.&lt;/p&gt;

&lt;p&gt;Where we are&lt;br&gt;
The capsule specification is complete and published.&lt;br&gt;
SmardApp — the open-source reference client —&lt;br&gt;
is in design phase. The client hasn’t been&lt;br&gt;
built yet.&lt;br&gt;
That’s not a weakness. That’s an invitation.&lt;br&gt;
The decisions made in the next few weeks&lt;br&gt;
will define the standard. The stack,&lt;br&gt;
the architecture, the UX patterns —&lt;br&gt;
none of it is set in stone.&lt;br&gt;
This is the right moment to get involved.&lt;/p&gt;

&lt;p&gt;What we need&lt;br&gt;
If you’re a developer who wants to:&lt;br&gt;
    • Own the architecture of the reference client&lt;br&gt;
    • Contribute to a protocol designed to become&lt;br&gt;
a standard&lt;br&gt;
    • Build something that matters beyond&lt;br&gt;
the next funding round&lt;br&gt;
This is for you.&lt;br&gt;
Spec: github.com/smard-protocol/smard/blob/main/spec.mdRepo: github.com/smard-protocol/smardWeb: smardapp.com&lt;br&gt;
Read the spec. Open an Issue.&lt;br&gt;
Tell us what’s wrong with it.&lt;br&gt;
We’re building this in public.&lt;br&gt;
Every decision is on GitHub.&lt;br&gt;
SMARD belongs to the community — not to me.&lt;/p&gt;

&lt;p&gt;I’m Cato Sora — the product person behind SMARD.&lt;br&gt;
Not a developer, but the person frustrated enough&lt;br&gt;
to write a protocol spec from scratch.&lt;br&gt;
Happy to answer questions in the comments.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
