The framework AI agents get right the first try.
Summit.js composes behavior directly in your HTML. One script, no build step, no virtual DOM, no eval. From velofy: AI Native builders out of Gurgaon, India.
What you read is what it does
The pane on the left is the code. The pane on the right is that exact markup, hydrated by the Summit runtime inlined in this page. Click the toggle.
<!-- exactly what runs on the right --> <div s-data="{ open: false }"> <button @click="open = !open">Toggle</button> <p s-show="open">Hello from Summit</p> </div>
Hello from Summit
Nothing up my sleeve. Press it.
Advanced loaders, pure CSS, zero main-thread cost
Summit ships a full gallery of loading states. Every one below is the framework's own class, inheriting this page's monochrome ink tokens automatically.
Ring
Dual ring
Dashed
Arc sweep
Orbit
Wave
Equalizer
Typing
Pulse
Ripple
Grid
Flip
Bounce
Logo pulse
Logo draw
Logo orbit
Content arrives without a jump
The skeleton mirrors the shape of what is coming, so the layout holds still. The swap you just made is one boolean in s-data, which is the whole point.
Small surface, sharp tools
A closed set of s- directives and $ magics. One obvious way to do most things, which is exactly what a model does best.
Change one value and only its exact dependents update. No diffing, no re-render.
Expressions are interpreted, never evaled. Generated markup runs under a strict CSP.
Lists reconcile by key, so reorders move DOM nodes instead of rebuilding them.
Derived values memoize until a dependency changes. Free performance, no ceremony.
Accessible, token-themed components you paste and own. This page uses them everywhere.
llms.txt indexes every page and AGENTS.md briefs your agent. Built to be read by machines.
Three steps, no third act
<script src="https://cdn.jsdelivr.net/npm/summitjs/dist/summit.min.js" defer></script>
<div s-data="{ count: 0 }"> <button @click="count++">+1</button> <span s-text="count"></span> </div>
No bundler, no build. It works under a strict CSP, and your agent can read every page of the docs as markdown.