Public Reference Surface
Spw Syntax
Spw pushes plain text toward addressable structure without giving up legibility. The file remains the substrate; the syntax simply gives tools more to work with.
#>note
#:layer #!pragmatics
^"summary"{
claim: "Files should remain legible."
tags: ["durable", "portable", "inspectable"]
}
The interesting part is projection: one authored source can be read as source, syntax, metadata, or interactive surface without severing the relationship between them.
This is the homage: if Obsidian had used Spw from the start, Markdown could still be the file format, but sections, properties, and codeblocks would be more frame-aware, queryable, and interactive by default.
Orientation
Markdown base
## Note
Files should remain legible.
- durable
- portable
- inspectable
Spw frame
#>note
#:layer #!pragmatics
^"summary"{
claim: "Files should remain legible."
tags: ["durable", "portable", "inspectable"]
}
Readable text, but now addressable to parsers, metadata systems, interactive codeblocks, and projection layers.
Core Forms
- Name a frame so it can be linked, queried, and projected.
- Mark the interpretive layer or role of a frame.
- Hold structured content in a stable, inspectable body.
- Carry references, paths, or literal anchors.
- Store questions, probes, or interactive interpretive units.
Composite Example
#>frame_name
#:layer #!meaning_time
^"object"{
key: "value"
list: ["one", "two"]
ref: ~"./other-surface.spw"
}
?["What changes when a note becomes queryable?"]{
!probe{ "project this frame into outline, graph, and editable card views" }
}
Interactive Codeblocks
One authored unit, three views: source, syntax, and surface.
# Local-first note
Files should remain legible.
- durable
- portable
- inspectable
[[Tooling]]
#>local_first_note
#:layer #!pragmatics
^"note"{
title: "Local-first note"
claim: "Files should remain legible."
tags: ["durable", "portable", "inspectable"]
links: ["Tooling"]
}
Local-first note
Files should remain legible.
- durable
- portable
- inspectable
link: Tooling
view: rendered card from a structured source unit
External Probe: Pretext.js
Why it fits here
Pretext.js is interesting for the same reason interactive codeblocks are interesting: authored text can stay legible while its projected surface becomes more measurable, responsive, and deliberate.
A small external-library probe, shaped to the same frame language as the rest of this software surface.
What if Obsidian used Spw from the start?
Markdown stays
Files remain portable and human-readable. Spw does not replace Markdown’s trust model; it deepens the structural layer.
Frames over anonymous blocks
Sections become named units with stable references, better projection, and more explicit relationships.
Properties with stronger semantics
Metadata can stay plain text while becoming more aware of role, layer, and interaction.
Interactive codeblocks
Codeblocks can move between source, syntax, and rendered surfaces without becoming detached widgets.
Plugins as projections
Plugins gain a richer substrate, not merely more UI state to manage.
Design teaches grammar
The interface becomes part of the reading model: interaction reveals structure instead of hiding it.
Design Influences
- Literate UI operator gestures as navigation primitives, so syntax teaches interaction.
- Symmetry UI Design spatial behavior follows symmetry while interaction follows operator physics.
- Ocean UX expert reward comes from stable placement, reference-driven navigation, and repeated familiarity.
- Style Currents style should be recognizable and reproducible, not ornamental drift.
These ideas are adapted from the `spw-workbench` design surfaces and translated here into a public-facing site context.
Pipeline
Markdown -> Spw frame -> parser -> metadata -> interactive surface
Not less plain text. More usable structure.