diff --git a/README.md b/README.md index 1b0e5ea..77adc8d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Scene +**Describing a user interface without describing a platform** — Scene is the UI model of the Cratis +model-first layer (experimental). + The object model and runtime for Screenplay-based UIs: `Scene.Model` (platform-agnostic screens, layouts, forms, contribution points, ui profiles and themes), `Scene.Engine` (binding/resolution runtime), and `Scene.React` (the React renderer). @@ -18,8 +21,13 @@ forms, contribution points, ui profiles and themes), `Scene.Engine` (binding/res ## Description -Scene owns the *object model and runtime* half of the Screenplay stack. `Scene.Model` is the platform-agnostic -C# object model that Stage translates Screenplay's parsed language constructs into, and that Studio's +Scene owns the *object model and runtime* half of the Screenplay stack. In the model-first pipeline, +[Screenplay](https://github.com/Cratis/Screenplay) describes an event-sourced, CQRS system, +[Stage](https://github.com/Cratis/Stage) renders it into a running application, and Scene is how that +application's user interface is described — independently of any rendering platform. + +`Scene.Model` is the platform-agnostic +C# object model that [Stage](https://github.com/Cratis/Stage) translates Screenplay's parsed language constructs into, and that [Studio](https://github.com/Cratis/Studio)'s design-time tooling reads and writes. `Scene.Engine` walks that graph, resolves bindings (data, action, form, navigation contribution) and drives whichever renderer is plugged in — it does not know React exists. `Scene.React` is one renderer implementing the abstract vocabulary against real React/DOM; sibling positions @@ -38,3 +46,22 @@ Cratis is an open community, and we are glad to help users, teams evaluating the | Discord | Join the community on [Discord](https://discord.gg/kt4AMpV8WV) for questions and discussions | | GitHub Issues | [Report bugs or request features](https://github.com/Cratis/Scene/issues) | | Documentation | Read the docs at [cratis.io](https://cratis.io) | + +## The Cratis ecosystem + +This project is part of [Cratis](https://www.cratis.io) — free, MIT-licensed tools for building event-sourced and CQRS applications. + +- **[Chronicle](https://github.com/Cratis/Chronicle)** — event-sourcing database and runtime. Orleans-based kernel, pluggable storage (MongoDB default; PostgreSQL, SQL Server, SQLite, in-memory), language-agnostic gRPC contracts. [Docs](https://www.cratis.io/chronicle/) +- **Chronicle clients** — first-class [.NET SDK](https://github.com/Cratis/Chronicle), plus [TypeScript](https://github.com/Cratis/Chronicle.TypeScript), [Kotlin/Java](https://github.com/Cratis/Chronicle.Kotlin), and [Elixir](https://github.com/Cratis/Chronicle.Elixir); [Python](https://github.com/Cratis/Chronicle.Python) coming soon (pre-alpha). AI agents connect through the [Chronicle MCP server](https://github.com/Cratis/Chronicle.Mcp). +- **[Arc](https://github.com/Cratis/Arc)** — opinionated CQRS framework for ASP.NET Core with commands, queries, validation, authorization, and TypeScript proxy generation. Works without event sourcing. [Docs](https://www.cratis.io/arc/) +- **[Components](https://github.com/Cratis/Components)** — React components aligned with Arc patterns. [Docs](https://www.cratis.io/components/) +- **[CLI](https://github.com/Cratis/cli) + Workbench** — inspect and diagnose Chronicle from the terminal or the browser. [Docs](https://www.cratis.io/cli/) +- **Model-first layer (experimental)** — [Studio](https://github.com/Cratis/Studio), [Screenplay](https://github.com/Cratis/Screenplay), [Stage](https://github.com/Cratis/Stage), Scene (this repository), [Prologue](https://github.com/Cratis/Prologue) +- **Supporting** — [Fundamentals](https://github.com/Cratis/Fundamentals), [Specifications](https://github.com/Cratis/Specifications), [Synopsis](https://github.com/Cratis/Synopsis), [Lens](https://github.com/Cratis/Lens), [Narrator](https://github.com/Cratis/Narrator), and free [AI tooling](https://github.com/Cratis/AI) (preview); [Ensemble](https://github.com/Cratis/Ensemble) coming soon (pre-release) +- **[Samples](https://github.com/Cratis/Samples)** — runnable event sourcing and CQRS samples for the whole stack + +Everything Cratis publishes today is MIT licensed and free to use. + +--- + +Part of the [Cratis](https://www.cratis.io) platform · [MIT](./LICENSE) diff --git a/Source/JavaScript/blueprint.components/package.json b/Source/JavaScript/blueprint.components/package.json index 92f2275..95a5ce8 100644 --- a/Source/JavaScript/blueprint.components/package.json +++ b/Source/JavaScript/blueprint.components/package.json @@ -2,6 +2,16 @@ "name": "@cratis/scene.blueprint.components", "version": "1.0.0", "description": "A blueprint of Arc-bound screen and dialog templates: full pages built from Cratis Components composites, so a data list, a command form or a master-detail screen is a template rather than something you assemble.", + "keywords": [ + "cratis", + "scene", + "react", + "ui", + "templates", + "blueprint", + "cqrs", + "event-sourcing" + ], "author": "Cratis", "license": "MIT", "repository": { diff --git a/Source/JavaScript/blueprint.default/package.json b/Source/JavaScript/blueprint.default/package.json index 264abef..bb516eb 100644 --- a/Source/JavaScript/blueprint.default/package.json +++ b/Source/JavaScript/blueprint.default/package.json @@ -2,6 +2,16 @@ "name": "@cratis/scene.blueprint.default", "version": "1.0.0", "description": "The default blueprint: application shell layouts, the screen and dialog templates that go inside them, the components that fill their slots, and two themes.", + "keywords": [ + "cratis", + "scene", + "react", + "ui", + "templates", + "blueprint", + "themes", + "low-code" + ], "author": "Cratis", "license": "MIT", "repository": { diff --git a/Source/JavaScript/components/package.json b/Source/JavaScript/components/package.json index 9bb26f6..fd8f7bf 100644 --- a/Source/JavaScript/components/package.json +++ b/Source/JavaScript/components/package.json @@ -2,6 +2,17 @@ "name": "@cratis/scene.components", "version": "1.0.0", "description": "The Cratis Components package: exposes @cratis/components' Arc-bound data, form and dialog composites as Scene components. Built on PrimeReact and Tailwind, and declares both as dependencies.", + "keywords": [ + "cratis", + "scene", + "react", + "ui", + "components", + "primereact", + "tailwind", + "cqrs", + "event-sourcing" + ], "author": "Cratis", "license": "MIT", "repository": { diff --git a/Source/JavaScript/engine/package.json b/Source/JavaScript/engine/package.json index cf9b334..837d4a2 100644 --- a/Source/JavaScript/engine/package.json +++ b/Source/JavaScript/engine/package.json @@ -2,6 +2,16 @@ "name": "@cratis/scene.engine", "version": "1.0.0", "description": "The Scene runtime: walks a Scene element tree and drives whichever renderer is plugged in. Does not know React, or any other rendering platform, exists.", + "keywords": [ + "cratis", + "scene", + "ui", + "runtime", + "renderer", + "event-modeling", + "cqrs", + "low-code" + ], "author": "Cratis", "license": "MIT", "repository": { diff --git a/Source/JavaScript/model/package.json b/Source/JavaScript/model/package.json index ac54640..63ee763 100644 --- a/Source/JavaScript/model/package.json +++ b/Source/JavaScript/model/package.json @@ -2,6 +2,16 @@ "name": "@cratis/scene.model", "version": "1.0.0", "description": "The TypeScript mirror of Cratis.Scene.Model — the platform-agnostic Screen object model.", + "keywords": [ + "cratis", + "scene", + "ui", + "ui-model", + "event-modeling", + "event-sourcing", + "cqrs", + "low-code" + ], "author": "Cratis", "license": "MIT", "repository": { diff --git a/Source/JavaScript/primereact/package.json b/Source/JavaScript/primereact/package.json index 8edc524..a36254e 100644 --- a/Source/JavaScript/primereact/package.json +++ b/Source/JavaScript/primereact/package.json @@ -2,6 +2,16 @@ "name": "@cratis/scene.primereact", "version": "1.0.0", "description": "The PrimeReact component package: maps Scene's abstract component names onto real PrimeReact components, and PrimeReact's free themes onto Scene themes.", + "keywords": [ + "cratis", + "scene", + "react", + "ui", + "primereact", + "components", + "themes", + "low-code" + ], "author": "Cratis", "license": "MIT", "repository": { diff --git a/Source/JavaScript/react/package.json b/Source/JavaScript/react/package.json index 88e7173..c2ec3a2 100644 --- a/Source/JavaScript/react/package.json +++ b/Source/JavaScript/react/package.json @@ -2,6 +2,16 @@ "name": "@cratis/scene.react", "version": "1.0.0", "description": "The React renderer implementing Scene.Engine's Renderer contract against real React/DOM.", + "keywords": [ + "cratis", + "scene", + "react", + "ui", + "renderer", + "event-modeling", + "cqrs", + "low-code" + ], "author": "Cratis", "license": "MIT", "repository": { diff --git a/Source/JavaScript/tailwind/package.json b/Source/JavaScript/tailwind/package.json index 45b5403..d1845e4 100644 --- a/Source/JavaScript/tailwind/package.json +++ b/Source/JavaScript/tailwind/package.json @@ -2,6 +2,15 @@ "name": "@cratis/scene.tailwind", "version": "1.0.0", "description": "The Tailwind styling package: a Scene package declaring the utility CSS system component libraries are written against, plus the themes that ride on it.", + "keywords": [ + "cratis", + "scene", + "react", + "ui", + "tailwind", + "themes", + "low-code" + ], "author": "Cratis", "license": "MIT", "repository": {