FlowScript 0.1: A Semantic Language for Apps
Erland Kjensli has released FlowScript 0.1 as an experimental draft on GitHub to describe app semantics before coding begins.

Stock photo for illustration only, not from the actual event
- FlowScript 0.1 is a semantic language for describing apps pre-implementation.
- It strictly separates hierarchy, navigation, states, and presentation.
- Designed for syntactic simplicity while maintaining high semantic strictness.
- Currently available as an experimental working draft on GitHub for community feedback.
Software architecture and application modeling often face complex challenges when trying to map out a system before writing code. To address this, Erland Kjensli has introduced FlowScript 0.1, an experimental project serving as a semantic language designed to capture the structural model and behavior of applications in a compact, human-readable notation.
The underlying concept stems from a common limitation: traditional flowcharts are useful for depicting sequences, decisions, and transitions, but modern applications involve far more complexity than a simple arrangement of boxes and arrows can effectively represent without becoming clumsy and awkward.

Stock photo for illustration only, not from the actual event
FlowScript approaches this by treating diagrams as mere projections of a more fundamental application model. The language focuses on describing what an application is and how it behaves before deciding on implementation details, meaning documents remain meaningful regardless of whether the eventual software uses React, a specific UI framework, or a particular backend database.
Separating the logical semantic model from specific implementation technologies is a powerful architectural pattern. It prevents tight coupling between high-level system design and low-level tooling, allowing development teams to swap out technology stacks later without having to redesign the core application logic from scratch.
In this 0.1 release, the language deliberately separates several key concepts to eliminate ambiguity and hidden inference:
- Hierarchical structures (such as pages and items)
- Navigation graphs (distinguishing structural containment from user transit paths)
- State graphs (tracking operational states like active or archived)
- Responsive presentation mapping (treating layout variations as projections of one model)
- Distinctions between user actions and system behavior
The core design principle balances lightweight syntax utilizing indentation for nesting with strict underlying semantics. This syntactic simplicity combined with semantic strictness ensures that future parsers can rigorously validate references, nesting, conditions, and target relationships.
Although currently released as an experimental working draft, the broader vision is that a rigorous semantic model could eventually support multiple projections—ranging from hierarchy diagrams and documentation to test cases and implementation scaffolding. Developers and contributors can explore the project and review its current specification via GitHub.
Source: Dev.to
Found something wrong in this article? Report an issue with this article
Comments
Leave a Comment