sumi

Beyond · Where next

Where next

That is the tour: elements and CSS, signals and events, components, forms, motion, and the terminal. Everything you have run here is the same code that compiles to a native binary — the browser is just one more target.

To build your own, install the CLI and scaffold an app:

brew install tomyan/tap/sumi
sumi init myapp

sumi init writes a component, a main.go, and a go.mod. From there, sumi dev runs your app with hot reload — it recompiles on save and keeps the last good build on screen when a change does not compile. sumi generate . emits the Go source beside each .sumi file, and go build . produces one static binary with no runtime to ship alongside it.

When you are ready to test, runtime/sumitest renders components deterministically and asserts whole frames against snapshot files, so a UI change shows up as a golden diff you can review. The documentation covers the full surface, and the reference is the support matrix for the CSS and elements sumi implements.

Your turn

Press Run one last time, then go make something.

⌘↵ to run