Forest

Description

Forest is a project based around interacting with trees of plain-text nodes. It has an API that is intentionally kept simple. Writing your own clients or bots is explicitly encouraged!

At the moment, there are a server and a terminal-based client written in haskell, and the web-based client you're using right now, made with (vanilla) javascript. The web-based client is heavily based on the terminal-based client, both in look and behaviour. The color scheme is just my terminal's current color scheme.

Code and docs

  1. Server and terminal-based client
  2. Web-based client (coming soon)
  3. API documentation

Usage

Controls

tab           - fold/unfold current node
arrow keys/jk - move cursor
            

Permissions

A node's permissions are displayed at the right side of the screen, like this: (edra). If a permission is set, its character is displayed. Otherwise, a dash is displayed in its place. Only when a permission is set can its action be performed.

e (edit)   - edit a node's text
d (delete) - delete a node
r (reply)  - reply to a node
a (act)    - perform a node-specific action
            

Colors

The cursor position is marked by a blue background. If a node is colored yellow, it has child nodes.