LiveCode
LiveCode is a cross-platform rapid application development (RAD) environment that uses a high-level, English-like scripting language called LiveCode Script to enable the creation of native applications for desktop, mobile, and server platforms, as well as web applications via HTML5, including Windows, macOS, Linux, iOS, Android.[1] It features visual drag-and-drop tools for building user interfaces, live editing of running applications, and an extensible architecture with built-in support for multimedia, databases, and networking, allowing developers to write up to 90% less code than in traditional programming languages.[1] Designed for accessibility, LiveCode emphasizes ease of use, making it popular among educators, independent developers, small businesses, and enterprises for rapid prototyping and full-scale software development.[2]
Developed by LiveCode Ltd., a company based in Edinburgh, Scotland, the platform originated from earlier tools aimed at democratizing software creation, with the company founded in 1999 and the core development system first released in 2001 under the name Revolution.[3] Renamed LiveCode in 2010 to reflect its focus on live, interactive coding, it evolved into a comprehensive IDE supporting a single codebase for multi-platform deployment.[4] The scripting language, known for its readable and memorable syntax that mirrors natural language, draws from a legacy of over 25 years in making programming intuitive and efficient.[2][5]
LiveCode gained prominence for its role in education and indie development, with schools reporting doubled uptake in computer science courses using the tool, and applications built with it grossing over $100 million worldwide, including #1 best-sellers, games, productivity apps, and enterprise systems for Fortune 500 companies.[2] Although an open-source version was available from 2013 to 2021 to foster community contributions, maintenance challenges led to its discontinuation, shifting focus to commercial subscriptions starting at $36.67 per month (billed annually).[6][7] Today, it continues to support modern features like Android App Bundles, enhanced web rendering, and mobile widgets, positioning it as a versatile alternative for full-stack app development without platform-specific recompilation.[6]
History
Origins and Early Development
Runtime Revolution Ltd. was incorporated on October 13, 1999, in Edinburgh, Scotland, by Kevin Miller and a small team of developers with the goal of creating accessible cross-platform software tools.[8] The company, led by Miller as CEO, initially focused on building upon existing technologies to develop a modern rapid application development (RAD) environment.[9] This effort culminated in the release of the software known as Revolution in 2001, which served as an integrated development environment emphasizing ease of use for creating applications across multiple desktop platforms, including Windows, macOS, and Linux.[10]
Revolution's foundations trace back to earlier hypermedia and scripting technologies, particularly Apple's HyperCard, released in 1987, and its associated HyperTalk language from the late 1980s.[2] MetaCard, a commercial HyperCard clone developed by MetaCard Corporation and first commercially released in June 1992, provided the core engine for Revolution, with its MetaTalk scripting language—debuting around 1993—evolving into what would become LiveCode Script.[11] In July 2003, Runtime Revolution acquired MetaCard's technology and intellectual property, allowing full integration and further enhancement of the platform without reliance on the original vendor.[12]
From its inception, Revolution positioned itself as a direct successor to HyperCard, targeting non-programmers through an English-like scripting syntax that simplified complex tasks like GUI design and multimedia integration.[2] This approach enabled rapid prototyping and deployment of cross-platform applications, filling a gap left by HyperCard's discontinuation and the limitations of more traditional programming languages. Early versions prioritized desktop environments, supporting seamless development and execution on Windows, macOS, and Linux without requiring code recompilation for each platform.[13]
Key Milestones and Recent Updates
In 2010, the product formerly known as Runtime Revolution was renamed to LiveCode to better reflect its focus on live scripting and cross-platform development.[4] The company behind it, Runtime Revolution Ltd., underwent a rebranding to LiveCode Ltd. in March 2015, aligning its corporate identity more closely with the product's name.[4]
A significant shift occurred in April 2013 with the launch of the open-source LiveCode Community Edition (version 6.0), funded through a successful Kickstarter campaign that raised £493,795 from 3,342 backers to support educational access and community-driven enhancements.[14][15] This edition, licensed under GPLv3, facilitated free development until its discontinuation on August 31, 2021, with the release of version 9.6.4, after which maintenance ceased and the codebase was archived on GitHub.[6][16]
The introduction of HTML5 deployment in 2015 marked a major expansion for web-based applications, enabled by a 2014 crowdfunding campaign on the company's platform that met its $395,000 goal and raised approximately $400,000 to port the engine to browser environments.[17][18] Concurrently, the first developer preview of version 8.0, announced on March 12, 2015, introduced LiveCode Builder, a new C++-based language for creating custom widgets and extensions to integrate platform-specific APIs.[19]
Version progression continued with stable release 9.6.4 on August 31, 2021, coinciding with the Community Edition's end; this was followed by 9.6.5 RC-2 on October 25, 2021, adding Android App Bundle support for Google Play compliance.[6][20] In 2023, version 9.6.9 stable arrived on April 10, incorporating over 75 features, bug fixes, and security updates, including Android API 31 support and Xcode 14.2 compatibility. The LiveCode 10 series began with the stable release of version 10.0 on October 9, 2024.[21][22]
Recent updates in 2025 have focused on modern platform support and new tools. LiveCode Classic 10.0.1 stable was released on April 17, enabling iOS builds with any Xcode version from 12.4 onward.[23] Version 10.0.2 stable followed on June 13, with further refinements.[24] On August 21, 10.0.3 RC-1 introduced Android API 35 support, Xcode 15 compatibility, iOS 17 enhancements, and fixes for macOS Sonoma issues like menus and date/time controls.[25] On October 27, 2025, version 10.0.3 RC-2 was released, enhancing Google Play Store compliance with further Android API 35 support and bug fixes.[26] Additionally, LiveCode Create, a web-based IDE for cross-platform editing, advanced with developer preview 7 (DP-7) in June 2025 and DP-8 in August 2025, emphasizing deployment and datastore improvements.[24][25]
LiveCode Script
Core Syntax and Structure
LiveCode Script is a dynamically typed, object-oriented scripting language that belongs to the xTalk family of languages, which includes HyperTalk from Apple's HyperCard as a foundational influence.[27] This heritage gives it an English-like syntax designed for readability and accessibility, enabling developers to write procedural code with familiar constructs similar to those in languages like English prose or early multimedia scripting environments.[28] At its core, LiveCode Script operates on a message-passing paradigm, where the system sends messages in response to events—such as user interactions or system triggers—and scripts define handlers to process these messages.[29] For instance, a common event handler might respond to a mouse click with the structure on mouseUp ... end mouseUp, allowing the script to execute specific actions like updating interface elements or performing calculations.[30]
The basic structure of LiveCode Script revolves around attaching scripts to objects within a hierarchical, stack-based model, where stacks serve as containers for cards, and cards hold interactive elements like buttons, fields, and groups.[29] This object hierarchy defines the message path: when an event occurs, the message starts at the originating object and travels upward through parent objects (e.g., from a button to its card, then to the stack) until a handler intercepts and processes it, or it reaches the engine level. Scripts are written directly in the object's script editor and consist of handlers, commands, and control structures; for example, the put command assigns or outputs values to variables or containers, as in put "Hello" into field "Greeting", while set modifies object properties, such as set the text of [button](/page/Button) "Submit" to "Done". Control flow is managed through structures like repeat, enabling loops for iteration, as shown in this example for repeating an action three times:
repeat with i = 1 to 3
put "Iteration" & i into field "Log"
end repeat
repeat with i = 1 to 3
put "Iteration" & i into field "Log"
end repeat
[31]
Variables in LiveCode Script require no explicit declaration and can hold various data types, including numbers (integers or floating-point), strings (sequences of characters), arrays (associative collections indexed by keys), and lists (return- or comma-delimited sequences).[28] For example, a local variable might store a string like put "user input" into tName, while an array could map keys to values as put "red" into tColors["primary"].[32] Operators support arithmetic operations (e.g., + for addition, as in put 5 + 3 into tSum), string concatenation (&), comparisons (=, <), and logical evaluations (and, or). Unlike compiled languages, LiveCode Script executes interpretively, parsing and running code directly at runtime without a separate compilation phase, which facilitates rapid prototyping and live modifications during development.[33]
Advanced Language Features
LiveCode Script supports advanced data structures including arrays, which can be multidimensional or associative, allowing developers to manage complex datasets efficiently. Multidimensional arrays enable grid-like storage, such as a two-dimensional array for tabular data, while associative arrays use string keys for flexible indexing beyond numerical positions. Lists provide ordered collections for sequential data handling, and binary data support facilitates processing non-textual content like images or files directly in strings marked with the "*b" indicator. For pattern matching, the filter command integrates regular expressions to selectively process lines, items, or elements in containers, enabling operations like extracting email addresses from text via regex patterns such as [\w\.-]+@[\w\.-]+\.\w+.
Multimedia capabilities in LiveCode Script include built-in commands for handling images, audio, and video. The import command loads graphics into image objects from various formats, supporting bitmap pictures for visual elements. Audio playback is managed through the play command for sounds or the play file command for external audio files, with options to control rate and synchronization using properties like playRate. Video and animations leverage player objects, where commands like play video handle playback, pausing, and stepping through media clips.
Database integration is provided via the Database library, formerly known as revdb, which supports SQL operations across engines like MySQL, PostgreSQL, and SQLite. The revExecuteSQL command executes queries for inserts, updates, or deletes, while revDataFromQuery retrieves records into arrays, streamlining data persistence without external dependencies. Networking features encompass TCP/IP sockets opened with the open socket command for low-level connections and HTTP requests via the put command into URLs, which handles GET/POST operations with customizable headers. JSON and XML parsing are facilitated by built-in functions jsonEncode and jsonDecode (introduced in 2024 for faster engine-level performance) and dedicated libraries: the JSON Library offers additional capabilities for converting between LiveCode values and JSON strings, supporting UTF-8 encoding; the XML Library provides tree-based parsing with functions like revXMLCreateTreeFromFile for structured document handling.[34]
Error handling in LiveCode Script uses a try-catch construct with the try, catch, and end try keywords to trap execution errors and execute alternative code paths. Custom handlers can intercept errors via the errorDialog message or by locking error dialogs with lock error dialogs, allowing programmatic recovery without default UI interruptions. For modularity, custom functions and commands are defined as handlers within scripts, and libraries are created by designating stacks with start using to encapsulate reusable code across applications.
Development Environment
The integrated development environment (IDE) of LiveCode provides a visual stack editor centered around the Canvas Area, where developers design user interfaces by dragging and dropping widgets such as buttons, fields, and cards from the Tools Palette.[35] This drag-and-drop approach enables rapid prototyping of stack-based applications, with the Project Browser offering a hierarchical view for navigating and managing objects across cards and substacks.[35] Complementing the visual tools is an integrated script editor that supports syntax highlighting for keywords and variables, auto-indentation for code alignment, autocomplete suggestions for LiveCode Script elements, and real-time error checking to identify syntax issues during development.[36]
LiveCode's workflow emphasizes compile-free development, allowing developers to edit scripts or UI elements and immediately test changes in run mode without compilation steps, facilitating an iterative process of design, coding, and refinement.[1] The Property Inspector panel, accessible upon selecting an object, provides a dedicated interface for modifying attributes such as appearance (e.g., colors, fonts, positions), behavior (e.g., states like focused or disabled), and data bindings to variables or sources, with changes reflected instantly in previews.[37] For runtime debugging, tools like the Message Watcher monitor incoming messages to objects, while the Variable Watcher tracks global and local variable states during execution, enabling efficient troubleshooting without halting the application.
Prototyping is supported through built-in preview modes, including a simulator for desktop and mobile interfaces that launches the app in a live environment to test responsiveness and interactions across screen sizes. Version control integration with systems such as Git is possible through external tools or by exporting project elements manually for diffing and merging. Stack files, saved with the .livecode extension, use a binary format that ensures compatibility across all supported platforms, allowing seamless sharing and opening of projects without format conversion. As of November 2025, the primary IDE is LiveCode Create, which is in developer preview (version dp-8), while LiveCode Classic remains available for ongoing development and deployment.
Extension Development with LiveCode Builder
LiveCode Builder (LCB) is a specialized programming language introduced in LiveCode 8.0 in May 2016, designed to enable developers to create custom extensions for the LiveCode engine, including widgets and libraries that extend core functionality at the system level.[38] Unlike standard LiveCode Script, LCB emphasizes strict type handling, modular structure, and integration with native code, allowing for the development of high-performance components such as custom user interface elements or computational libraries.[39] This extensibility feature addresses limitations in scripting by permitting direct access to engine internals and external APIs, facilitating the creation of reusable, engine-embedded modules.[40]
The syntax of LiveCode Builder closely resembles LiveCode Script but incorporates systems-oriented enhancements for robustness and efficiency. It supports optional static typing for variables, parameters, and return values, with core types including Boolean, Integer, Real, String, Data, List, and Array, alongside a flexible any type for dynamic usage.[39] Modules form the building blocks, organized in reverse DNS naming conventions (e.g., com.example.myWidget), and contain public or private declarations for constants, types, variables, and handlers. Handlers define behavior with explicit input/output parameters (e.g., in, out, inout) and can bind to foreign functions in languages like C via the foreign handler syntax, enabling seamless integration with platform-specific libraries for tasks requiring low-level access.[39] For instance, a simple widget module might declare its type and implement core events like on create for initialization or on paint for rendering:
module community.livecode.example.simpleWidget
public type SimpleWidget
public handler SimpleWidget.onCreate()
// Initialization logic here
end handler
public handler SimpleWidget.onPaint(pSurface as [Canvas](/page/Canvas), pRect as [Rectangle](/page/Rectangle))
// Drawing code using the [canvas API](/page/API)
canvas.drawLine pSurface, point(0,0), point(100,100)
end handler
end module
module community.livecode.example.simpleWidget
public type SimpleWidget
public handler SimpleWidget.onCreate()
// Initialization logic here
end handler
public handler SimpleWidget.onPaint(pSurface as [Canvas](/page/Canvas), pRect as [Rectangle](/page/Rectangle))
// Drawing code using the [canvas API](/page/API)
canvas.drawLine pSurface, point(0,0), point(100,100)
end handler
end module
This structure ensures compile-time checks for type safety, reducing runtime errors in extension code.[39]
Developing extensions with LiveCode Builder involves writing code in .lcb files within the LiveCode IDE's Extension Builder tool, which provides templates, syntax highlighting, and compilation support. Developers declare the extension type (widget or library) and identifier at the module level, import necessary APIs (e.g., com.livecode.canvas for graphics or com.livecode.[engine](/page/Engine) for core interactions), and implement event handlers tailored to the extension's purpose, such as geometry changes or data exchange with LiveCode stacks.[40] The IDE compiles the LCB source to platform-agnostic bytecode bundled in a .livecodescript resource, which is then packaged into a .lce file for distribution and integration—extensions can be loaded dynamically into stacks via commands like widget add or installed globally through the Extension Store. Cross-compilation is supported across LiveCode's platforms (desktop, mobile, server), with the engine handling runtime execution, though foreign bindings may require platform-specific adjustments.[40] Testing occurs directly in the IDE by simulating the extension in a preview stack, allowing iterative refinement before final packaging.[40]
Common use cases for LiveCode Builder extensions include performance-critical applications where scripting alone is insufficient, such as implementing advanced data visualizations (e.g., interactive charts with real-time updates) or hardware integrations (e.g., custom sensor interfaces via native APIs). For compute-intensive tasks like 3D rendering, developers can create widgets that offload processing to bound C libraries, achieving native-like speeds while maintaining LiveCode's cross-platform deployment. Libraries extend non-visual functionality, such as optimized mathematical routines or database connectors not natively supported. These extensions enhance the engine's capabilities without altering core code, promoting a modular ecosystem for specialized needs.[40]
LiveCode supports a wide range of desktop operating systems for both running the integrated development environment (IDE) and deploying standalone applications. On macOS, the IDE and engine are compatible with versions from 10.9 (Mavericks) through 15.x (Sequoia), including native support for Apple Silicon M1 and later processors introduced in LiveCode 9.6.8 and continued in version 10. Recent updates in LiveCode 10 address specific compatibility issues, such as menu rendering and date/time item display on macOS Sonoma and later, with general support for Sequoia reported as of 2025 though some features may require workarounds.[41] For Windows, support extends to versions 7, 8.x, 10, and 11, with both 32-bit and 64-bit builds available, including 32-bit compatibility via the WoW layer on 64-bit systems. Linux compatibility covers major modern distributions requiring glibc 2.13 or later and GTK/GDK 2.24 or later for graphical interfaces, such as recent Ubuntu, Fedora, and Debian releases; various Unix variants, such as those based on BSD or Solaris, are also supported through the engine's Unix underpinnings. Additionally, LiveCode enables server-side scripting deployment on Linux and Unix-based servers without a graphical interface. The latest release, LiveCode 10.0.3 RC-2 (October 2025), includes enhancements for platform stability.[26]
For mobile platforms, LiveCode provides robust support for iOS and Android app development and deployment. iOS compatibility includes devices running up to iOS 18, with LiveCode 10.0.2 (April 2025) introducing support for iOS SDK 18.2 and Xcode 15 and later versions (from 12.4 onward for broader compatibility), allowing builds that meet Apple's App Store requirements as of 2025.[23] Android support in LiveCode 10.0.3 RC-2 (October 2025) targets API level 35 (Android 15), ensuring compliance with Google Play Store policies effective August 31, 2025, and includes updates to use Java 11 or later instead of requiring Java 8. Deployment to mobile platforms requires a Mac for iOS builds but supports Mac, Windows, and Linux hosts for Android.
Beyond traditional desktop and mobile, LiveCode extends to web and embedded environments. HTML5 deployment has been available since the first alpha release in August 2015, enabling standalone web applications that run in modern browsers without plugins, leveraging JavaScript integration for enhanced interactivity. Raspberry Pi devices are supported via Linux ARM builds, allowing both IDE operation (on compatible distributions) and standalone app deployment for embedded projects. A key advantage of LiveCode's platform support is that deployed applications are fully standalone, requiring no separate runtime or installation beyond the target OS, which simplifies distribution across all supported platforms.
LiveCode maintains strong backward compatibility, ensuring that stacks and scripts created in earlier versions (from 1.0 onward) can be opened, edited, and deployed without modification in current releases like version 10, preserving developer workflows over time. Version-specific updates, such as those in LiveCode 10 for macOS Sonoma menu fixes, iOS 18 support, and Android API 35 compliance, focus on enhancing stability and adherence to OS vendor requirements while avoiding breaking changes to core functionality.
Deployment and Distribution Options
LiveCode applications are built into standalone executables directly from the integrated development environment (IDE) by selecting the "Save as Standalone Application" option in the File menu, where developers configure settings such as the product name, file description, and target platform before generating the output.[42] These executables have a compact footprint, typically starting around 10-16 MB for basic applications, embedding the LiveCode engine and required resources without additional runtime dependencies.[43] For platforms requiring code signing, such as iOS, developers must integrate Apple provisioning profiles obtained from the Apple Developer Portal to enable distribution and device installation.[44]
Deployment formats include native binaries tailored to specific platforms: executable files (.exe for Windows, .app for macOS, binaries for Linux), APK packages for Android, and IPA files for iOS, allowing seamless execution on desktop and mobile devices.[42] For web-based applications, LiveCode supports HTML5 output, which compiles the app into JavaScript and HTML5-compatible code runnable in modern browsers without plugins.[45] Additionally, backend scripts can be deployed to servers using the LiveCode Server engine, supporting CGI processing, API middleware, and database interactions for web services.[46]
Distribution options encompass submission to major app stores like the Apple App Store and Google Play for native mobile apps, web hosting services for HTML5 builds, and direct sharing of self-contained desktop executables via downloads or installers.[47] LiveCode's commercial licensing model enables unlimited distribution without royalties or per-device fees, facilitating broad deployment for both personal and enterprise applications.[48]
Recent enhancements include LiveCode 10.0.1 (released April 2025), which removes Xcode version dependencies for iOS builds, allowing compatibility with any Xcode from version 12.4 onward to support iOS targets up to 18.[23] For Android, updates in LiveCode 10.0.3 RC-2 (October 2025) added support for API level 35 and improved JDK 11+ detection on Windows, ensuring compliance with Google Play Store requirements for new apps and updates targeting Android 15.[26]
Applications and Impact
Common Use Cases and Examples
LiveCode finds extensive application in educational environments, where its intuitive scripting enables the creation of interactive simulations and e-learning tools that teach computational thinking without requiring prior coding experience. At Brigham Young University, instructors used LiveCode in introductory programming courses for non-technical majors in fields like humanities, linguistics, and education as of 2015, allowing students to build custom applications tailored to their career needs, such as teaching aids or data analysis tools for research.[49][50] This approach has led to increased student engagement, with some participants advancing to advanced projects or altering their professional paths based on acquired skills.[50] Additionally, organizations like OneBillion.org have developed gamified educational apps with LiveCode, achieving 2 million downloads and ranking #1 on app stores while advancing learning outcomes by up to 18 months in six weeks for disadvantaged children.[51]
In business contexts, LiveCode supports the rapid development of database front-ends, interactive kiosks, and multimedia presentations, leveraging its cross-platform capabilities for efficient deployment. For example, ScreenSteps, a knowledge management platform built with LiveCode, serves companies from small businesses to Fortune 500 enterprises by enabling customizable training modules and documentation tools.[51] Similarly, KLM's flight booking system, powered by LiveCode, processes over 70,000 daily reservations for 28 million annual passengers, demonstrating its reliability in high-volume data handling and user interfaces.[51] These applications often include custom CRM systems or reporting tools, where LiveCode's English-like syntax accelerates prototyping and iteration for non-specialist developers.[51]
For mobile development, LiveCode excels in prototyping iOS and Android applications, particularly for data collection utilities and casual games, building on its heritage as a successor to HyperCard for card-based, stack-oriented user interfaces that facilitate quick visual iterations. The Gluggy app, developed for sole traders to manage invoices and expenses, was created rapidly with LiveCode to incorporate user feedback and deploy across platforms.[51] In gaming, Industrial Toys' Midnight Rises achieved over 600,000 downloads and top-5 App Store ranking within three months of development, highlighting LiveCode's efficiency for multimedia-rich mobile prototypes.[51]
A representative example of LiveCode's rapid application development strengths is a button script that dynamically builds a list from user input, showcasing how minimal code can handle events and update interfaces iteratively. In a stack with an input field named "InputField" and a list field named "ListField", the button's mouseUp handler might use the following script:
on mouseUp
put the text of [field](/page/Field) "InputField" into tNewItem
if tNewItem is not empty then
put tNewItem & return after the text of [field](/page/Field) "ListField"
put empty into [field](/page/Field) "InputField" -- Clear input for next entry
end if
end mouseUp
on mouseUp
put the text of [field](/page/Field) "InputField" into tNewItem
if tNewItem is not empty then
put tNewItem & return after the text of [field](/page/Field) "ListField"
put empty into [field](/page/Field) "InputField" -- Clear input for next entry
end if
end mouseUp
This code captures user-entered text on button click, appends it as a new line to the list field, and resets the input, enabling instant feedback and extension for more complex list management.[52][53]
Community, Licensing, and Limitations
LiveCode maintains an active user community primarily through its official forums at forums.livecode.com, which feature dedicated sections for beginners, advanced scripting discussions, documentation improvements, and tutorials, with 134,716 registered members and ongoing threads as of November 2025.[54] Tutorials and learning resources are hosted on livecode.com, including lessons and user-contributed examples that support both novice and experienced developers. Following the discontinuation of the free Community Edition on August 31, 2021, the platform shifted to a fully proprietary model, reducing open contributions but preserving legacy open-source access via livecode.org, where the final version (9.6.x) is archived on GitHub without further maintenance.[6][55]
Licensing for LiveCode operates on subscription-based tiers tailored to different users, including a Create/Standard plan at $36.67 per month per seat (billed annually) for in-house development, an Apps for Sale option with a 5% revenue share on earnings plus $36.67 per month per developer, and Education plans starting at $500 annually for up to 20 seats. A free trial is available for new users to test the platform. The model has been fully commercial since the 2021 end of open-source editions, though it originated from a successful 2013 Kickstarter campaign that funded the initial Community Edition release.[56][57][14][4][58]
Despite its strengths in rapid prototyping, LiveCode has limitations in performance for high-compute tasks, such as processing large datasets or complex graphics, where it can exhibit slowdowns compared to natively optimized languages like C++. These issues can be mitigated through LiveCode Builder extensions, which allow integration of C++ code or OS APIs for enhanced speed in demanding scenarios. The ecosystem remains smaller than that of mainstream languages like Java or Swift, with a niche user base limiting third-party libraries and community-driven tools. The discontinuation of the free edition has created a notable gap, as it previously fostered broader participation and contributions.[59][60][60][61]
LiveCode's English-like scripting enhances accessibility for non-coders entering app development, enabling quick prototyping without deep programming knowledge. However, advanced integrations, such as custom APIs or high-performance modules, present a steeper learning curve requiring familiarity with its stack-based architecture. In comparison, the 2023 no-code tool Xavvi, built on LiveCode and incorporating AI for natural language app generation, further reduces barriers for beginners while maintaining compatibility with LiveCode's code for hybrid workflows.[62][62][63][64]