vercel-labs/nativePublic

Toolkit for building native desktop apps

AI summary: A comprehensive framework for building high-performance native mobile applications using web technologies.

Stars
7.2K
+28 today
Forks
285
Watchers
20
Open issues
51
Open PRs
52
Contributors
~3
Commits
324
Branches
98

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

Star history

since Jul 5, 2026
02K4K6KJul 2026Jul 2026Jul 2026Aug 2026
7.2K stars as of Aug 6, 2026, tracked back to Jul 5, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-03: 0 commits2025-08-04: 0 commits2025-08-05: 0 commits2025-08-06: 0 commits2025-08-07: 0 commits2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-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: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
309 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Breakout launch

    7,232 stars in 91 days

  • Actively maintained

    Pushed within 48 hours

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

What native does

This project bridges the gap between web development and native mobile app creation by providing a sophisticated runtime environment. It allows developers to build truly native iOS and Android applications utilizing familiar web technologies like React and modern JavaScript. Unlike traditional web views, it compiles components directly to native UI elements, ensuring smooth animations, native gesture handling, and access to device-specific APIs. The architecture abstracts away platform differences, offering a unified development experience that maintains the speed and feel of applications written in Swift or Kotlin.

Designed for web developers and React engineers looking to transition into mobile development. It requires familiarity with modern frontend frameworks but abstracts away the need to learn Objective-C, Swift, or Java.

  • Native Component Compilation: Translates web components into native iOS and Android UI elements.
  • Unified Codebase: Write once using React and deploy seamlessly to both major mobile platforms.
  • Direct API Access: Provides direct hooks into device hardware like cameras, GPS, and sensors.
  • High-Performance Rendering: Utilizes optimized rendering pipelines to eliminate web view lag.
  • Hot Module Replacement: Supports instant code updates during development for rapid iteration.

Where teams use it

Cross-Platform Mobile Apps

Teams wanting to ship apps to both iOS and Android without maintaining two separate codebases.

Web-to-Mobile Migration

Companies leveraging existing web development teams to build native mobile experiences.

Performance-Critical UIs

Applications requiring complex animations and smooth scrolling that typical hybrid apps struggle with.

Rapid Mobile Prototyping

Quickly iterating on mobile designs using familiar React tooling and fast refresh capabilities.

Getting started: npm install -g @vercel/native-cli && native init my-app

README

main branch

Native SDK

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 — app.zon plus src/, no build files — run straight from their directory with native dev.

Example What it shows
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 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

Releases and announcements

27 total
  1. v0.6.3v0.6.3Jul 29, 20269 downloads

    ### Bug Fixes - **Native textarea editing shortcuts**: Up/Down now moves or extends the caret across visual lines, Command+Left/Right uses the current line boundary even through unbroken soft wraps, Command+Up/Down reaches the document boundary, and Command+Z / Command+Shift+Z provides bounded per-editor undo and redo from either the keyboard or macOS Edit menu while keeping controlled `TextBuffer` models synchronized. - **Textarea indentation**: spaces typed at the start of an empty line now remain visible and advance the caret under word wrapping. - **Textarea pointer selection**: Shift-click now extends the selection from the existing caret instead of replacing it. - **Textarea line endings**: caret movement, deletion, and controlled selections now treat CRLF line endings as one indivisible boundary. ### Contributors - @ctate

  2. v0.6.2v0.6.2Jul 29, 202628 downloads

    ### New Features - **Reliable desktop overlay windows**: window declarations and runtime creation now support transparent, always-on-top, click-through, and passive-show presentation applied before first visibility; canvas windows reveal after their first alpha-correct present without stealing focus, fall back to a late reveal if rendering wedges, and Windows composites multiple canvas layers while rejecting child surfaces its layered presenter cannot display. - **Honest backend constraints**: Linux main WebViews inherit transparent-window alpha, macOS Chromium rejects transparent windows because windowed CEF content cannot supply alpha, and transparent Windows windows require chromeless chrome with no application menu because the layered compositor cannot capture Win32 non-client pixels. - **Resizable transparent Windows windows**: the layered presenter keeps the nearly invisible system resize frame pointer-targetable without filling intentional alpha-zero regions in the client. - **Hybrid overlay lifecycle**: canvas-only overlay windows stay free of implicit main WebViews in mixed WebView scenes and across hot reloads, while passive Linux windows restore from minimization witho

  3. v0.6.1v0.6.1Jul 26, 202631 downloads

    ### Bug Fixes - **Layered macOS cursors**: GPU surfaces now yield their cursor regions to higher-layer embedded webviews, so links, selectable text, and canvas widgets use the correct cursor in mixed canvas/webview windows such as Workbench. - **Pointer-selected text edits**: editable fields now send pointer caret and selection changes through `on-input`, so model-owned text buffers delete or replace the highlighted span instead of editing at a stale caret. ### Contributors - @ctate

  4. v0.6.0v0.6.0Jul 25, 202627 downloads

    ### New Features - **The external-source channel — `fx.openChannel`, TEA subscriptions done our way**: apps with long-lived external sources (sockets, file watchers, app-managed worker threads) get a first-class, journaled way to wake the UI loop and produce a Msg — no more timer-polling a shared queue. `fx.openChannel(.{ .key, .on_event, .max_pending? })` returns a THREAD-SAFE `ChannelHandle` whose `post(bytes)` stages into a per-channel non-lossy FIFO, wakes the host, and delivers one `.data` event Msg per accepted post on the next drain (bytes in drain scratch, bounded at `max_effect_channel_bytes`); `fx.closeChannel(key)` flushes the staged backlog and delivers exactly one `.closed` terminal with final drop totals. Channels share the keyed families' one key space — occupied from open until close delivers — and never fail from the caller's view: a duplicate occupied key or a full table answers with one `.rejected` event. - **Back-pressure is part of the contract, and the post's answer names it**: `post` returns a `ChannelHandle.PostResult` — `.accepted`, `.dropped_full` (staging FIFO full: transient, skip and keep producing), `.dropped_oversized` (bytes over the post bound: a

  5. v0.5.4v0.5.4Jul 21, 202636 downloads

    ### New Features - **`Cmd.imageLoad` — dynamic images, the first full media pipeline**: apps load images at runtime from disk or the network by a model-owned ImageId, the effect executor resolves the audio cascade's source order (local path first, then a verified content-addressed cache entry under `<caches>/images/`, then the network with an atomic cache install behind it), decodes through the platform codec into the existing registered-image storage, and exactly ONE result Msg comes back — `loaded` with the decoded width/height, or one honest failure class from the same vocabulary the direct registration API raises (`decode_failed`, `too_large`, `registry_full`, `unsupported`, `alloc_failed` — the host refused the memory the registration needed, resource exhaustion rather than corrupt bytes — the fetch taxonomy, `http_status` with the status carried through). - **TS tier first-class**: `Cmd.imageLoad(id, { path?, url?, cachePath?, expectedBytes? }, { event })` with a five-field result arm matched by name (`id`/`state`/`width`/`height`/`status` — `id` echoes the requested ImageId so concurrent loads sharing one arm stay distinguishable; the fifteen-member `ImageState` union chec

Commits per week

last 52 weeks
1720Week of 2025-08-03: 0 commitsWeek of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek 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: 9 commitsAug 3, 2025Jul 26, 2026
309 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 — 0 commitsSun 9:00 — 1 commitsSun 10:00 — 1 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 0 commitsSun 14:00 — 0 commitsSun 15:00 — 0 commitsSun 16:00 — 0 commitsSun 17:00 — 0 commitsSun 18:00 — 0 commitsSun 19:00 — 2 commitsSun 20:00 — 0 commitsSun 21:00 — 1 commitsSun 22:00 — 2 commitsSun 23:00 — 1 commitsMon 0:00 — 0 commitsMon 1:00 — 0 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 — 0 commitsMon 9:00 — 1 commitsMon 10:00 — 1 commitsMon 11:00 — 0 commitsMon 12:00 — 0 commitsMon 13:00 — 2 commitsMon 14:00 — 2 commitsMon 15:00 — 0 commitsMon 16:00 — 0 commitsMon 17:00 — 0 commitsMon 18:00 — 1 commitsMon 19:00 — 2 commitsMon 20:00 — 0 commitsMon 21:00 — 5 commitsMon 22:00 — 0 commitsMon 23:00 — 0 commitsTue 0:00 — 0 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 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 0 commitsTue 11:00 — 0 commitsTue 12:00 — 0 commitsTue 13:00 — 2 commitsTue 14:00 — 1 commitsTue 15:00 — 1 commitsTue 16:00 — 1 commitsTue 17:00 — 4 commitsTue 18:00 — 1 commitsTue 19:00 — 1 commitsTue 20:00 — 1 commitsTue 21:00 — 0 commitsTue 22:00 — 0 commitsTue 23:00 — 0 commitsWed 0:00 — 4 commitsWed 1:00 — 4 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 — 4 commitsWed 10:00 — 3 commitsWed 11:00 — 3 commitsWed 12:00 — 3 commitsWed 13:00 — 3 commitsWed 14:00 — 4 commitsWed 15:00 — 2 commitsWed 16:00 — 0 commitsWed 17:00 — 0 commitsWed 18:00 — 2 commitsWed 19:00 — 1 commitsWed 20:00 — 1 commitsWed 21:00 — 10 commitsWed 22:00 — 17 commitsWed 23:00 — 12 commitsThu 0:00 — 23 commitsThu 1:00 — 13 commitsThu 2:00 — 15 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 — 5 commitsThu 14:00 — 5 commitsThu 15:00 — 1 commitsThu 16:00 — 0 commitsThu 17:00 — 0 commitsThu 18:00 — 1 commitsThu 19:00 — 0 commitsThu 20:00 — 0 commitsThu 21:00 — 2 commitsThu 22:00 — 2 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 — 1 commitsFri 9:00 — 2 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 — 5 commitsFri 18:00 — 9 commitsFri 19:00 — 3 commitsFri 20:00 — 4 commitsFri 21:00 — 6 commitsFri 22:00 — 1 commitsFri 23:00 — 2 commitsSat 0:00 — 4 commitsSat 1:00 — 3 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 — 3 commitsSat 14:00 — 3 commitsSat 15:00 — 0 commitsSat 16:00 — 0 commitsSat 17:00 — 1 commitsSat 18:00 — 0 commitsSat 19:00 — 1 commitsSat 20:00 — 0 commitsSat 21:00 — 2 commitsSat 22:00 — 0 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jul 9, 2026daily#11+5
  • lightpanda-io/browser

    Lightpanda: the headless browser designed for AI and automation

    33.6K stars · Zig

  • nullclaw/nullclaw

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

    8K stars · Zig

  • nullclaw/nullhub

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

    2K stars · Zig