diff --git a/example/Dockerfile b/example/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..49c4b385248fcbecb294589193eece81a5bb8b8a
--- /dev/null
+++ b/example/Dockerfile
@@ -0,0 +1,21 @@
+FROM adarnimrod/elementaryos
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get install -y \
+        debhelper \
+        libebook1.2-dev \
+        libecal1.2-dev \
+        libedataserver1.2-dev \
+        libflatpak-dev \
+        libghc-gnutls-dev \
+        libnotify-dev \
+        libsqlite3-dev \
+        libunity-dev \
+    && \
+    rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/*
+ENV DESTDIR=/usr \
+    MESON_INSTALL_PREFIX=/usr
+VOLUME /volume
+WORKDIR /volume
+USER 1000
+ENTRYPOINT ["sh", "-c"]
+CMD ["meson build --buildtype=release && ninja -C build && glib-compile-schemas ./data/"]
diff --git a/example/README.md b/example/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d99a188e36783c2dfbff16323dccd03871d7ae62
--- /dev/null
+++ b/example/README.md
@@ -0,0 +1,17 @@
+# ElementaryOS applications
+
+> Build ElementaryOS applications.
+
+## Build
+
+```
+docker-compose up --build
+```
+
+## Run
+
+Inside the application's directory:
+
+```
+GSETTINGS_SCHEMA_DIR=data build/io.elementary.<APPLICATION_NAME>
+```
diff --git a/example/docker-compose.yml b/example/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b0df96d9bb4e394aee6ff2bfa4ec26528bd0c260
--- /dev/null
+++ b/example/docker-compose.yml
@@ -0,0 +1,19 @@
+# vim:ff=unix:ts=2:sw=2:ai:expandtab:ft=yaml
+---
+version: '3.5'
+services:
+  conecto:
+    build:
+      context: ./
+    volumes:
+      - ./conecto:/volume
+  tasks:
+    build:
+      context: ./
+    volumes:
+      - ./tasks:/volume
+  sideload:
+    build:
+      context: ./
+    volumes:
+      - ./sideload:/volume