EST. THE DESIGN PHASE

The Hobo Herald

PRICE: ONE BINDLE


APPS FLEE COSTLY LANDLORDS;
CONTINUOUS MIGRATION BLAMED

Workloads seen packing a single Bindle and boarding any provider that passes policy — cost, region and uptime gates all reported intact upon arrival.

Sources close to the control plane confirm that once an app is described, its placement becomes a standing decision: when a better-value home opens up, HoBo plans the move, gates it, and rides. Landlords could not be reached for comment.

Engraving of Bo the soot-sprite stepping off a freight train
— Our correspondent's engraving: a workload arrives at better rent.

TWO LANDLORDS DENOUNCED IN OPEN LETTER

"A closed platform is easy," the letter reads, "right up until the rent triples — one runtime, one bill, and the exits are decorative." Of the other landlord: "raw cloud gives you full control… of a second job. Every app team slowly becomes a part-time platform crew."

THE RIDE, IN FOUR STOPS

I. Pack the Bindle — everything the app owns. II. Declare policies — cost, region, uptime. III. Board the Camp that passes every gate. IV. When the rent turns, ride again. No rewrite, no war room.

Engraving: Bo at a many-armed signpost crossroads
— At the crossroads: any provider that passes policy is a valid road.

CLASSIFIEDS

FOR HIRE — BINDLE. Carries an entire application. Travels light. Enquire.

ROOMS — CAMPS. By the night, any provider. Policy-vetted. Enquire.

LOTS — YARDS. Self-hosted ground, bring your own metal. Enquire.

CONNECTIONS — JUNCTIONS. Interchange made honest. Enquire.

PUBLIC NOTICE — HoBo is pre-release. The surfaces documented in this edition are the contract the product is being built to. Consult the record.

LO — THE WANDERING APP,
WEARY OF RENT,
PACKS ITS BINDLE.

IT RIDES AT MIDNIGHT.
THE CHEAPEST HOME THAT
PASSES POLICY AWAITS.

WHEN THE RENT TURNS —
IT SIMPLY RIDES AGAIN.

Film still: Bo walking a moonlit rail line

SCENE II

TWO LANDLORDS. ONE OWNS YOU.
THE OTHER WORKS YOU.

SCENE III

PACK · DECLARE · BOARD ·
AND WHEN THE RENT TURNS — RIDE AGAIN.

CAST OF CHARACTERS

THE BINDLE
the luggage
THE CAMP
the room for the night
THE YARD
the family lot
THE TRAIL
the road itself

— THE END IS NOT WRITTEN. (PRE-RELEASE) —

DISPATCH BOARD · every app a scheduled departure

  1. 14:02 bindle packed — hello-bindle
  2. 14:02 policies loaded — cost · region · uptime
  3. 14:03 camp selected — best value, passes all gates
  4. 14:07 migration planned · gated · ridden
  5. >_ the board never sleeps. neither does placement.
A split-flap railway departure board

DEPARTURES

14:10closed-paas → open-roadON TIME
14:22pricey-east → cheaper-westGATED
14:31own-metal ⇄ any-providerSTANDING

YARD DESIGNATIONS

BINDLEcargo manifest — everything the app owns
CAMPberth for the night
YARDhome rail, your own metal
JUNCTIONinterchange

STATUS: PRE-RELEASE · LOCAL LANE LIVE · DEPLOY LANES CREDENTIAL-GATED · full board

Notes from the open road.

Paper-cutout collage of Bo walking through torn-paper hills

Dear folks — found the app a cheaper room out west. Landlord never even saw us pack. It's got its bindle, it's got its policies, and when the rent turns, we'll ride again. — Bo

packing list

  • ☑ bindle — everything we own
  • ☑ policies — what we'll pay, where we'll sleep
  • ☑ camp — tonight's room
  • ☑ map of the yards — in case we host ourselves
Paper collage of a crossroads signpost

Before we left — the old landlord owned the walls, and the new one wanted us doing his chores nights and weekends. So we packed. One bindle. That's the whole trick. — Bo

🎫 ADMIT ONE — the open road (pre-release: the road's still being laid) · see how far it goes

Pack your bindle and hitch a ride —
we'll find your app a home.

Pre-release — not on npm; clone the repo and build @hobo/hobo. Default apply is an in-memory Pulumi stand-in. HoBo continuously migrates your app to the cheapest home that passes your policies. Describe it once; when a better deal opens up — on any provider, a mix of them, or your own metal — HoBo plans the move, gates it, and rides.

src/bindle.ts
import { bindle } from "@hobo/bindles";

import { app as helloApi } from "./api";
import { app as helloWeb } from "./webapp";

// Pack once — provider-agnostic by construction.
export default bindle("hello-bindle", (b) => {
 const api = b.api(() => helloApi.fetch);
 const web = b.web(() => helloWeb.fetch).dependsOn(api);
 return { api, web };
});
Why HoBo exists

Two bad landlords, and the open road

Modern teams pick between a closed PaaS that owns them and raw IaC that consumes them. HoBo's founding grudge: your code shouldn't pay a loyalty tax to its landlord.

The company town

A closed PaaS is easy right up until the rent triples. One runtime, one bill, and the exits are decorative.

The fixer-upper

Raw cloud + IaC gives you full control — of a second job. Every app team slowly becomes a part-time platform team.

The HoBo way

Travel light. Describe intent, not infrastructure, and let policy, price, and reliability goals pick the home. Need provider-native power? It's one typed .with(...) away.

The guiding principle

Deployment is not a destination. It's a journey.

Other platforms deploy your app and call it a day. HoBo keeps watching the market: when a cheaper home passes your policy gates, it plans the move, rehearses it, and rides — with your blessing or on full auto.

01 · PACK

Author the Bindle

Everything your app owns, rolled into one provider-agnostic bundle: services, resources, wiring, and inline .allow() least privilege. If it's not in the bindle, it doesn't ship.

02 · SETTLE

Pitch a Camp

A Camp is the environment shape your app occupies (prod, staging, …) and the durable runtime substrate. Pitch one to pin env semantics — or write none and HoBo infers a camp. Provider selection lives on the Yard.

03 · RIDE

Continuous migration

Price drops, credits appear, a region gets flaky — HoBo replans placement continuously and moves the bindle when it's worth it. Same convergence loop as hobo up, so a move is never a special event.

MigrationPlanned Gated Migrated

Every hop is an event in an append-only log — replay the journey, audit every fare, roll back any move. How the moving works →

The vocabulary

Four words for traveling light

HoBo's primitives are named for the life: pack a bindle, pitch a camp, work a yard, meet at the junction — plus stations for control isolation and trails for continuous moves. Start with the bindle.

AI-native

Built for humans, and the agents that work for them

Every capability is reachable via SDK, CLI, and MCP. Agents aren't a chat box bolted on — they're principals with their own scoped, short-lived credentials.

Agents as principals

Agents self-provision exactly the credentials a task needs through a machine-readable capability standard — and every token issued is an auditable event like everything else.

The Crew: a built-in operator workforce

SRE, Endpoint Monitor, GitOps, Platform Engineer, SWE, UX Designer, and FinOps ship as policy-gated Yard operators — HoBo ships the operators, not just the APIs they'd call. Built-in operators →

Greenfield from a declaration

Declare a @component class whose @operation methods carry intent, a typed contract shape, and an optional rubric enforced as policy — then hand it to b.api(...). Stubbed operations run day one, and the generation pipeline grows the real implementations — promoted only past conformance, eval thresholds, and policy. Declare first, generate the code →

AI-generated providers, conformance-certified

Missing an adapter for your favorite discount host? The generation pipeline writes it; the port's contract suite certifies it. More homes on the map, cheaper moves for everyone. Build a custom provider →

Reading this as an agent?

Welcome, fellow traveler. This whole site is written to be as useful to you as to the humans you work for: stable headings, copy-pasteable snippets, canonical CLI verbs.

Start with the machine-readable briefing at llms.txt (or the whole site in one document at llms-full.txt), then the agent docs for the MCP surface and how to earn credentials.

Read the agent docs →

Testing patterns → · Technical reference →

The landscape

Other roofs over your head

Cloud-agnostic options are IaC-flavored, Kubernetes-bound, or not AI-native. AI-native options are single-runtime and locked in. Nobody else keeps looking for a cheaper home after move-in day.

Product Category Cloud-agnostic Runtime model AI-native Self-host
Lakebed Agent-native PaaS ✗ own runtime sync RPC agent-readable contracts ✗
Vercel + Workflow SDK PaaS + durable execution partial durable workflows/steps DurableAgent runtime only
Nitric Infra-from-code framework ✓ functions/resources ✗ ✓
SST (v3 "Ion") IfC framework (Pulumi/TF) ◐ AWS-centric serverless + containers ✗ ✓ OSS core
Crossplane K8s control plane ✓ reconcilers (CRDs) ✗ ✓ (k8s)
wasmCloud Wasm runtime (HoBo's default host) ✓ components + providers ✗ ✓
HoBo AI-native meta-cloud ✓ ports & adapters wasm components + actors + durable workflows + sagas agents as principals · generation pipeline · MCP ✓ the Yard is a Bindle

And the HoBo-only column: continuous migration — placement is re-decided for as long as your app lives, not once at deploy time.

Ready to hit the rails?

Pack a bindle — that's the only must — and let your app find its way home. Pitch a camp if you're picky about the spot. Yards and junctions can wait until it starts collecting passport stamps.