Glossary Dump
Remix Studio
- the editor, whether it’s server-hosted, in-browser, or on your desktop
- often referred to as “the builder”
Projects Dashboard
- your landing page in Remix Studio
- today it’s a list of tiles representing all the Projects
- in some internal docs this referred to as “L0” (”level 0”, the outermost level in the builder hierarchy)
Project
- the basic container of work
- today a Project has a
database, i.e. Project == db
- Types of Projects
- Projects — these are more colloquially “apps”
- Libraries — these could have Templates and Collections of Assets
- Themes
- Packaged Projects
Flow
- The Remix term for what’s colloquially an “app”, to distinguish from all the other uses of that unfortunate term
- A project has screens linked together into flows, a flow is what a user experiences when they use a published package on a surface
App
- This needs to fall out of use for Remix runtime UIs @Reza Mohsin
Generally synonymous with “project”: a named container of code and data.
- Note that “mobile app” usually means a full native app in the traditional sense: the thing you install on a mobile device from an app store. Our mobile apps can download, install, and run many Remix “flows”
Library & Catalog
- A library is a type of Remix Project that can be created in Remix Studio
- Currently it has screens and other modules like any other project
- It will move towards housing Collections
- Collections are a group of free standing (unconnected) assets of any node type in Remix
- Collections of Components, Cards, Data, Actions, Decisions, etc. etc.
- Assets from Collections are added as Nodes into a Screen while editing
- It will also house Templates
- Templates are fully realised functional screens with layout and bahaviour that can be used as-a-whole after configuration for the domain of use
- Template assets are added as Screens into a Project while editing
- A catalog…
Project Graph / Project Home
- a graph view (or a list view) of your entire Project’s “Modules”
- Types of Modules
- Screens
- Agents
- Local Agents
- Cloud Agents
- Code Modules
- Plugins
- Styles
- Symbols
- Constants
- Settings
- a project also has Files (this is not a “Module” but exists in the same graph as all the modules…)
- internally called “L1”
Screen Graph / Agent Graph / Component Graph
- a graph view of your module, be it a screen, agent, or component
Editors: Card / Query / Data Tree / Table / Decision / Function
- a “Card Editor” is the interface you get to build cards when you click “edit” in the footer menu of a “Card” node
- ditto for the others…
Mix
- The custom programming language that backs Remix projects.
- Remix Studio generates Mix code from the visual editor tiles, which is then compiled to a bytecode that the various Remix runtimes can execute.
- Custom function and action tiles let you directly write your own Mix code to be included in the final product.
- See the full documentation here: The Mix Programming Language.
Executable
- “Publishing” a project creates a compiled, runnable version of the project and saves it in the project’s database.
- A Remix program consists of database records containing bytecode along with metadata about the publishing process and dependencies. Programs can be statically or dynamically linked; in the latter case a program consists of many library records that contain bytecode that is linked on startup.
- By default, a project’s executable includes code for all screens and agents within the project, but you can also compile “standalone” executables for single agents or a subset of screens/agents generally.
Remix file
- A file with a .remix extension, implemented as a ZIP packaging of a directory structure.
- A packaging mechanism for Remix programs and data.
- Generally the means of deploying a compiled project from Remix Studio to some other environment: an agent server, a hosted .remix file for a browser runtime, etc.
- Can contain one or more projects.
- Generally contains only the compiled executable assets (in their most recent versions without history), but can be configured to include user data, studio assets, etc.
Package
- “Packaging” a project means exporting its compiled executable assets from Remix Studio, optionally along with other studio or user data, into a .remix file, for deployment elsewhere.
Agent
- A “headless screen”, a Mix module that is meant to callable like a function or API endpoint, and cannot be stateful or interactive.
- Can be invoked either directly from a screen or agent in the same project, or over HTTP similar to a webhook call.
- By convention, agents take a set of parameters as input and return a set of parameters as output, the fields of which are exposed in Remix Studio as the input and output parameters.
- Can be deployed as an HTTP service either directly in the Studio server, or the dedicated cloud agent server.
Cloud agent server
- A server runtime for Remix programs that only supports agent invocations, not interactive sessions.
- It also supports file upload, storage, and service as well as web hosting and service
- See full docs here: Cloud Agent Server
- An agent server is divided into “workspaces”, which serve as namespaces for permissions and projects with agents. Any given customer/user might own or interact with many workspaces, and the per-workspace overhead is minimal.
Levels Summary (L0 - L3)
Our L0 - L3 terminology is for internal use. When working with external partners and customers, the following terminology is to be used:
- L0: Projects Dashboard
- L1: Project Home
- L2: Screen Graph / Agent Graph / Component Graph (depending on context)
- L3: Editors: Card / Query / Data Tree / Table / Decision / Function e.g. “Card Editor”, “Query Editor” etc. (depending on context)