vercel-labs/nativePublic

Toolkit for building native desktop apps

AI summary: A complete toolkit for building native desktop applications using declarative markup and TypeScript compiled directly to native code.

Stars
7.7K
+8 today
Forks
324
Watchers
23
Open issues
96
Open PRs
84
Contributors
~4
Commits
438
Branches
219

ZigApache-2.0Created May 8, 2026Last push 1d agoLatest release v0.10.1+29 stars this week+113 this month

Quick answers

What is native?
A complete toolkit for building native desktop applications using declarative markup and TypeScript compiled directly to native code.
What does native do?
Native SDK fundamentally reimagines the desktop application authoring experience by completely removing the heavy, resource-intensive browser and WebView runtimes traditionally associated with web technologies. It allows developers to construct highly expressive UIs using simple declarative markup within `.native` files, while writing their core business logic entirely in pure TypeScript. Crucially, at build time, the SDK compiles this TypeScript directly into native machine code and utilizes its own bespoke, highly optimized Zig engine to draw every single pixel directly into native OS windows. By decoupling the familiar web authoring model from the bloat of a JavaScript runtime, it delivers the freedom of web development with the extreme performance and tiny footprint of a true native binary.
Who is native for?
Web developers and software engineers who desire the authoring simplicity of TypeScript and markup but require the extreme performance, tiny footprint, and deep system integration of true native desktop binaries.
How do I get started with native?
npm install -g @native-sdk/cli && native init my_app
How popular is native on GitHub?
vercel-labs/native has 7,737 stars and 324 forks on GitHub, and gained 29 stars in the last 7 days.
What license does native use?
vercel-labs/native is released under the Apache-2.0 license.

Star history

since Jul 29, 2026
02K4K6KJul 2026Aug 2026Sep 2026Oct 2026
7.7K stars as of Oct 3, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Update history

1 recorded
  • Oct 4, 2026Previously tracked as vercel-labs/zero-native; its 1 daily snapshot and 2 trending appearances were merged into this profile. Stars: 7,079 on 2026-07-29 under the old name, 7,737 on 2026-10-03 (+658).

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 17 commits2026-05-09: 2 commits2026-05-10: 0 commits2026-05-11: 7 commits2026-05-12: 9 commits2026-05-13: 19 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 48 commits2026-06-25: 107 commits2026-06-26: 7 commits2026-06-27: 10 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 1 commit2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 2 commits2026-07-09: 8 commits2026-07-10: 6 commits2026-07-11: 3 commits2026-07-12: 5 commits2026-07-13: 4 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 4 commits2026-07-17: 5 commits2026-07-18: 4 commits2026-07-19: 3 commits2026-07-20: 2 commits2026-07-21: 1 commit2026-07-22: 4 commits2026-07-23: 3 commits2026-07-24: 11 commits2026-07-25: 8 commits2026-07-26: 3 commits2026-07-27: 1 commit2026-07-28: 2 commits2026-07-29: 3 commits2026-07-30: 2 commits2026-07-31: 5 commits2026-08-01: 3 commits2026-08-02: 5 commits2026-08-03: 4 commits2026-08-04: 7 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 7 commits2026-08-09: 2 commits2026-08-10: 6 commits2026-08-11: 7 commits2026-08-12: 9 commits2026-08-13: 12 commits2026-08-14: 4 commits2026-08-15: 3 commits2026-08-16: 11 commits2026-08-17: 8 commits2026-08-18: 5 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 2 commits2026-08-23: 0 commits2026-08-24: 3 commits2026-08-25: 2 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 3 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 0 commits2026-09-06: 1 commit2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 1 commit2026-09-15: 0 commits2026-09-16: 1 commit2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits
422 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Actively maintained

    Pushed within 48 hours

  • Permissive license

    Apache-2.0

  • Repeat trending

    3 trending appearances

What native does

Native SDK fundamentally reimagines the desktop application authoring experience by completely removing the heavy, resource-intensive browser and WebView runtimes traditionally associated with web technologies. It allows developers to construct highly expressive UIs using simple declarative markup within `.native` files, while writing their core business logic entirely in pure TypeScript. Crucially, at build time, the SDK compiles this TypeScript directly into native machine code and utilizes its own bespoke, highly optimized Zig engine to draw every single pixel directly into native OS windows. By decoupling the familiar web authoring model from the bloat of a JavaScript runtime, it delivers the freedom of web development with the extreme performance and tiny footprint of a true native binary.

Web developers and software engineers who desire the authoring simplicity of TypeScript and markup but require the extreme performance, tiny footprint, and deep system integration of true native desktop binaries.

  • Zero-Runtime Architecture: Completely eliminates WebViews, browsers, and embedded JavaScript runtimes from the final application binary to drastically shrink memory overhead.
  • Declarative Native Markup: Allows developers to structure complex UI layouts and bind state natively using highly expressive, HTML-like `.native` markup files.
  • TypeScript to Native Compilation: Compiles pure TypeScript business logic directly into raw native code at build time, ensuring state updates execute with absolute maximum performance.
  • Bespoke Zig Rendering Engine: Utilizes a custom-built, first-class Zig engine to physically draw every pixel into the OS window, guaranteeing deterministic cross-platform rendering.
  • Zero Configuration Builds: Ships with an ultra-streamlined CLI that requires absolutely zero complex build configurations to bootstrap, develop, and compile an application.

Where teams use it

Resource-Constrained Tooling

Developers utilize the SDK to build tiny, ultra-fast system utilities like calculators or note-taking apps that start instantly and consume virtually no background memory.

Cross-Platform UI Development

Web engineers leverage their existing TypeScript knowledge to confidently author true native desktop applications without learning complex platform-specific APIs like AppKit or Win32.

High-Performance Data Visualization

Software teams deploy the framework to build data-heavy desktop dashboards that require extreme rendering performance without the UI thread blocking issues common in Electron apps.

Rapid Prototyping

Designers utilize the zero-configuration CLI and declarative markup to instantly spin up and iterate on highly responsive desktop app prototypes natively.

Getting started: npm install -g @native-sdk/cli && native init my_app

README

main branch

Native SDK

Vercel Labs Experiment npm version: @native-sdk/cli License: Apache-2.0 npm downloads per month: @native-sdk/cli

Native SDK is the complete toolkit for building native desktop applications.

Native SDK exists because expressive UI and native performance should not be competing goals. Developers often choose web-based runtimes because they offer freedom, speed and control over the product experience. But that freedom often comes with a heavy runtime. Native SDK keeps the expressive authoring model and replaces the runtime with native rendering.

Views are declarative markup in .native files, logic is plain TypeScript compiled to native code at build time — or Zig, first-class by choice — and Native SDK's own engine draws every pixel into real OS windows. No browser, no WebView, no JS runtime in the binary: Zig is how everything works, TypeScript and Native markup are how apps are authored.

The Soundboard example app rendered by the Native SDK engine: a music library with album cover art, search, and a playback bar
The Notes example app rendered by the Native SDK engine: a three-pane notes manager with folders, a note list, and an open note The Calculator example app rendered by the Native SDK engine: a finished calculation above a full keypad

Soundboard, Notes, and Calculator from examples/ — every pixel drawn by the Native SDK engine, captured through its deterministic reference renderer. The images follow your color scheme.

Quick start

Install the CLI:

npm install -g @native-sdk/cli

Create and run an app:

native init my_app
cd my_app
native dev

A native window opens with a working counter. The whole app is three files of truth — view, logic, manifest — and no build config. The view is src/app.native, a markup file that binds values and dispatches messages (the counter row at its heart):

<row gap="8" main="center" cross="center" grow="1">
  <button variant="secondary" on-press="decrement">-</button>
  <text>{count}</text>
  <button variant="primary" on-press="increment">+</button>
</row>

All logic lives in src/core.ts: a Model interface, a Msg union, and one pure update function — the only place state changes, plain TypeScript compiled to native code at build time:

export function update(model: Model, msg: Msg): Model {
  switch (msg.kind) {
    case "increment":
      return { ...model, count: model.count + 1 };
    case "decrement":
      return { ...model, count: model.count - 1 };
    case "reset":
      return { ...model, count: 0 };
  }
}

Prefer Zig for the core? native init my_app --template zig-core scaffolds the same app with src/main.zig — same loop, same runtime, first-class by choice.

Edit src/app.native while native dev runs and the window updates in place, keeping your state. native dev --core runs the TypeScript core under node for instant logic checks, native check validates the core and every view in milliseconds without building, and native build produces an optimized release binary.

Read the full guide at native-sdk.dev/quick-start.

What you get

Beautiful by default — Great software should not start from a blank slate. The built-in component catalog — buttons, tabs, text fields, dialogs, charts, virtual lists, and more — ships with considered typography, spacing, and color, so the app native init scaffolds already looks intentional the first time its window opens.

Customizable by design — Your app should have its own identity, not ours. Styling is design tokens end to end: color, radius, and typography resolve by name, re-resolve live when the theme changes, and can be replaced wholesale — examples/soundboard and examples/deck are the same music player separated only by tokens and a chrome pass.

Native from the start — Every interface is rendered without a browser or WebView. The engine draws into real OS windows while scroll physics, menus, dialogs, the tray, and text input stay with the operating system, and markup compiles into the executable at build time, so a release build carries no parser or interpreter — the scaffolded counter app builds to a single binary a few megabytes small.

Predictable state — State changes should be explicit, inspectable and easy to reason about. Events produce messages, messages update state, and state renders the interface; markup can bind and dispatch but never mutate. The loop is so deterministic that native automate record journals a session and replay reproduces it headlessly, verified frame by frame against state fingerprints.

Simple authoring — Interfaces should be easy to read, easy to write and easy to generate. Views are elements, flex layout, {bindings}, and expressions like selected="{f == filter}", and native check validates every view against your app's actual Model and Msg — bindings, iterables, message tags — in milliseconds, with file:line:column errors that teach.

AI is part of the workflow — Native SDK is designed for a world where humans and AI agents build software together. Every app embeds an automation server, so any agent can read accessibility snapshots, drive widgets, assert on live state, and take deterministic screenshots of the running window; accessibility findings are machine-checked in native check; and the CLI ships the agent skills that teach all of it (native skills list).

Examples

The apps pictured above live in examples/, most as zero-config projects with a manifest plus src/ and no build files, run straight from their directory with native dev. Many examples predate the current app.json default and retain app.zon; both formats have the same capabilities. Start with the TypeScript examples when learning the primary authoring path. The -ts suffix on soundboard-ts and system-monitor-ts is historical because those apps are ports kept beside older Zig originals. Chatbot is TypeScript-only and follows the unsuffixed naming used by new apps created with native init.

Example What it shows
chatbot TypeScript + Native markup end to end: modules, a text editor, streaming fetch effects, and replay-safe configuration.
soundboard-ts The full music-player showcase in TypeScript + Native markup: audio, search, assets, timers, and context menus.
system-monitor-ts A live process monitor in TypeScript + Native markup: subprocess effects, tables, charts, and timers.
calculator A complete small app: markup keypad, keyboard input, chrome shortcuts, theming.
notes Persistence through the effects channel: debounced writes, restore on boot, dialogs, search.
soundboard Album grid with decoded cover art, context menus, timers, and a custom theme.
deck The soundboard player rebuilt as a dense hardware chassis: two windows, same widgets, different tokens.
feed A 100,000-row list, virtualized with runtime-owned scrolling.

The unsuffixed showcase apps above predate the TypeScript default and retain their Zig cores as first-class alternative implementations. The full catalog in examples/README.md also covers guarded OS capabilities, GPU surfaces, WebView composition, web-frontend shells, and the iOS/Android embed hosts.

Platforms

macOS is the primary development platform and carries the deepest support: Metal presentation, OS scroll physics, native context menus, app menus, tray, and dialogs. Linux runs the full showcase through the deterministic software renderer in real windows, with pointer, keyboard, scroll, native context menus, IME composition, and HiDPI; Windows runs on a Win32 host with native context menus and IME composition and is exercised in CI, including real input injection. Mobile support is experimental: iOS is simulator-proven through the embed library and Android cross-compiles with the full embed ABI, but APIs and tooling on both are still evolving — desktop is the mature surface. WebView surfaces coexist on every desktop platform. The platform support matrix documents exactly what each host supports today.

Documentation

The full documentation is at native-sdk.dev.

  • Quick Start — install to a running, tested app
  • Philosophy — the six principles behind the toolkit
  • App Model — the model/message/update loop, wiring, and hot reload
  • TypeScript Cores — the app-core subset, effects, subscriptions, and the node dev loop
  • Native UI — every element, attribute, and pattern in the markup
  • Components — the component catalog
  • State & Data Flow — derive-don't-store, bindings, and text editing
  • Testing — full-loop UI tests, headless on any machine
  • Automation — snapshots, widget driving, record/replay, screenshots
  • Capabilities — guarded OS services: notifications, clipboard, dialogs, credentials
  • Packaging — from binary to distributable app
  • Platform Support — what each host supports today

Contributing

Native SDK is pre-1.0: APIs still move, and the toolkit is evolving quickly. Bug reports and focused pull requests are welcome — for larger changes, open an issue first so the design can be discussed. See CONTRIBUTING.md for the development setup and local checks.

License

Apache-2.0

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

43 total
  1. v0.10.1v0.10.1Aug 24, 20261.1K downloads

    ### Bug Fixes - **Complete macOS distribution signing**: Developer ID packages now require an explicit secure timestamp, can notarize through a `notarytool` Keychain profile, and staple and validate both the app and final signed DMG before updater archives are created. ### Contributors - @ctate

  2. v0.10.0v0.10.0Aug 24, 202655 downloads

    ### New Features - **Native macOS app updates**: Apps can publish Ed25519-signed update feeds that verify downloads, atomically replace and relaunch the installed bundle, roll back safely on failure, and integrate with new manifest settings plus CLI key-generation, feed-signing, and updater-package commands (#398). ### Bug Fixes - **Accurate macOS text baselines**: AppKit text rendering now aligns each resolved font by its ascent, preserves fallback ink headroom, and keeps measured and rect-based layouts consistent (#396). ### Improvements - **Updated compiler integration**: ScriptC advances to 0.0.35 with refreshed compiler-surface calibration, generated contracts, and synchronized package metadata (#395). ### Contributors - @ctate - @sepehr-safari

  3. v0.9.5v0.9.5Aug 18, 2026507 downloads

    ### New Features - **JSON manifests by default**: New TypeScript, Zig, web, full, and ejected apps now scaffold with `app.json`, backed by full parsing, discovery, build conversion, validation, vendoring, a published versioned schema, and seamless `app.zon` fallback for existing projects (#385). - **Registered-image source cropping**: Canvas image options and Native markup can now select atomic source rectangles from registered images for texture-atlas rendering, with schema, compiler, validation, documentation, and sampling-bleed coverage (#390). ### Bug Fixes - **Reliable installed TypeScript toolchains**: Core and service builds now resolve ScriptC across nested, hoisted, and global sibling npm layouts, generate the complete SQLite SDK module family, and validate library imports against their actual directories (#389). ### Improvements - **Focused schema hosting**: `schema.native-sdk.dev` now serves only the versioned app schema and its current-version alias, redirecting every non-schema route to the main Native SDK site (#388). ### Contributors - @ctate

  4. v0.9.4v0.9.4Aug 18, 202690 downloads

    ### New Features - **Model-driven window restore policies**: TypeScript apps can now declare whether each model-driven window restores saved geometry or opens fresh, including center-on-primary placement, with matching defaults, validation, runtime forwarding, tests, and documentation (#381). ### Improvements - **Faster, more predictable iterative rebuilds**: Generated core and service ABI artifacts now change only when their contents do, markup and app code compile into independently cached objects, SDK module edits invalidate the right inputs, and rebuild diagnostics expose phase timing, memory use, and cache decisions across platforms (#382). - **Updated TypeScript compiler integration**: ScriptC advances to 0.0.33 with published compile-cache bootstrapping, explicit development and release library profiles, synchronized compiler-surface artifacts, and Node 24 throughout the TypeScript build and CI toolchain (#384). ### Contributors - @ctate

  5. v0.9.3v0.9.3Aug 17, 202679 downloads

    ### New Features - **Model-driven TypeScript theme state**: Zero-config TypeScript apps can now derive the built-in pack, color scheme, and accent from committed model state while preserving manifest fallback, live system accessibility settings, deterministic replay, and the existing `themePack` helper (#378). - **Platform-correct line deletion**: Command+Backspace on macOS now deletes to the start of a field or logical textarea line across every editable canvas control, with matching TypeScript text helpers, controlled-state behavior, undo, and replay (#377). ### Bug Fixes - **Precise macOS file-drop routing**: AppKit drops now retain labeled canvas and WebView targets with top-left, view-local coordinates, while unlabeled window regions fall back to content coordinates (#374). - **Manifest menus in generated runners**: Zero-config TypeScript and Zig-core apps now load `app.zon` commands, shortcuts, and menus consistently in live and replay runners, including ejected-runner fallbacks (#376). - **Large TypeScript message unions compile reliably**: Generated shims now derive comptime scan quotas from message shape and identifier size, allowing wide unions to compile across persi

Code frequency

additions and deletions
+348.2K-348.2KWeek of 2026-05-03: +36,998 linesWeek of 2026-05-03: -399 linesWeek of 2026-05-10: +9,624 linesWeek of 2026-05-10: -2,362 linesWeek of 2026-05-17: +0 linesWeek of 2026-05-17: -0 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +28,286 linesWeek of 2026-06-21: -1,700 linesWeek of 2026-06-28: +96 linesWeek of 2026-06-28: -53 linesWeek of 2026-07-05: +347,477 linesWeek of 2026-07-05: -22,364 linesWeek of 2026-07-12: +84,003 linesWeek of 2026-07-12: -1,966 linesWeek of 2026-07-19: +98,284 linesWeek of 2026-07-19: -2,975 linesWeek of 2026-07-26: +37,363 linesWeek of 2026-07-26: -20,006 linesWeek of 2026-08-02: +19,330 linesWeek of 2026-08-02: -32,325 linesWeek of 2026-08-09: +348,161 linesWeek of 2026-08-09: -11,198 linesWeek of 2026-08-16: +13,283 linesWeek of 2026-08-16: -1,836 linesWeek of 2026-08-23: +2,688 linesWeek of 2026-08-23: -218 linesWeek of 2026-08-30: +0 linesWeek of 2026-08-30: -0 linesMay 3, 2026Aug 30, 2026
+1M lines added, -97.4K removed over the last year.

Commits per week

last 52 weeks
1720Week of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 19 commitsWeek of 2026-05-10: 35 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 172 commitsWeek of 2026-06-28: 1 commitsWeek of 2026-07-05: 19 commitsWeek of 2026-07-12: 22 commitsWeek of 2026-07-19: 32 commitsWeek of 2026-07-26: 19 commitsWeek of 2026-08-02: 23 commitsWeek of 2026-08-09: 43 commitsWeek of 2026-08-16: 26 commitsWeek of 2026-08-23: 5 commitsWeek of 2026-08-30: 3 commitsWeek of 2026-09-06: 1 commitsWeek of 2026-09-13: 2 commitsWeek of 2026-09-20: 0 commitsSep 28, 2025Sep 20, 2026
422 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 2 commitsSun 1:00 — 1 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 1 commitsSun 9:00 — 1 commitsSun 10:00 — 1 commitsSun 11:00 — 0 commitsSun 12:00 — 1 commitsSun 13:00 — 0 commitsSun 14:00 — 0 commitsSun 15:00 — 2 commitsSun 16:00 — 3 commitsSun 17:00 — 3 commitsSun 18:00 — 1 commitsSun 19:00 — 3 commitsSun 20:00 — 1 commitsSun 21:00 — 4 commitsSun 22:00 — 2 commitsSun 23:00 — 4 commitsMon 0:00 — 0 commitsMon 1:00 — 1 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 3 commitsMon 9:00 — 1 commitsMon 10:00 — 2 commitsMon 11:00 — 1 commitsMon 12:00 — 4 commitsMon 13:00 — 3 commitsMon 14:00 — 3 commitsMon 15:00 — 2 commitsMon 16:00 — 0 commitsMon 17:00 — 1 commitsMon 18:00 — 2 commitsMon 19:00 — 3 commitsMon 20:00 — 0 commitsMon 21:00 — 7 commitsMon 22:00 — 0 commitsMon 23:00 — 3 commitsTue 0:00 — 1 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 1 commitsTue 8:00 — 2 commitsTue 9:00 — 2 commitsTue 10:00 — 2 commitsTue 11:00 — 0 commitsTue 12:00 — 0 commitsTue 13:00 — 4 commitsTue 14:00 — 3 commitsTue 15:00 — 1 commitsTue 16:00 — 1 commitsTue 17:00 — 5 commitsTue 18:00 — 3 commitsTue 19:00 — 3 commitsTue 20:00 — 2 commitsTue 21:00 — 1 commitsTue 22:00 — 2 commitsTue 23:00 — 0 commitsWed 0:00 — 4 commitsWed 1:00 — 6 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 3 commitsWed 9:00 — 5 commitsWed 10:00 — 3 commitsWed 11:00 — 3 commitsWed 12:00 — 4 commitsWed 13:00 — 4 commitsWed 14:00 — 5 commitsWed 15:00 — 2 commitsWed 16:00 — 1 commitsWed 17:00 — 2 commitsWed 18:00 — 2 commitsWed 19:00 — 3 commitsWed 20:00 — 2 commitsWed 21:00 — 11 commitsWed 22:00 — 17 commitsWed 23:00 — 13 commitsThu 0:00 — 23 commitsThu 1:00 — 15 commitsThu 2:00 — 16 commitsThu 3:00 — 25 commitsThu 4:00 — 12 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 2 commitsThu 8:00 — 1 commitsThu 9:00 — 0 commitsThu 10:00 — 5 commitsThu 11:00 — 5 commitsThu 12:00 — 4 commitsThu 13:00 — 8 commitsThu 14:00 — 8 commitsThu 15:00 — 1 commitsThu 16:00 — 1 commitsThu 17:00 — 1 commitsThu 18:00 — 2 commitsThu 19:00 — 0 commitsThu 20:00 — 0 commitsThu 21:00 — 3 commitsThu 22:00 — 3 commitsThu 23:00 — 2 commitsFri 0:00 — 2 commitsFri 1:00 — 1 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 1 commitsFri 8:00 — 2 commitsFri 9:00 — 4 commitsFri 10:00 — 2 commitsFri 11:00 — 0 commitsFri 12:00 — 2 commitsFri 13:00 — 2 commitsFri 14:00 — 1 commitsFri 15:00 — 1 commitsFri 16:00 — 1 commitsFri 17:00 — 7 commitsFri 18:00 — 10 commitsFri 19:00 — 4 commitsFri 20:00 — 6 commitsFri 21:00 — 6 commitsFri 22:00 — 1 commitsFri 23:00 — 2 commitsSat 0:00 — 5 commitsSat 1:00 — 4 commitsSat 2:00 — 3 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 1 commitsSat 10:00 — 0 commitsSat 11:00 — 3 commitsSat 12:00 — 3 commitsSat 13:00 — 5 commitsSat 14:00 — 7 commitsSat 15:00 — 2 commitsSat 16:00 — 1 commitsSat 17:00 — 2 commitsSat 18:00 — 1 commitsSat 19:00 — 1 commitsSat 20:00 — 1 commitsSat 21:00 — 2 commitsSat 22:00 — 1 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jul 9, 2026daily#11+5
May 10, 2026daily#22+154
May 9, 2026daily#6+237
  • lightpanda-io/browser

    Lightpanda: the headless browser designed for AI and automation

    35.8K stars · Zig

  • nullclaw/nullclaw

    Fastest, smallest, and fully autonomous AI assistant infrastructure written in Zig

    8.1K stars · Zig

  • nullclaw/nullhub

    Management console for the Null ecosystem — install, configure, and monitor AI agents, orchestration workflows, task pipelines, and system health

    1.8K stars · Zig