Workpads as Autonomous System
Workpads: A Job Record System Designed for Real-World Constraints
Modern software for small teams often assumes ideal conditions—stable staffing, reliable connectivity, and time to manage accounts and tools before work begins. In practice, many field and trade environments operate without those guarantees.
Workpads is designed from the opposite starting point. It focuses on a single, durable unit: the job record—a compact, structured document that captures what happened, what needs to happen next, and why.
A Different Starting Assumption
Typical tools expect:
- consistent teams
- desktop-first workflows
- always-on internet
- upfront setup overhead
Workpads assumes:
- work begins in the field
- teams change frequently
- devices may be limited
- connectivity is unreliable
- simplicity is non-negotiable
The result is a system optimized for immediacy and resilience, rather than feature depth.
The Core Idea: One Record That Carries Everything
Instead of spreading information across multiple systems, Workpads centers coordination around a single artifact.
A well-formed job record should:
- capture the task clearly
- guide execution
- provide context for collaborators
- remain useful after completion
If that unit is reliable, many secondary systems become optional.
The PADS Model
Workpads structures each record using a compact schema called PADS:
- Processes — structured job fields
- Actions — step-by-step instructions
- Details — concise notes and context
- Story — longer narrative or reflection
This model is intentionally constrained. It is broad enough to represent real work while remaining lightweight enough to function on low-end devices.
Product Principles
Simplicity as a Constraint
- Built with plain HTML, CSS, and JavaScript compatibility
- Minimal moving parts
- Additional complexity is optional, not required
Local-First Operation
- No account required for baseline use
- Data can exist entirely on-device
- Storage policies can favor ephemeral or persistent use
Frictionless Sharing
- Records can be encoded into compact URLs
- Recipients reconstruct the full record from the link
- Payload size is visible and optimized
Compatibility-Driven Design
- Designed to run on constrained environments (e.g., KaiOS-class devices)
- Consistent behavior across CLI, browser, and future clients
Contract-First Architecture
- One shared data model
- Multiple clients consuming identical contracts
- Reduced divergence as the system evolves
Who This Serves
Workpads is aimed at:
- owner-operators in field businesses
- dispatchers coordinating daily work
- workers who need access without onboarding into full systems
Common tasks include:
- quickly creating a job record
- sharing instructions and context
- coordinating without heavy tooling
- preserving knowledge for future jobs
What a Good Workflow Looks Like
An effective Workpads interaction should be:
- fast enough for field entry
- clear enough for handoff
- compact enough for link-based sharing
- structured enough for later analysis
The emphasis is not on features, but on clarity under constraint.
System Architecture (Overview)
Workpads follows a service-oriented model with thin clients:
- Gateway Service — central orchestration point
- Template Registry — validates and normalizes templates
- Record Service — manages workpad records
- Storage Policy Service — resolves storage behavior
- Comment Service — supports optional social interaction
- Codec Service — handles encoding/decoding
- Link Service — builds and parses shareable URLs
Clients—CLI, browser, or mobile—interact through the same contracts.
CLI as a First-Class Client
The command-line interface is not secondary. It defines the system’s behavior.
Design rule:
- Any browser workflow must map to a CLI equivalent
- Any CLI workflow must use the same request/response structure
This approach stabilizes the system early and simplifies future client development.
Data Model (Simplified)
A canonical record follows the PADS structure:
{
"templateId": "svc-basic",
"variant": "plain",
"process": {},
"actions": [],
"details": "",
"story": "",
"comments": []
}
For sharing, this is compressed into a smaller payload suitable for URLs.
Templates and Flexibility
Templates define the shape of records and can be authored in:
- simple key-value format
- YAML
Both compile into a normalized runtime schema. This allows:
- human-friendly editing
- consistent execution
Storage and Sharing
Storage behavior is explicit and policy-driven:
- ephemeral — short-lived, minimal persistence
- stored — retained for later access
Sharing is based on encoded links:
- records are portable
- no account or system access is required
- size is monitored to maintain efficiency
Social Mode (Optional)
Workpads supports two conceptual modes:
- plain — core record only
- social — record plus comments
Identity is minimal by design, with anonymous-first behavior and optional display names.
Current Capabilities
The CLI currently supports:
- template validation and compilation
- record creation, editing, sharing, and import
- rendering and export
- storage policy management
- comment operations
- size analytics (min, max, average payloads)
What’s Intentionally Deferred
To maintain focus, several features are paused:
- multiple encoding strategies
- encryption
- strict size limits
These are not rejected—only delayed until the core system is stable.
Why This Approach Holds
Product Perspective
- Small teams benefit from fewer dependencies
- A portable, readable record improves coordination
- A consistent structure compounds value over time
Technical Perspective
- Contract-first services reduce fragmentation
- Local-first improves reliability in poor conditions
- Template normalization balances flexibility and consistency
Operational Perspective
- CLI-first development strengthens system integrity
- Additional clients can be built on proven contracts
- Size tracking enforces discipline in data design
Repository
The project is available here: → workpads https://github.com/babbworks/workpads
Getting Started
From the project directory:
npm install
node ./workpads.js help
Example workflow:
node ./workpads.js template:validate --file ./templates/svc-basic.kv --format kv
node ./workpads.js create --template svc-basic --variant plain --set process.job="Replace faucet"
node ./workpads.js share --record loc_000001
Closing View
Workpads is built on a narrow premise:
If the job record is clear, portable, and complete, coordination becomes significantly easier.
Rather than expanding outward into complex systems, it focuses inward—on making that single unit reliable.