Skip to content

Repository files navigation

🚀 PicoTS

Next-Generation TypeScript-Native Desktop Framework (Drop-in Electron Replacement)

npm version CI Status Website License: MIT

PicoTS is an ultra-lightweight desktop application framework that allows developers to build sub-megabyte (< 700 KB), zero-dependency native desktop applications using 100% TypeScript from end to end.

It eliminates the 150MB+ bundle size and high memory bloat of Electron while eliminating the steep Rust learning curve of Tauri.


✨ Key Highlights

  • ⚡ Sub-Megabyte Binaries: Compiles full React 19 + Tailwind apps into a single standalone executable (< 700 KB).
  • 🔄 Drop-In Electron Replacement: Standard BrowserWindow, app, ipcMain.handle(), ipcRenderer.invoke(), dialog, clipboard, shell, tray, Menu.
  • 🔒 Zero-HTTP In-Memory IPC: No open ports, no localhost network servers, no firewall prompts.
  • 🚀 < 0.08ms Latency: Direct in-memory Windows COM / WebKit message passing.
  • 🎨 100% TypeScript: Write standard TypeScript for both your desktop UI and native backend logic.
  • 🖥️ Hardware-Accelerated WebView: Uses OS-native Microsoft Edge WebView2 on Windows and WebKit on macOS/Linux.
  • 🪟 Full Native Desktop Suite: Built-in System Tray with Context Menus, File Picker Dialogs, Windows Toast Notifications, and Native Clipboard.

📊 Comparison Matrix

Metric Electron Tauri PicoTS
Backend Language JavaScript / TypeScript Rust (Steep Learning Curve) 100% TypeScript
Backend Runtime Node.js + V8 (~150MB) Native Rust Native Machine Code (ScriptC AOT)
UI Engine Bundled Chromium (~120MB) OS WebView OS WebView (WebView2 / WebKit)
Binary Size ~150 MB – 200 MB ~5 MB – 15 MB < 1 MB (440 KB – 670 KB)
Cold Startup 2.0s – 4.0s 0.3s – 0.5s < 0.1s (Instant)
Network Stack HTTP / Mojo Sockets Custom URI (ipc://) Zero-HTTP / Direct COM Memory
IPC Latency ~0.5 ms ~0.3 ms < 0.08 ms
Learning Curve Low High (Requires Rust) Zero (Standard TypeScript)

📦 Quickstart

1. Create a New App

# React 19 + TailwindCSS Starter (Recommended)
bunx @picots/create my-app --template react
# or
npx @picots/create my-app --template react

# Vanilla TypeScript Starter
bunx @picots/create my-app --template vanilla

2. Development Mode (with Instant Vite HMR)

cd my-app
bun install
bun run dev

3. Build Production Single Executable

bun run build
# Outputs dist/my-app.exe (< 700 KB standalone executable)

🧩 Monorepo Structure

  • @picots/core: The developer-facing TypeScript Desktop Runtime SDK (BrowserWindow, ipcMain, ipcRenderer, etc.).
  • @picots/cli: The master developer CLI (picots dev, picots build).
  • @picots/create: Scaffolding starter tool (bunx @picots/create, npx @picots/create).
  • @picots/vite-plugin: Official Vite HMR plugin for React, Vue, and Svelte.
  • @picots/webview: Native cross-platform WebView host engine.
  • examples/starter-app: Ready-to-run React 19 + Tailwind reference application.

🏛️ How It Works (Under the Hood)

┌────────────────────────────────────────────────────────────────────────┐
│                          PicoTS Application                            │
│                               (< 700 KB)                               │
│                                                                        │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │             Native Frameless Window Host (HWND/Cocoa/GTK)      │   │
│   │                                                                │   │
│   │   ┌───────────────────────────┐    ┌───────────────────────┐   │   │
│   │   │     Renderer Process      │    │     Main Process      │   │   │
│   │   │  (React / Vue / Webview)  │    │  (Compiled TypeScript)│   │   │
│   │   └─────────────┬─────────────┘    └───────────▲───────────┘   │   │
│   │                 │                              │               │   │
│   │                 └─── Direct In-Memory COM ─────┘               │   │
│   │                      IPC (< 0.08ms latency)                    │   │
│   │                      Zero HTTP / Zero Ports                    │   │
│   └────────────────────────────────────────────────────────────────┘   │
└────────────────────────────────────────────────────────────────────────┘

📚 In-Depth Documentation


🤝 Community & Contributing

We welcome contributions! Please see our:


📄 License

MIT © p2pdops

About

⚡ Build ultra-lightweight desktop apps in 100% TypeScript with native OS WebViews, zero-HTTP IPC, and sub-megabyte binaries.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages