Oct 30th 2025
Mark Sujew
Notebook internals in Theia
Mark explains how native Jupyter-style notebooks were implemented in Theia, detailing key architecture choices and performance improvements.
Theia is an open source IDE for cloud and desktop. The project is relatively young, but currently moving forward with an astonishing speed. This post describes one of the numerous recent contributions: a more flexible window layout.
A Theia window has four areas where editors, views etc. (called widgets in the following) can be placed, as shown in the figure below.
The main area is used for editors, while the other areas contain views such as the Files navigator or Terminal instances. The four areas have different properties:
Theia is not a specific IDE, but rather a framework for building IDEs and similar applications. Therefore the window areas can be used differently depending on the context (this concept is called Perspective in Eclipse). This means that every Theia-based application can have a different set of widgets and a different arrangement of these widgets in the application window.
A few days ago I contributed a change that allows to drag widgets from any area of the application window to any other area. The following screencast demonstrates this: When a panel is currently hidden, it is shown temporarily during a mouse drag operation as soon as the mouse cursor gets close to the respective border of the window. For example, in the screencast the right panel pops in as the user drags the Problems view to the right.
The example application contained in the Theia repository can be built and started with a few steps. Feel free to try the new drag & drop feature, and let us know what you think.
Miro joined TypeFox as a software engineer right after the company was established. Five years later he stepped up as a co-leader and is now eager to shape the future direction and strategy. Miro earned a PhD (Dr.-Ing.) at the University of Kiel and is constantly pursuing innovation about engineering tools.