The open source, AI Agent Native JavaScript framework.

Built for AI agents Machine-readable manifest Self-explaining errors llms.txt AGENTS.md
<script src="https://velofy.github.io/summitjs/summit.min.js" defer></script>

<div s-data="{ open: false }">
    <button @click="open = true">Expand</button>

    <span s-show="open">
        Content...
    </span>
</div>

Small tool, sharp edges

Everything that makes HTML-first behavior lovable, rebuilt on a modern core.

Fine-grained signals

A real signal engine updates only the exact DOM that changed. Big lists and busy pages stay fast.

CSP-safe by default

Expressions run through a hand-written interpreter. No eval, no unsafe-eval.

About 16KB, no build

One script tag and you are live, with focus, positioning, and persistence already inside. Authored in TypeScript, shipped with full types.

Keyed lists

s-for reconciles by key, moving nodes instead of rebuilding them. State stays put.

Familiar directives

15 directives, 9 magics, the @ and : shorthands. Know the idiom, know Summit.

A UI library, included

Accessible, token-themed components you copy into your markup and keep. Explore the UI Library.

See it work

Every widget below is powered by the same script this page loads.

Counter · s-data

0

To-do · s-for + s-model

Nothing left to climb.

Tabs · s-show + :class

Reads track, writes trigger, and only the effects that touched a value re-run.

Expressions are parsed and interpreted, so a strict Content-Security-Policy just works.

The whole runtime, interpreter included, is about 16KB gzipped, with focus trapping, floating positioning, persistence, and input masking already built in.

Form · two-way binding, live


          

The vocabulary

Prefix s-, with @ for events and : for binding.

s-datacomponent scope
s-texttext content
s-htmlinner HTML
:bindattributes
@onevents
s-modeltwo-way
s-showvisibility
s-ifconditional
s-forkeyed lists
s-effectreactive run
s-transitionenter/leave
s-teleportmove in DOM
s-refelement handle
s-initon init
s-cloakanti-flicker

Why Summit

Built in the spirit of Alpine's HTML-first ergonomics, then pushed further where it counts.

CapabilitySummitClassic HTML-sprinkle runtimes
ReactivityFine-grained signalsEffect re-runs, coarser
Strict CSP (no unsafe-eval)DefaultSeparate limited build
Keyed list reconciliationBuilt inLimited
Cached computed gettersYesRecomputed each read
s-if on any elementYesTemplate tag only
TypeScript types shippedYesPartial
Focus trap, floating menus, persist, maskingBuilt inSeparate plugins
Bundle size (gzip)~16KB, batteries included~16KB core, plugins extra

Get started in ten seconds

Add the script, write the markup. That is the whole setup.

# Drop-in, no build. It auto-starts.
<script src="https://velofy.github.io/summitjs/summit.min.js" defer></script>

# Or with a bundler
npm install summitjs
Esc
Loading search...
Recent
Suggested
No results for "".
to navigate to select esc to close