<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://workpads.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://workpads.org/" rel="alternate" type="text/html" /><updated>2026-06-19T07:50:12+00:00</updated><id>https://workpads.org/feed.xml</id><title type="html">workpads</title><subtitle>No server. No account. No data. Your records live on your device. We are structurally unable to read them.</subtitle><entry><title type="html">An Open Door, Not a Protected Territory</title><link href="https://workpads.org/updates/2026/04/28/open-door-not-protected-territory/" rel="alternate" type="text/html" title="An Open Door, Not a Protected Territory" /><published>2026-04-28T14:00:00+00:00</published><updated>2026-04-28T14:00:00+00:00</updated><id>https://workpads.org/updates/2026/04/28/open-door-not-protected-territory</id><content type="html" xml:base="https://workpads.org/updates/2026/04/28/open-door-not-protected-territory/"><![CDATA[<p>Babb created the Workpads Standard to grow a format that serves workers. Not to own a market.</p>

<p>This distinction matters in how the standard is structured, what it asks of implementors, and what it does not ask.</p>

<h2 id="what-the-standard-asks">What the standard asks</h2>

<p>If your product generates workpad URLs — the <code class="language-plaintext highlighter-rouge">workpads.me/p#...</code> format — encode according to §5 so that any conformant decoder can read the record. If your product decodes workpad URLs, implement §5 faithfully so that records from any conformant encoder are readable.</p>

<p>That’s the full obligation. <strong>Interoperability is the standard’s core value, not exclusivity.</strong></p>

<h2 id="what-the-standard-does-not-ask">What the standard does not ask</h2>

<p>The standard does not ask:</p>
<ul>
  <li>For a license fee or royalty</li>
  <li>For permission before building</li>
  <li>For proprietary products to open-source their code</li>
  <li>For extensions to be submitted back to the standard</li>
</ul>

<p>You may build a commercial product on Workpads and keep that product entirely proprietary. You may extend the format for your use case using the reserved field slots in §5 without registering anything. The standard does not police what you build on top of it.</p>

<h2 id="basics-as-a-signal-not-a-gate">BASICS as a signal, not a gate</h2>

<p>The Workpads Standard conforms to BASICS v0.1.1 at the Core tier. BASICS provides a meta-framework for interoperability claims and deviation registration.</p>

<p>Formal BASICS conformance for your product is <strong>not required</strong> to implement Workpads. It is a signal — to other implementors, to your users, to the ecosystem — that your product has a documented interoperability posture. It says: here is what we implement, here is what we deviate from, here is why.</p>

<p>If your product generates workpad URLs and you want that signal, <a href="/standard">read §8 and create a deviation registry</a>. If you don’t need the signal, build and ship.</p>

<h2 id="how-the-ecosystem-grows">How the ecosystem grows</h2>

<p>The standard grows through real implementation experience. We learn more from a conformant product built by an independent team than from months of internal spec work.</p>

<p>If you find that something in the spec doesn’t match what works in practice, that is valuable. Open a <a href="https://github.com/babbworks/Workpads/discussions">GitHub Discussion</a>. Describe what you’re building, what the spec says, and what you found. Deviations documented in practice feed the next version.</p>

<p>The goal is a format that is actually interoperable in the wild — not one that is theoretically interoperable on paper. Every independent implementation makes that goal more achievable.</p>

<p><a href="/contribute">How to Contribute →</a></p>]]></content><author><name></name></author><category term="community" /><category term="standard" /><summary type="html"><![CDATA[Babb created the Workpads Standard to grow a format that serves workers. Not to own a market.]]></summary></entry><entry><title type="html">Built for Feature Phones</title><link href="https://workpads.org/updates/2026/04/27/built-for-feature-phones/" rel="alternate" type="text/html" title="Built for Feature Phones" /><published>2026-04-27T15:00:00+00:00</published><updated>2026-04-27T15:00:00+00:00</updated><id>https://workpads.org/updates/2026/04/27/built-for-feature-phones</id><content type="html" xml:base="https://workpads.org/updates/2026/04/27/built-for-feature-phones/"><![CDATA[<p>KaiOS runs on feature phones selling for under $25. The global installed base is in the hundreds of millions. It is the dominant computing platform in several African markets and across South Asia.</p>

<p>Workpads launched first on KaiOS. This was not a pragmatic choice. It was a design constraint.</p>

<h2 id="why-kaios-first">Why KaiOS first</h2>

<p>Building for the most constrained platform first forces decisions that remain correct as you move to richer environments. The KaiOS Workpads app must:</p>

<ul>
  <li>Navigate entirely via D-pad (ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Enter)</li>
  <li>Fit within tight memory limits</li>
  <li>Produce URLs short enough for SMS</li>
  <li>Work without assuming background sync or push notifications</li>
</ul>

<p>Every one of these constraints is a good constraint for any commercial record format. D-pad navigation produces a clear information hierarchy. Memory limits prevent scope creep. SMS-length URLs enforce encoding discipline. No background sync means records must be self-contained.</p>

<p>The <a href="/standard">Two-Build Strategy (§7)</a> describes how a single codebase produces both the KaiOS 3.x build and the modern web build. The split is at the platform adapter layer — the record logic, codec, and storage contract are shared. Only the navigation model and rendering layer diverge.</p>

<h2 id="the-codec-constraint">The codec constraint</h2>

<p>The KaiOS use case gave us the codec’s core constraint: a complete business record must encode to under 300 characters to be reliably SMS-transmissible. The <a href="/standard">§5 codec</a> achieves this through:</p>

<ul>
  <li><strong>Bitfield packing</strong> for status and flags</li>
  <li><strong>Sparse encoding</strong> — absent optional fields are not written</li>
  <li><strong>Base64url output</strong> — URL-safe, no percent-encoding overhead</li>
  <li><strong>No schema envelope</strong> — the codec is versioned at the URL prefix, not embedded in the payload</li>
</ul>

<p>The result: a complete svc-basic record with all optional fields populated encodes to approximately 180-220 characters. With only required fields, it’s under 80.</p>

<h2 id="the-panel-navigation-model">The panel navigation model</h2>

<p>KaiOS apps navigate using softkeys and D-pad. The <a href="/standard">panel access model (§ panel-access-model.md)</a> defines how ArrowLeft and ArrowRight navigate between record panels, and how the softkey bar maps to record actions (Save, Share, New).</p>

<p>This model transfers cleanly to touch and mouse: swipe or click to move between panels, with the softkey actions becoming persistent footer buttons. The same mental model works across both platforms.</p>

<hr />

<p>The KaiOS app is available on the <a href="https://www.kaiostech.com/store/apps/?bundle_id=com.babbworks.workpads">KaiOS Store</a> and as a <a href="https://workpads.app">demo at workpads.app</a>.</p>]]></content><author><name></name></author><category term="technical" /><category term="ecosystem" /><summary type="html"><![CDATA[KaiOS runs on feature phones selling for under $25. The global installed base is in the hundreds of millions. It is the dominant computing platform in several African markets and across South Asia.]]></summary></entry><entry><title type="html">A Record That Travels</title><link href="https://workpads.org/updates/2026/04/27/a-record-that-travels/" rel="alternate" type="text/html" title="A Record That Travels" /><published>2026-04-27T14:00:00+00:00</published><updated>2026-04-27T14:00:00+00:00</updated><id>https://workpads.org/updates/2026/04/27/a-record-that-travels</id><content type="html" xml:base="https://workpads.org/updates/2026/04/27/a-record-that-travels/"><![CDATA[<p>Most record formats are built for storage. A workpad record is built for travel.</p>

<p>The distinction matters. When a format is built for storage, it assumes a server will receive it, a database will hold it, and a client will retrieve it on demand. Connectivity is a given. The record is a description of state that lives somewhere else.</p>

<p>A workpad record assumes none of that. The record <em>is</em> the transmission. It encodes a complete business transaction — service description, parties, status, financial terms — into a URL hash fragment small enough to fit in an SMS message. When the URL travels, the record travels with it.</p>

<h2 id="why-this-matters-for-emerging-markets">Why this matters for emerging markets</h2>

<p>In much of the world, reliable internet connectivity is intermittent or expensive. A feature phone with a data plan may get SMS reliably but not HTTP. A QR code scanned at a market stall doesn’t require a working server at the other end.</p>

<p>The Workpads codec (§5) is designed with these constraints in mind:</p>

<ul>
  <li><strong>Binary packing</strong> over text serialization — no JSON, no XML bloat</li>
  <li><strong>Sparse field encoding</strong> — absent fields cost nothing</li>
  <li><strong>URL-safe output</strong> — the hash fragment survives copy-paste across SMS, WhatsApp, and QR codes</li>
  <li><strong>No server round-trip</strong> required to decode</li>
</ul>

<p>A record generated on a KaiOS phone in Lagos can be decoded on a web browser in Louisville without either party having an account, a server, or an internet connection at the moment of transfer.</p>

<h2 id="the-atomic-record">The atomic record</h2>

<p>The atomic unit of the format is the <strong>workpad record</strong>: a single document capturing one piece of work. By design, it is:</p>

<ul>
  <li><strong>Complete</strong> — enough information to understand the transaction without external lookup</li>
  <li><strong>Compact</strong> — small enough to travel as a URL fragment over any channel</li>
  <li><strong>Honest</strong> — the record’s status field (open, active, complete) reflects its actual state</li>
  <li><strong>Sovereign</strong> — it belongs to its creator, not to a platform</li>
</ul>

<p>These four properties, defined in <a href="/standard">§1 — PADS Data Model</a>, are not aspirational. They are enforced by the encoding: a workpad URL that omits the service description is malformed. A workpad URL that requires a server lookup to decode violates the sovereign property.</p>

<h2 id="building-on-the-standard">Building on the standard</h2>

<p>The record format is open. The <a href="/standard">Workpads Standard v0.1</a> defines what a workpad record is and how it is encoded. What you build with that is yours.</p>

<p><a href="/standard">Read the Standard →</a></p>]]></content><author><name></name></author><category term="standard" /><category term="technical" /><summary type="html"><![CDATA[Most record formats are built for storage. A workpad record is built for travel.]]></summary></entry></feed>