# Issho v0.1.0 - Table of Contents > Collaboration for Phoenix: one engine for people and agents working together live, under every component on a page. ## Pages - [Issho](readme.md) - [Architecture](architecture.md) - [Changelog](changelog.md) ## Modules - [Issho](Issho.md): Collaboration for Phoenix: one engine for people and agents working together live, under every component on a page. - Contracts - [Issho.Actor](Issho.Actor.md): Anyone or anything that takes part in a room: a user, an admin, a guest, a service, an agent. Issho never assumes your schema; implement this protocol for each struct that can join. - [Issho.Binding](Issho.Binding.md): What a component brings to Issho: its engine (`Issho.Engine`) and its place format (`Issho.Place`). The browser's half of a binding brings the rest: drawing places, and reading and applying a view for following. - [Issho.Engine](Issho.Engine.md): The model of a document: how its operations apply. Each binding brings one (Kotoba's text, Hakushi's graph, a map for shared assigns), and the authority (`Issho.Authority`) runs it. - [Issho.Place](Issho.Place.md): Where someone is, in a component's own terms: a row and a column in a grid, a node and an offset in a text, a point on a canvas. Never screen pixels, because each person has their own order, filters and zoom. - [Issho.Policy](Issho.Policy.md): Your app's answer to "may this actor do this here?", and to "what is this document?". Issho has no roles and no user model: it asks, and your app answers with whatever it already uses. - [Issho.Store](Issho.Store.md): Where documents last. Your app implements it on its database; `Issho.Store.Memory` is for development and tests. - Documents - [Issho.Authority](Issho.Authority.md): The one process that orders a document's changes, across every node of a cluster. - [Issho.Documents](Issho.Documents.md): The authorities (`Issho.Authority`) of an Issho instance: one for each open document, found by name on every node of a cluster. - [Issho.Engine.Map](Issho.Engine.Map.md): A map that people and agents change together: values at paths, in the order the authority accepts them. It is the engine of shared assigns, the reference for writing an engine, and the engine of Issho's own tests. - [Issho.Transaction](Issho.Transaction.md): The envelope of a change to a document, the same for every engine - Rooms - [Issho.Awareness](Issho.Awareness.md): Where the people of a room are, and what they are doing: their places, selections, drags and locks, many times a second. - [Issho.Channel](Issho.Channel.md): The channel a browser joins a room on: one per room per tab, on one socket for the whole page. - [Issho.Color](Issho.Color.md): The colours of the people of a room. - [Issho.Identity](Issho.Identity.md): An actor as a room knows it: its key, what others see of it, and on whose behalf it acts. - [Issho.Presence](Issho.Presence.md): Who is in a room: `Phoenix.Presence`, as it is, on your app's PubSub. - [Issho.Token](Issho.Token.md): Short-lived, signed credentials to join one room as one actor. - LiveView - [Issho.Live](Issho.Live.md): A LiveView in a room: the same session as a browser's channel or an agent's process, in the LiveView's own process. Presence, awareness, the room's documents and the policy work the same; the room's events reach the LiveView's components with `send_update/2`, or the LiveView itself. - Agents - [Issho.Participant](Issho.Participant.md): An actor in a room from Elixir: an agent running in your app, a job, a script. It joins like a browser, with the same presence, awareness, locks, transactions and policy, and the people in the room see it. - Stores - [Issho.Store.Memory](Issho.Store.Memory.md): A store in memory, for development and tests. It outlives a document's authority, but loses everything when its node stops. - [Issho.Store.None](Issho.Store.None.md): No store: a document that lasts as long as its authority, and starts again from its initial content when the next one opens it. - Testing - [Issho.Test](Issho.Test.md): Helpers for testing an app or a binding with Issho, in ExUnit. ## Mix Tasks - [mix issho.build](Mix.Tasks.Issho.Build.md): Builds Issho's browser client into `priv/static`. - [mix issho.release_check](Mix.Tasks.Issho.ReleaseCheck.md): Checks the built files before a release of Issho.