The road — conditions, not dates
One road, no dates.
aparté ships when a barrier is cleared, not when a month arrives — so this page carries no calendar. What npm serves, what the current branch holds, the conditions the beta and 1.0 each have to meet, what is still to build, and what we decided not to build, with the reason.
- shipped
- in progress
- open
-
Shipped
On (npm)
0.16.11 is the line this site was built from: 21 packages on a single version, MIT. The docs site deploys from
main.Every release, in full → @aparte/core on npm → Getting started →
-
In progress
Where we (are)
The
nextbranch carries the pre-beta, and it publishes as the next minor. The library grew a shell, a layout vocabulary and a UI kit — and core gave up the one thing that was never its own: compaction, now a plugin.In the library
- The comfortable default density.
- Compaction left core for
@aparte/plugin-compaction. @aparte/plugin-artifacts— the artifact card as a tool renderer, and as a stream block.- The
ask_userrework, and@aparte/plugin-approval.
New elements and recipes
- The application shell:
<aparte-sidebar>, plus the app-shell and app-header recipes. <aparte-split>— two panes and a seam you can drag, arrow or collapse.<aparte-scroll-rail>.<aparte-context>, as a bar or as a ring.<aparte-suggestions>.<aparte-elicitation>, the typed-question panel.- The kit dialog, on a native
<dialog>. - Markdown tables, styled like the prose around them.
On the site, and on the project
- A live demo per layout family: reading column, feed, builder split, side panel, empty state, an artifact in a pane.
- A UI kit section — twenty-five families, live preview first.
- The components grouped by purpose: conversation, input, shell, utility.
- The compare page, and the support matrix.
SECURITY.md, andmainprotected.
Counted on the tree
24elements25kit families45typed events456CSS variablesdocumented351CSS classesacross 44 sheets9plugins4wrappersReact, Vue, Svelte, Angular — plus vanilla2,866testsin 268 files31gate steps24 of them guards0third-party depscore’s one dependency is @aparte/engine, first-partyBefore the pre-beta ships: a cold audit — read-only auditors, then an adversarial verifier per finding — and its fixes. In progress.
-
Open
(Beta)
The beta is a dist-tag and a promise. A declared surface — elements, attributes, events and their detail, barrel exports, CSS tokens and contract classes, locale keys — stops changing without a notice release. The alpha broke cleanly; the beta warns.
The barrier, item by item
And then the two things a checklist cannot hold: the cold audit, and soak time.
-
Open
(1.0)
The barrier from beta to 1.0.
- A quiet beta — no unannounced breaking change.
- A published and guarded performance budget: token-to-paint, the memory of a 500-message conversation, gzip per package.
- SSR proven on Next, Nuxt and SvelteKit, in CI.
- An accessibility statement, and a real RTL audit.
- A locale-keys guard in the gate.
- npm provenance, and a written semver and deprecation policy.
- The 1.0 versioning decision, taken cold.
- The engine competitors re-evaluated (TanStack AI), and engine’s run events mapped onto the AG-UI / A2A vocabulary if interop becomes a demand.
What 1.0 promises: strict semver — the elements and the event table stable across 1.x.
-
Open
Still to (build)
Named, and not scheduled. Every one of them waits on the same thing — the last line of this page.
Components
- Sources and citations, as an annotation on a range of a text segment: an inline marker, and a source list. The ai-sdk bridge drops source parts today.
- A floating widget: a launcher, and a fixed card that becomes a full-screen sheet under a breakpoint.
- Theme presets, as pure token sheets.
Plugins
@aparte/plugin-storage-idb— the reference IndexedDB adapter.@aparte/plugin-katex.- A one-line
setupDompurify(). @aparte/plugin-mermaid.@aparte/plugin-speech— microphone input, over the Web Speech API.- More locales —
es,de. The ideal first contribution.
The site
- The kit gallery on one page, and an Examples page: a ChatGPT-shaped app and a builder split, assembled and copyable.
- Framework tabs on every demo — React, Vue, Svelte, Angular, vanilla.
- The Builder: a live chat beside a composition panel that exports the exact install and setup of your selection, with the theme editor folded in.
- The landing where the chat is the hero, and the page splits open as you scroll.
Not hostage to our UI
- First skin packs, pure CSS.
- Then a control-renderer seam, so a design system’s own buttons — PrimeNG under Angular, shadcn under React — draw aparté’s controls without a single CSS override.
Also on the list
- A raw-completion provider for llama.cpp, when a consumer needs one.
- Conversation export — a recipe first.
-
Decided
What we said (no) to
With the reason, so that nobody re-derives the answer from scratch.
- Real-time voice sessions
- Large, and vendor-specific. Microphone input yes; sessions no.
- A workflow canvas
- Another product.
- Arbitrary generative UI
- Custom segments and tool renderers are the sane version of it, and they are already here.
- Multi-runtime adapters
- Bring-your-own-loop covers it. A guide, not a package.
- Routing, settings, persistence
- The product’s, never the library’s.
- A citation type in the segment union
- An annotation on a range of text, not a member of the union — and it lands when a provider in this repo actually returns citations.
A capability ships when an in-repo consumer exercises it end to end. A layer no caller uses is a contract maintained for nobody.