Need help with spectacle-editor?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

435 Stars 87 Forks MIT License 588 Commits 53 Opened issues


Drag and drop Spectacle editor.

Services available


Need anything else?

Contributors list

Spectacle Editor

An Electron based app for creating, editing, saving, and publishing Spectacle presentations. With integrated Plotly support.

This project is a joint effort between Formidable and Plotly.

Getting started with development

Please review the contributing guidelines first.

Fork then clone the repo:

git clone [email protected]:/spectacle-editor.git

Install npm dependencies:

cd spectacle-editor && npm install

Run Spectacle Editor in dev mode:

npm run dev

Running tests/lint:

npm run check


The initial setup of this project is based on electron-react-boilerplate.

MobX and seamless-immutable are used for the store(s).

Note: Instead of actions, components call methods on the store(s) passed down via context.

Spectacle Editor leverages React-Motion for drag and drop functionality.

Draggable elements

The elements that can be added to slides and edited include:

  • Text
  • Image
  • Plotly chart
  • Table
  • Shape (V2)
  • MathJax (V2)

Each element will have a corresponding property menu that is available when an element of that type is selected.


The canvas is the editable area that displays the current slide. Elements can be dropped on the canvas, repositioned and formatted.

Slide list

The slide list displays all slides in the presentation and allows for changing the selected slide and reordering existing slides.

Property menu

This is where options for the selected element will appear. The menu will depend on the type of element selected. If no element is selected a slide menu will appear.

Creating release packages

To build for Windows on MacOS, you'll need (this may take 30+ mins):

brew update
brew install wine --without-x11
brew install mono

To build for Linux on MacOS, you'll need:

brew install gnu-tar libicns graphicsmagick xz

To build and package for all platforms, run:

npm run release

Other packaging steps are:

npm run package-all
npm run package-mac
npm run package-win
npm run package-linux

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.