Files
README.md

tilde.style #

A design toolkit for intentional folk/tilde web presence.

Modelled after impeccable.style — a Claude Code skill, named commands, and curated anti-patterns — but for the folk web: tilde communities, smallweb servers, AT Protocol personal spaces, webrings.

The tilde (~) is the symbol of personal directories. style = deliberate intention.


The central constraint #

You bring the design intention. The AI executes it.

Before any generative design session, write your intention in one sentence. The toolkit enforces this. If you can't articulate what you wanted before the output arrived, the loop has already replaced your judgment.

This is the trespass.ing principle applied to design: author-preservation is agency.


Install #

# Clone into your Claude Code user skills directory
git clone git@tangled.org:tilde.style/toolkit ~/.claude/skills/tilde-style

Then in any Claude Code session:

/tilde-style init

CLI tooling (wiggle / wiggle-verify) #

Two small Go binaries automate the mechanical parts of adding a style — see DESIGN.md's Tooling section for what each does and why they're split.

# Build from a local clone
git clone git@tangled.org:tilde.style/toolkit ~/tilde.style
cd ~/tilde.style && make build   # → ./wiggle, ./wiggle-verify

# Or install directly — tangled.org serves the go-import meta tag needed
# for `go install` to resolve it, but it isn't a registered checksum-database
# host, so GOPRIVATE (or GONOSUMCHECK) has to skip that verification step:
GOPRIVATE=tangled.org go install tangled.org/tilde.style/toolkit/tools/cmd/wiggle@latest
GOPRIVATE=tangled.org go install tangled.org/tilde.style/toolkit/tools/cmd/wiggle-verify@latest

Commands #

Command Description
init Design intention interview → style.md + DESIGN.md
gardening Load the Gardening style (Teich-Morgen palette, pond vocabulary)
ground Write design intention before generating. Preserves authorship.
tend [target] Review against the active metaphor. Flag drift.
detect [target] Scan for anti-patterns. Deterministic.
language Define a new design language: metaphor → tokens → vocabulary → anti-patterns
document Write/update DESIGN.md at end of session
season [variant] Add a temporal palette variant via data-mode

Styles #

tilde.style ships one style. Users create their own with language.

Gardening #

Extracted from chatbot-garden — a vocational training knowledge assistant. The metaphor emerged from the codebase: the knowledge base is a pond, content floats as Lernhappen, the ingest workflow is a picnic, the tool server is a shed, the append-only event log is a Rundholz.

See styles/gardening/style.md for the full manifest.


Anti-patterns #

Things tilde/folk web design avoids:

  • Platform aesthetics imported wholesale — Substack, Notion, Linear chrome without adaptation
  • AI-palette with no metaphor anchor — purple gradients, slate-and-teal, glassmorphism by default
  • Conversational UI as the only surface — not every tilde site is a chatbot
  • Scale-first vocabulary — components named after KPIs (feed, engagement, growth)
  • Authorless generation — no DESIGN.md, no recorded intention, no named decisions
  • Metaphor abandonment mid-sprint — starting with a garden, ending with generic cards
  • Motion without a still state — every animation needs a prefers-reduced-motion counterpart

Contributing a style #

  1. Fork this repo
  2. Run /tilde-style language in a Claude Code session
  3. Save your style manifest to styles/{your-style}/style.md
  4. Open a PR — include the metaphor origin and a screenshot or color swatch

Styles should be grounded in a real-world metaphor, not a design aesthetic.


License #

MIT. The Gardening style tokens and vocabulary are extracted from chatbot-garden with permission.

The wiggle/wiggle-verify CLI tooling (tools/) borrows real architectural patterns — a thin main.go per binary, Cobra subcommands, splitting a heavy dependency (browser automation) into its own binary rather than bloating the everyday tool — from hmans/beans, which this project's own .beans/ task tracking already runs on.