diff --git a/ide/IDE.pri b/ide/IDE.pri
new file mode 100644
index 0000000..e430568
--- /dev/null
+++ b/ide/IDE.pri
@@ -0,0 +1,23 @@
+QT += quick quickcontrols2
+QT -= core
+
+CONFIG +=
+
+QML_IMPORT_NAME = sh.swisschili.REFAL
+QML_IMPORT_MAJOR_VERSION = 1
+QML_IMPORT_MINOR_VERSION = 0
+
+# Additional import path used to resolve QML modules in Qt Creator's code model
+QML_IMPORT_PATH =
+
+# Additional import path used to resolve QML modules just for Qt Quick Designer
+QML_DESIGNER_IMPORT_PATH =
+
+SOURCES += \
+    $$PWD/IdeMain.cpp
+
+HEADERS += \
+    $$PWD/IdeMain.h
+
+RESOURCES += \
+    $$PWD/resources.qrc
diff --git a/ide/IdeMain.cpp b/ide/IdeMain.cpp
new file mode 100644
index 0000000..a8f918c
--- /dev/null
+++ b/ide/IdeMain.cpp
@@ -0,0 +1,25 @@
+#include "IdeMain.h"
+
+#include <QQmlApplicationEngine>
+#include <QQuickStyle>
+
+int ideMain(QGuiApplication *app)
+{
+    QQmlApplicationEngine engine;
+
+    // This is done implicitly now.
+    // registerTypes(&engine);
+
+    QQuickStyle::setStyle("Material");
+
+    const QUrl url(QStringLiteral("qrc:/qml/main.qml"));
+    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
+                     app, [url](QObject *obj, const QUrl &objUrl)
+    {
+        if (!obj && url == objUrl)
+            QCoreApplication::exit(-1);
+    }, Qt::QueuedConnection);
+    engine.load(url);
+
+    return app->exec();
+}
diff --git a/ide/IdeMain.h b/ide/IdeMain.h
new file mode 100644
index 0000000..6b911ba
--- /dev/null
+++ b/ide/IdeMain.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#include <QGuiApplication>
+
+using Application = QGuiApplication;
+
+int ideMain(QGuiApplication *app);
diff --git a/ide/icons/add.svg b/ide/icons/add.svg
new file mode 100644
index 0000000..00ffc63
--- /dev/null
+++ b/ide/icons/add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 277.333H277.333V416h-42.666V277.333H96v-42.666h138.667V96h42.666v138.667H416v42.666z"/></svg>
\ No newline at end of file
diff --git a/ide/icons/play-circle.svg b/ide/icons/play-circle.svg
new file mode 100644
index 0000000..ff8963e
--- /dev/null
+++ b/ide/icons/play-circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm-41.6 301.6V162.4L339.2 256l-124.8 93.6z"/></svg>
\ No newline at end of file
diff --git a/ide/qml/Cell.qml b/ide/qml/Cell.qml
new file mode 100644
index 0000000..d060dee
--- /dev/null
+++ b/ide/qml/Cell.qml
@@ -0,0 +1,44 @@
+import QtQuick 2.0
+import QtQuick.Controls 2.15
+import QtQuick.Controls.Material 2.0
+import QtQuick.Layouts 1.0
+
+ColumnLayout {
+    id: root
+
+    RowLayout {
+        Layout.fillWidth: true
+
+        Button {
+            Layout.alignment: Qt.AlignTop
+            icon.source: "qrc:///icons/play-circle.svg"
+            icon.color: Material.color(Material.Grey, Material.Shade600)
+            flat: true
+        }
+
+        ColumnLayout {
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+
+            TextArea {
+                Layout.fillWidth: true
+                Layout.fillHeight: true
+                id: code
+                font.family: "monospace"
+                text: "Hello"
+                selectByMouse: true
+                wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+            }
+
+            Label {
+                Layout.fillWidth: true
+                font.family: "monospace"
+                text: "Result\nasdfasdf\nasdad"
+            }
+        }
+    }
+
+    InsertRow {
+
+    }
+}
diff --git a/ide/qml/InsertRow.qml b/ide/qml/InsertRow.qml
new file mode 100644
index 0000000..b12896a
--- /dev/null
+++ b/ide/qml/InsertRow.qml
@@ -0,0 +1,62 @@
+import QtQuick 2.0
+import QtQuick.Controls 2.15
+import QtQuick.Controls.Material 2.0
+import QtQuick.Layouts 1.0
+
+Rectangle {
+    id: root
+
+    color: Material.color(Material.Grey, Material.Shade800)
+    height: 2
+    Layout.fillWidth: true
+    Layout.topMargin: 14
+    Layout.bottomMargin: 14
+
+    transitions: Transition {
+        NumberAnimation {
+            property: "opacity"
+            duration: 100
+            easing.type: Easing.OutCubic
+        }
+    }
+
+    MouseArea {
+        id: mouseArea
+        height: 30
+        width: parent.width
+        anchors.centerIn: parent
+        hoverEnabled: true
+
+        states: [
+            State {
+                when: mouseArea.containsMouse
+                PropertyChanges {
+                    target: root
+                    opacity: 1
+                }
+            },
+            State {
+                when: !mouseArea.containsMouse
+                PropertyChanges {
+                    target: root
+                    opacity: 0
+                }
+            }
+        ]
+    }
+
+    Item {
+        id: insertRow
+        anchors.centerIn: parent
+        height: 24
+        width: 24
+
+        Button {
+            id: addButton
+            anchors.centerIn: parent
+            icon.source: "qrc:///icons/add.svg"
+            icon.color: Material.color(Material.Grey, Material.Shade400)
+            flat: true
+        }
+    }
+}
diff --git a/ide/qml/main.qml b/ide/qml/main.qml
new file mode 100644
index 0000000..d3bca25
--- /dev/null
+++ b/ide/qml/main.qml
@@ -0,0 +1,67 @@
+import QtQuick 2.5
+import QtQuick.Controls 2.15
+import QtQuick.Controls.Material 2.0
+import QtQuick.Layouts 1.3
+
+ApplicationWindow {
+    id: root
+    width: 1080
+    height: 720
+    title: "Notebook"
+    visible: true
+
+    Material.theme: Material.Dark
+    Material.accent: Material.Orange
+
+    ColumnLayout {
+        id: column
+        anchors.fill: parent
+
+        TabBar {
+            id: bar
+
+            Layout.fillWidth: true
+
+            TabButton {
+                text: "Example Workspace"
+            }
+
+            TabButton {
+                text: "Another Workspace"
+            }
+
+            TabButton {
+                text: "Testing"
+            }
+        }
+
+        SplitView {
+            id: split
+            Layout.fillHeight: true
+            Layout.fillWidth: true
+            orientation: Qt.Horizontal
+
+            ListView {
+                id: codeEditor
+                SplitView.fillWidth: true
+                SplitView.minimumWidth: 400
+                model: 3
+                clip: true
+
+                delegate: Cell {
+                    width: codeEditor.width - 5
+                }
+            }
+
+            Item {
+                id: variables
+                SplitView.minimumWidth: 240
+
+                Label {
+                    anchors.centerIn: parent
+                    text: "Vars"
+                }
+            }
+        }
+    }
+}
diff --git a/ide/resources.qrc b/ide/resources.qrc
new file mode 100644
index 0000000..bab3643
--- /dev/null
+++ b/ide/resources.qrc
@@ -0,0 +1,9 @@
+<RCC>
+    <qresource prefix="/">
+        <file>qml/main.qml</file>
+        <file>qml/Cell.qml</file>
+        <file>icons/play-circle.svg</file>
+        <file>icons/add.svg</file>
+        <file>qml/InsertRow.qml</file>
+    </qresource>
+</RCC>
