Blog

News, tutorials, and deep dives into building native apps with Perry.

updaterdevtoolsrefactorcommunitymilestone

Auto-Update, a Live Inspector, and the Compiler That Halved Itself

Perry v0.5.306 → v0.5.359 in four days — 53 patch releases, ~30 issues closed, and three big things landed: perry/updater for desktop auto-update, a live inspector at localhost:7676, and a compiler refactor that shrank the four biggest files by 33–91%.

GCJSONperformancebenchmarksmilestone

Generational GC, Lazy JSON, and Benchmarks That Hold Up to Scrutiny

Perry v0.5.174 → v0.5.306 in three days, plus the GC and JSON work that landed alongside. The generational GC ships as default. The Small String Optimization ships as default. The JSON pipeline gets a lazy tape that lands at 75 ms median on validate-and-roundtrip — best in the dynamic-typing pack. The benchmarks page is rewritten with RUNS=11 median + p95 + σ, simdjson and AssemblyScript+json-as added as peers, and every weakness Perry has surfaced honestly.

npmdeveloper-experienceperformancewatch-modemilestone

npm Distribution, perry dev, and Winning Every Benchmark

Perry v0.5.80 → v0.5.174 in six days. @perryts/perry ships on npm for all seven supported platforms. perry dev adds watch-mode auto-recompile on top of an in-memory AST cache and on-disk per-module object cache. json_roundtrip closes its last gap — Perry now wins every benchmark against both Node.js and Bun.

performancellvmJSONGCservermilestone

Optimizing Everything: One Week, 68 Releases, and a 547x JSON Speedup

Perry v0.5.13 → v0.5.80 in seven days. JSON.parse closes a 547x gap to Node. mimalloc lands as the global allocator. Inline caches, shape transitions, typed buffer slots, i32-native bitwise ops, scalar replacement, and a native event loop that keeps Fastify and WebSocket servers alive.

compilersllvmcraneliftperformancemilestone

From Cranelift to LLVM: How Perry Got 24x Faster

Perry's backend migration from Cranelift to LLVM is finished. The initial cutover made benchmarks 70x slower — then six targeted optimizations brought Perry to 14/15 wins against Node.js, with up to 24.6x speedups.

tvOScross-compilationbillingWindowsmilestone

tvOS, Cross-Compile iOS from Linux, and Perry Login

Perry v0.4.24: tvOS as the 10th compilation target, cross-compile iOS and macOS from Linux via ld64.lld, perry login with usage-based billing, Windows UI overhaul, macOS notarization, and 120 commits in 5 days.

threadingi18nwatchOScompilermilestone

True Multi-Threading, Compile-Time i18n, and watchOS

Perry v0.4.0: real OS threads with compile-time safety, a zero-ceremony internationalization system for 30+ locales, watchOS as the 9th compilation target, audio and camera APIs, and a parallel compiler pipeline.

compilercross-compilationinfrastructuremilestone

Cross-Compile to Windows, iOS Game Loops, and 100% Test Parity

103 commits in one week: cross-compile to Windows from Linux via lld-link, iOS game loop support, crash reporting, a two-stage Hub build pipeline, and the self-hosting compiler hits 68/68 deterministic test parity.

distributiondocumentationWidgetKitmilestone

The Full Pipeline: Docs, Distribution, and WidgetKit

82 commits in one week: a 49-page documentation site, automated App Store and Play Store publishing, Homebrew and APT packages, native WidgetKit extensions from TypeScript, new widgets, http/https modules, and a self-hosting LLVM compiler.

ecosystemperry/uidatabasesinfrastructuremilestone

From Compiler to Ecosystem: React, Databases, and Cloud Builds

Perry grows from a compiler into a full ecosystem. perry/ui at the core, Prisma-compatible ORMs for MySQL/PostgreSQL/SQLite, universal push notifications, distributed builds with App Store publishing, and a React compatibility layer — all in one week.

UIcross-platformreleasemilestone

All Six Platforms, Full Feature Parity

20+ native UI widgets, a Canvas widget, Table views, system notifications, keychain access, multi-window support, and full feature parity across macOS, iOS, iPadOS, Android, Linux, and Windows — all from a single TypeScript codebase.

architectureperformancecompiler

Plugin Systems Are a Performance Tax

Plugin architectures trade performance for extensibility. But what if extensibility happened at build time instead of runtime? Compile-time composition gives you both — zero overhead, full flexibility.

compilerframeworksprogress

Compiling Hono, tRPC, and Strapi to Native Binaries

Perry now compiles three major TypeScript frameworks — Hono, tRPC, and Strapi — into native ARM64 executables. They compile in under a second, produce binaries under 2 MB, and run without crashes.

tutorialshowcasePry

Building Pry: A Native JSON Viewer in TypeScript

A walkthrough of building Pry — a native JSON viewer that compiles from TypeScript to a native ARM64 binary. No runtime, no web views.

architectureUIcross-platform

Cross-Platform Native UI from TypeScript

How Perry maps one TypeScript codebase to AppKit, UIKit, Android Views, GTK4, and Win32 — delivering truly native UI on every platform.

announcementcompilerTypeScript

Introducing Perry

Perry is a native TypeScript compiler written in Rust that compiles your TypeScript directly to standalone executables. No runtime, no Electron, no compromises.