Skip to content

Platform Architecture

This section discusses in brief the core concepts, their roles, and purpose.


Introduction


Futurist is written primarily in Javascript.

To maximize customization and scalability, futurist was divided into three parts (Core, Sidebar, and Applications) and a state management framework.

The three parts are maintained separately within their own respective repos.

A visual example of the architecture is below:

futurist architecture diagram
Futurist architecture and sample event cycle

With state standardization, different components, such as the core and sidebar, can access the state, as well as one or multiple applications, simultaneously.


Futurist Template


Futurist has a pre-built template, which is the best way to start working with futurist.

It is built from Core and Sidebar, has an Application, and uses a Standard State.

All of this you can read more about it below.

To get started with the template, check out the Setup Guide.


Core


Core handles the following:

  • Interaction with opening / closing Sidebar
  • Interactions with dragging Shortcuts
  • Interactions with opening / closing Applications
  • Event listeners for window-specific details (such as current height / width)
  • Interface for Applications

Core has a dedicated repo: futurist-core



Currently, Sidebar includes static content that can be customized directly from the repo.

For future, Sidebar is expected to maintain Widgets, a micro version of Applications.

Sidebar has a dedicated repo: futurist-sidebar


Applications


Applications are both aesthetically and functionally wrapped projects.

They can include their own dedicated state, as well as access states of existing projects.

The Component Library handles much of the complexity and creates a standard for capabilities, etc.

There's numerous App Examples to review for anyone to use, remake, extend, and reference for new Applications.

To see a full walkthrough of an Application, its setup, and how it works, check out the Application Walkthrough.


States


Not specific to futurist, States are values that can be referenced across parts of a project.

Under the hood, futurist States are managed by Jotai, a primitive state management framework.

Generally, States are meant to be cross-referenced by separate Applications and / or Core.

There are two different types of States: