Native desktop apps
with React and GPU rendering.

VeloxKit lets you build native desktop applications using React. No Electron, no WebView, no Rust required. Just components you already know.

50ms startup 20MB binary 120fps rendering
Get Started →View on GitHub
APP.TSX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { View, Text, Pressable, db } from 'veloxkit'
import { useState } from 'react'
 
export default function App() {
const notes = db.query(
'SELECT * FROM notes ORDER BY updated_at DESC'
)
const [active, setActive] = useState(notes[0]?.id)
 
return (
<View style={{ flex: 1, flexDirection: 'row' }}>
<View style={{ width: 240, borderRight: '1px solid #2A2A3A' }}>
{notes.map(note => (
<Pressable key={note.id} onPress={() => setActive(note.id)}>
<Text style={{ padding: 16 }}>{note.title}</Text>
</Pressable>
))}
</View>
<NoteEditor id={active} />
</View>
)
}

Performance

Why the numbers matter

50ms
Cold startup
V8 snapshot eliminates parse time. A pre-warmed heap ships inside the binary — no cold JIT on first launch.
20MB
Binary size
No bundled Chromium. A purpose-built V8 runtime and wgpu renderer fit in a fraction of what Electron ships.
120fps
GPU rendering
wgpu + Vello renders your UI directly to the GPU. The same pipeline handles 2D components and 3D Canvas.

Architecture

How it works

Architecture — click a layer to learn more

1
React Layer
Your application code
JSX componentsHooks & state@velox/router
2
Runtime
V8 + custom reconciler
V8 snapshotJS ↔ Rust bridgeCapability gating
3
GPU Pipeline
wgpu + Vello renderer
2D scene graphCanvas 3D120fps target
4
Shell
Native OS integration
Window managementSystem APIsAuto-updater

Comparison

Benchmark comparison

FrameworkCold StartupBinary SizeIdle MemoryRenderer
VeloxKit~50ms~20MB~18MBwgpu + Vello (native)
Tauri~80ms~6MB~25MBOS WebView
Electron~800ms~130MB~100MBChromium
Electrobun~200ms~55MB~45MBBun + WebView

Measured on Apple M2, macOS 14.5. Binary includes all dependencies. Last updated: 2025.

Full comparison: VeloxKit vs Electron vs Tauri vs Electrobun →


Capabilities

Everything built in

Local AI
Embed, generate, transcribe — on-device. No API key.
SQLite built-in
db.query() from any component. Migrations, FTS, vector search.
Capability system
Declare what your app can access. Nothing more.
Custom title bar
Full native window control. macOS traffic lights + Windows chrome.
Hot reload
Sub-100ms refresh on save. State preserved across reloads.
CDP debugger
Chrome DevTools (breakpoints, console, network) via the built-in CDP inspector.
Canvas 2D + 3D
GPU-accelerated drawing. Same wgpu pipeline for both.
Cross-platform
Windows, macOS, Linux from one codebase. ~20MB each.

Start building in minutes.

No Rust required.

npx velox-cli create my-app
Read the docs →