Antora next — SolidStart shell and split artifact
Working implementation
Product name: antora-solidstart (repo antora-solidstartunchecked on GitHub).
This proposal page title still says Antora next for upstream discussion continuity; agents and new code should use antora-solidstart.
Summary
Antora 3 today is Node.js static generate: git content → @asciidoctor/core (Asciiidoctor.js) → Handlebars UI bundle → CDN HTML.
Asciidoctor (Ruby) and AsciidoctorJ (JVM) are separate stacks; Java is not an Antora dependency.
This proposal describes Pattern C — split artifact:
-
A build-time content compiler (Node orchestrator today; successor over time) turns git sources into a manifest — per-page body HTML (or structured blocks),
page-meta.json, globalnav.json, xref maps, search index data. -
A SolidStart app is the reader shell — file-based routes, SSR/API for auth and tooling, Solid layout chrome; page bodies load from the manifest (
{@html}or structured renderers). -
asciidoctor-d (
dlang-supplemental/asciidoctor-d) is the convert engine, invoked via CLI or IPC from the orchestrator — not embedded inside Vinxi.
Production readers stay static or SSR from the manifest; dev uses solidstart dev plus a watched compiler (extend ideas from @antora-supplemental/serve and incremental dirty-set).
Intent: pursue a full upstream-style rewrite vision and pull the ecosystem forward — not a long-lived git fork of antora/antoraunchecked. Ship parallel product lines in the same repos with explicit semver majors or npm scopes until cutover.
What stays on the legacy line
-
Shipped hubs, facto-stack, Valentus UI bundles, and Antora 3 extensions remain the default until a task explicitly targets antora-next.
-
Site rebuild (v1/v2) — push-notify full generate and incremental dirty-set — applies to static Antora 3 hubs.
-
Live docs — DB-backed concurrent authoring beside git publish; not the same product as replacing the static reader shell.
Relationship to SoftNav
Static Antora + SoftNavContextunchecked patches chrome on pre-baked HTML (transport → signals → extension hooks). See SoftNavContext ARCHITECTURE.adocunchecked.
A SolidStart shell subsumes persistent layout and routing; SoftNav-style region swap becomes optional migration glue on legacy static sites, not the end-state for antora-next.
Node vs D split
| Node / TypeScript (SolidStart, orchestrator) | D (asciidoctor-d) |
|---|---|
HTTP, auth, git fetch, playbook/model, extension hooks (new TS protocol) |
AsciiDoc → HTML (CLI/lib); LSP/preview (today via zed-asciidoc) |
Watch, dirty graph, manifest emit, CI ( |
Incremental block convert + IPC server (roadmap — needed for subsection hot reload) |
Diagram orchestration (Kroki, client Mermaid) at build or sidecar |
Optional long-lived diagram render daemon (future) |
SolidStart does not run D natively; the orchestrator spawns or sockets to the compiler — same boundary as Antora spawning Asciidoctor today.
Parallel semver in same repos
Hive precedents:
-
Valentus
VALENTUS_SEMVER+antora.Nandsupported-lines.json -
dprint-plugin-asciidoc— one git tag, Rust WASM GitHub release + npm package
Suggested for antora-next packages:
-
Keep current
@antora-supplemental/*lines on Antora 3 semver until APIs change. -
Introduce
@antora-next/*,/nextentry points, or 2.x majors for SolidStart-native compiler and shell APIs in the same git repo. -
Playbooks declare runtime explicitly (for example
runtime: antora-3vsruntime: antora-next-v1); do not assume Antora 3 extensionrequire:blocks work on the next line.
Upstream and org stance
-
antora-supplemental philosophy: complement upstream Antora, not a soft fork (see org news Supplemental, not a fork).
-
Antora Live non-goal: replace or fork Antora core — Live stays authoring; this proposal is reader + compile pipeline.
-
Contribution path: new product name, manifest contract, and incremental milestones proposed to Antora maintainers (GitLab / Zulip) rather than a divergent
antora/antorafork.
Near-term milestones (draft)
-
Hub proposal (this page) + agent skill
antora-solidstartin dev-centr/agent-rules (antora-nextdeprecated alias). -
antora-solidstartunchecked — initial SolidStart reader shell spike (manifest route tree TBD).
-
Compiler POC: git source → manifest JSON + static export consumed by the SolidStart route tree.
-
asciidoctor-d: IPC or watch-friendly CLI contract; incremental block API on roadmap.
-
Document parallel semver and consumer pin rules alongside skill
antora-extension-consumers. -
Playbook multi UI bundle merge + extension UI auto-import (see playbook-ui-bundles.adocunchecked in antora-solidstart) — replaces hand-copying extension
ui/into hubsupplemental-ui/.
Related
-
asciidoctor-dunchecked
-
antora-extensions-registryunchecked (SolidStart in org — registry app, not the docs reader shell)