A Blocklet is ARC's unit for packaging and running an application or service. One directory holds the package (blocklet.yaml plus assets). A local or remote instance is a particular running realization of that package.
A Blocklet is not another name for AUP, Web Device, or an AFS provider:
| Layer | What it is | Board |
|---|---|---|
| Blocklet | Package + instance unit for an application or service | This board |
| AUP | Semantic interface contract (pages, events, primitives) | AUP |
| Web Device | Web content, site components, themes, routing | Web Device |
| AFS | Path-addressable data and provider operations | AFS |
A Blocklet may include AUP pages, Web Device routes, agents, settings, and AFS mounts. Those are surfaces and capabilities inside the package, not synonyms for the package itself.
Read this board by task
| If you need to | Start here |
|---|---|
| Distinguish package from instance | Package and instance |
| Scaffold and accept without remote deploy | Create and run locally |
| Validate, build, and inspect artifacts | Check, build, and inspect |
| Declare manifest fields and capabilities | Manifest and capabilities |
| Use AFS paths from a Blocklet | Data and AFS |
| Choose AUP vs Web Device surfaces | Web surfaces |
| Separate local acceptance from release | Lifecycle · Publish and deploy |
| Study real packages in the ARC tree | Reference applications |
Local first
Ordinary development and acceptance start with a directly selected local directory in an isolated ARC environment:
arc blocklet create ./my-app --recipe minimal-app --name my-app
arc dsl validate ./my-app
arc blocklet check ./my-app --profile minimal-app
arc service start --blocklet ./my-app --port 4939
# open http://my-app.localhost:4939/That chain proves the source, the declared contract, and the observable surface the local runtime accepts. It does not require a DID Space, a remote server, Cloudflare Pages, or arc deploy --server.
Verified with arc 2.0.0-beta.28 in an isolated temp directory: minimal-app scaffold, DSL validation, profile check, and arc service start --blocklet all returned success; GET / with Host: demo-min.localhost returned HTTP 200.
What this board does not promise
- Feature parity with every historical ArcBlock product named "Blocklet Server", "Media Kit", or similar
- That remote DID Space publish (
--server) or stateful/instanceworkflows are fully E2E-proven on every machine - That a green build replaces browser acceptance of the rendered surface
Where a path is incomplete or environment-dependent, the page marks it experimental or unverified and points at the local path that is proven.
Command map (quick)
| Goal | Command |
|---|---|
| Scaffold | arc blocklet create [dir] --recipe <name> --name <id> (init is an alias) |
| List recipes | arc blocklet recipe list / explain <name> |
| Validate DSL | arc dsl validate <dir> |
| Check package contract | arc blocklet check [dir] --profile <profile> |
| Convention scan | arc blocklet dev [dir] |
Build dist/ | arc blocklet build [dir] |
| Inspect package | arc blocklet inspect <dir> |
| Local serve (preferred) | arc blocklet run <dir> or arc service start --blocklet <dir> |
| CLI man page | arc blocklet |