I build open-source frameworks that bring Python to native mobile and web UI and make code portable across language boundaries.
Repositories · Stars · Followers
My work centers on two related problems: writing UI in Python for platforms that don't expect it and moving code safely across language boundaries. PythonNative compiles declarative Python components to real UIKit and AndroidX views, Wybthon brings a signals-first reactive model to the browser through Pyodide, and WeaveFFI generates type-safe bindings for eleven languages from a single IDL. These are the projects I'm actively maintaining.
Build native Android and iOS apps in Python.
PythonNative is a cross-platform framework with a declarative, React-like component model: function components, hooks (use_state, use_effect, use_navigation), automatic reconciliation, and a pure-Python, Yoga-style flexbox engine. It compiles to real UIKit and AndroidX views via rubicon-objc and Chaquopy, with no JavaScript bridge in between. The CLI scaffolds projects, and pn run --hot-reload ships Fast Refresh out of the box.
Python · iOS / UIKit · Android / AndroidX · Chaquopy · rubicon-objc
Build interactive web apps in Python, no JavaScript required.
Wybthon is a client-side SPA framework powered by Pyodide. It uses a signals-first reactive model inspired by SolidJS: function components run once at mount, and embedded signal getters become reactive holes that update only the affected DOM node. The framework ships with a virtual DOM, client-side router, context API, forms with validation, flow-control primitives, error boundaries, Suspense, and a dev server with SSE-based hot reload.
Python · Pyodide · Signals · WebAssembly · SPA
Type-safe bindings for eleven languages from a single IDL.
WeaveFFI generates idiomatic packages for C, C++, Swift, Kotlin/Android, Node.js, WebAssembly, Python, .NET, Dart, Go, and Ruby from one YAML, JSON, or TOML definition. Every target speaks to the same stable C ABI, so adding a new platform is a code-gen change rather than a rewrite. The CLI handles validation, linting, diffing, formatting, IDL extraction from annotated Rust, and schema migration via weaveffi upgrade.
Rust · C ABI · IDL · Code generation · cargo