Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StemJSON

A Declarative JSON DSL for Native UI/UX — authored by humans or AI, delivered bundled or backend-driven, scaling from a single screen to complete flows.


StemJSON, originated and authored by Vasyl Krychun, is a declarative language expressed in plain JSON. A StemJSON payload describes screens, UI trees, reactive state, and interaction flows; a runtime validates it, parses it into a component tree, and renders it as a native UI on the target platform. Payloads can be authored by developers or AI systems and delivered either bundled in an app or from a backend at runtime.

This repository hosts the normative specification, trademark policy, and brand assets. The language is licensed under the Open Web Foundation Agreement 1.0 (OWFa 1.0) — anyone may implement it in any language or on any platform, subject to the attribution requirement in LICENSE §1.5.


Specification

Edition File Use
Full specification (human-readable) spec/v1.1.md The authoritative normative document — prose, rationale, and worked examples.
LLM reference (condensed) spec/v1.1-ai.md Same normative surface, optimised for AI prompt use. Load this when instructing a language model to generate StemJSON.

Both editions cover the same v1.1 normative language. The LLM edition is token-optimised — no prose, just the schemas, enums, and grammar tables a model needs to emit valid StemJSON.

Previous revisions remain available in spec/: v1.0.md · v1.0-ai.md.


Implementations

Platform Repository Status
Apple (iOS, iPadOS) stem-runtime-swift Official. Native SwiftUI renderer. Swift Package (binary XCFramework). Proprietary SDK (separate license).
Android stem-runtime-kotlin Official. Native Jetpack Compose renderer. Gradle/Maven AAR — com.stemjson:stem-runtime-sdk, Android 7.0 (API 24)+. Proprietary SDK (separate license).

Both official runtimes implement the v1.1 normative language. The built-in set of repository and service kinds is runtime-specific — see §5.3 and §5.5 of the spec, and each runtime's README for what it ships versus what the host application registers.

Reference demos — runnable apps whose features are authored in StemJSON and rendered via StemRuntimeSDK:

Platform Repository
iOS stem-examples-swift — SwiftUI and UIKit hosts, plus a mixed native/StemJSON screen with bidirectional state.
Android stem-examples-kotlin — Jetpack Compose hosts, plus a mixed native/StemJSON screen with bidirectional state.

Independent implementations on other platforms are permitted under OWFa 1.0.


Support and feedback

For Channel
Spec clarifications (ambiguous wording, apparent contradictions) Issues → Spec clarification template
Improvement suggestions for v1.1+ Discussions → Proposals, or Issues → Improvement suggestion
Typos / editorial fixes Issues → Typo template
Questions about the spec Discussions → Q&A
Licensing, commercial enquiries, trademark permission vkrychun@stemjson.com

License

The specification documents in spec/ are licensed under the Open Web Foundation Agreement 1.0 (OWFa 1.0). See LICENSE for the full terms and NOTICE for attribution requirements.

You MAY freely implement the StemJSON specification in any programming language, on any platform, for any purpose (commercial or non-commercial).

You MUST include the following attribution in a reasonably discoverable location within any product that implements the specification (e.g., README, about screen, third-party notices):

"StemJSON specification created by Vasyl Krychun — https://stemjson.com"

The StemRuntimeSDK is a separate product distributed under its own proprietary End-User License Agreement. See https://stemjson.com/stemruntime/license/ and the stem-runtime-swift / stem-runtime-kotlin repositories for details.


Trademarks

"StemJSON", "StemRuntimeSDK", "StemRuntime", and the StemJSON logo are trademarks of Vasyl Krychun. The OWFa 1.0 license on the specification does not grant rights to use these marks. See TRADEMARK_POLICY.md for permitted uses, restrictions, and how to request a trademark licence.


Contact

Releases

Used by

Contributors