ISL is to web UI what LLVM IR is to compiled languages — a universal layer you inhale any component into, and exhale onto any platform.
LoginForm ; Authenticates a user session what Secure credential entry form why Gate access to authenticated areas in email string in password password out token maybe string out error maybe string effects io lifecycle idle to loading on submit loading to success on ok loading to idle on fail hazard brute-force ; Rate-limit login attempts hazard credential-exposure ; Never log passwords
LLVM solved this problem for compiled languages in 2003. Any language compiles to LLVM IR; LLVM IR targets any architecture. ISL brings the same idea to UI — N platforms × M platforms becomes N inhalers + M exhalers.
ISL captures what a component does — not how a specific framework implements it. That separation is what makes migration, generation, and verification possible.
Point ISL at an existing component in any supported framework. It parses the AST and lifts it into ISL IR — inputs, outputs, lifecycle, effects and all.
The IR is human-readable. Review it, fix the intent, add hazard declarations or invariants. This is your component's canonical truth.
Generate idiomatic, type-safe code for any target platform. No runtime shim. No wrapper components. Native framework code that looks hand-written.
Hazard declarations and lifecycle guards live in the IR. Every generated target inherits them — no platform-specific safety code to maintain separately.
ISL targets modern UI runtimes and legacy environments alike.