Core Concepts
Noya Files
A Noya file consists of:
- An (optional) JSON Schema for defining the shape of the file data
- The current JSON State of the file, adhering to its schema
- A multiplayer room for syncing data between users
- Associated binary assets
- Associated input files (for workflows)
Users can create and share these files on their Noya account. A certain number of files are free, after which the user must upgrade to a paid plan.
JSON Schema
Noya uses JSON Schema to define the structure of the file data that a tool uses. The schema is used for UI component configuration, data validation, multiplayer sync, the AI assistant, and more. Noya provides utility packages for working with JSON Schema.
Technically, using a schema is optional, so you're welcome to get started without one. However, to leverage Noya's most powerful features, you'll want to define a schema for your data.
Inspector
Noya offers a powerful React "inspector" component for viewing and editing JSON data. This component is highly configurable, and can be used to create a custom inspector UI for most kinds of data. It's a great starting point for your tool, even if you end up swapping it out for a custom UI later. It supports editing primitive types, nested values, trees, tables, and drag-and-drop.
Assets
Noya provides an API for uploading binary assets, which are automatically synced between all users in that Noya file.
AI Assistant
Noya's built-in AI assistant leverages the JSON schema you provide to automatically edit the user's file on their behalf.