Snap has released Valdi as an open-source, cross-platform user-interface framework, presenting developers with a way to build iOS, Android and macOS interfaces from a shared TypeScript codebase while retaining platform-native views. The project is available through Snapchat’s public GitHub repository under the MIT License.
Valdi uses declarative TypeScript and TSX components, which its compiler converts directly into native interface elements. Snap says the design does not depend on web views or JavaScript bridges, two approaches often used to share interface code across operating systems. Instead, the framework generates native output and provides bindings connecting TypeScript with Kotlin, Objective-C and Swift. Developers can also reach platform APIs and third-party native libraries through modules written in languages including C++, Swift, Kotlin and Objective-C.
The public release is labelled beta despite a long internal history. Snap says Valdi has powered a large portion of its production applications for eight years, including critical features. The beta designation reflects the relative maturity of its public tooling and documentation, rather than a claim that the runtime is new. The project will leave beta when its maintainers are satisfied with the experience of developers using it outside Snap.
The framework’s performance features include a global pool that recycles native views, independent component rendering, a C++ layout engine and viewport-aware rendering that creates only visible views. Snap also lists native animations, gesture recognition, worker threads and a Flexbox layout system with right-to-left support. These are project claims supplied by the maintainer; the repository includes a benchmark example for developers who want to examine performance in their own environments.
Valdi’s development workflow emphasises short iteration times. It supports hot reload on mobile and desktop, TypeScript type checking, and debugging through Visual Studio Code, including breakpoints, variable inspection, performance profiling and heap dumps. A built-in testing framework covers component-level unit tests, while Bazel integration is intended to make builds incremental and reproducible.
Adoption does not require an application to be rewritten at once. Existing UIKit and Android view hierarchies can host Valdi components, and native views can be embedded inside Valdi layouts. That gives teams a route to introduce the framework feature by feature or use it for a complete interface.
The repository provides runnable examples for basic screens, navigation, shared state, benchmarking and an AI-driven dynamic interface. The project also publishes documentation, codelabs, an API reference and a component library. Its quick-start instructions install the Valdi command-line tool through npm, run an automated development setup and bootstrap a project before adding iOS or Android support. Xcode is listed as a prerequisite only for macOS development.


