Skip to content

Latest commit

 

History

History

README.md

@dwk IndieWeb + Solid — Technical Specifications

This directory decomposes the project requirements (issue #1, Draft v0.3) into focused technical specifications. The issue is the source of truth for scope; these documents are the source of truth for how each piece is built and what "done" means.

Reading order

# Document Covers
1 overview.md Purpose, goals / non-goals, audience & usage model.
2 architecture.md Monorepo layout, package taxonomy, the Worker → DO → R2 mental model, naming convention.
3 composition-contract.md The cross-cutting rules that make packages composable: handler shape, bindings, config.
4 non-functional-requirements.md Consistency, runtime budget, security, observability, distribution, licensing.
5 observability.md The cross-cutting injectable-logging requirement and event-taxonomy conventions.
6 conformance-and-testing.md Conformance suites and local test strategy.
7 host-contract.md The normative portable subset of the Cloudflare binding interfaces an alternative host must provide.
8 open-questions.md Deferred decisions and known limits.

Per-package specifications

Package Spec Type
@dwk/indieauth packages/indieauth.md endpoint
@dwk/micropub packages/micropub.md endpoint
@dwk/webmention packages/webmention.md endpoint
@dwk/solid-pod packages/solid-pod.md endpoint + Durable Object
@dwk/wac packages/wac.md lib
@dwk/dpop packages/dpop.md lib
@dwk/rdf packages/rdf.md lib
@dwk/log packages/log.md lib
@dwk/store packages/store.md lib
@dwk/cf-shims packages/cf-shims.md lib (host-side, implements host-contract.md)

Proposed packages (next-standard candidates)

Beyond the committed IndieWeb + Solid cohort, these specs draft additional open standards a self-owned presence could support on Workers. They are proposals, each tracked by a GitHub issue, not part of the v1 scope. Standards whose .well-known response is a static document (e.g. security.txt, gpc.json, did.json, the OAuth/feeds artifacts) are left to Anglesite (the static site generator) and intentionally have no package here.

Package Spec Type Tracking
@dwk/webfinger packages/webfinger.md endpoint #57
@dwk/activitypub packages/activitypub.md endpoint + Durable Object #58
@dwk/http-signatures packages/http-signatures.md lib #59
@dwk/websub packages/websub.md endpoint #60
@dwk/vc packages/vc.md endpoint (+ lib) #61
@dwk/oauth packages/oauth.md lib #62
@dwk/ldn packages/ldn.md endpoint (extraction candidate) #63
@dwk/webauthn packages/webauthn.md endpoint + Durable Object #64
@dwk/mastodon-api packages/mastodon-api.md · mastodon-client-api.md (design) endpoint #327

Conventions used in these specs

Requirement strength follows RFC 2119: MUST / MUST NOT / SHOULD / MAY. Each spec lists the bindings and config it requires so a provisioning app (or a developer's wrangler.toml) can satisfy them declaratively.