diff --git a/docs/slides/2023-ros-meetup/README.md b/docs/slides/2023-ros-meetup/README.md
new file mode 100644
index 0000000..c325274
--- /dev/null
+++ b/docs/slides/2023-ros-meetup/README.md
@@ -0,0 +1,3 @@
+# Презентация "Nix/NixOS - ОС-независимая сборка пакетов ROS" на ROS-Meetup'2023
+
+Для просмотра скопируйте содержимое директории и откройте `ros-meetup-slides.html` в любом браузере.
\ No newline at end of file
diff --git a/docs/slides/2023-ros-meetup/drv-cryptohash.png b/docs/slides/2023-ros-meetup/drv-cryptohash.png
new file mode 100644
index 0000000..1a5488d
Binary files /dev/null and b/docs/slides/2023-ros-meetup/drv-cryptohash.png differ
diff --git a/docs/slides/2023-ros-meetup/eelco.jpeg b/docs/slides/2023-ros-meetup/eelco.jpeg
new file mode 100644
index 0000000..96fe93e
Binary files /dev/null and b/docs/slides/2023-ros-meetup/eelco.jpeg differ
diff --git a/docs/slides/2023-ros-meetup/map_repo_size_fresh-2018-06-08.svg b/docs/slides/2023-ros-meetup/map_repo_size_fresh-2018-06-08.svg
new file mode 100644
index 0000000..30a9c4f
--- /dev/null
+++ b/docs/slides/2023-ros-meetup/map_repo_size_fresh-2018-06-08.svg
@@ -0,0 +1,751 @@
+
+
\ No newline at end of file
diff --git a/docs/slides/2023-ros-meetup/nix-snowflake.svg b/docs/slides/2023-ros-meetup/nix-snowflake.svg
new file mode 100644
index 0000000..9a70a14
--- /dev/null
+++ b/docs/slides/2023-ros-meetup/nix-snowflake.svg
@@ -0,0 +1,513 @@
+
+
+
+
diff --git a/docs/slides/2023-ros-meetup/reproducible-testing.jpg b/docs/slides/2023-ros-meetup/reproducible-testing.jpg
new file mode 100644
index 0000000..d1e5958
Binary files /dev/null and b/docs/slides/2023-ros-meetup/reproducible-testing.jpg differ
diff --git a/docs/slides/2023-ros-meetup/ros-meetup-slides.md b/docs/slides/2023-ros-meetup/ros-meetup-slides.md
new file mode 100644
index 0000000..1cc54ff
--- /dev/null
+++ b/docs/slides/2023-ros-meetup/ros-meetup-slides.md
@@ -0,0 +1,268 @@
+---
+marp: true
+theme: uncover
+paginate: true
+
+---
+
+# Nix/Nixos
+ОС-независимая сборка пакетов ROS
+
+|
+
+Брылёв Игорь
+robossembler.org
+
+---
+
+# Что же такое ROS?
+
+
+
+* Стандарт
+* Фреймворк
+* Набор форматов
+* ...
+* Система сборки и дистрибьюции ПО
+---
+
+
+
+### Проблемы пакетных менеджеров
+
+* Апгрейд конфигурации безвозвратно изменяет состояние системы
+* Сборки не детерминированы
+* Не поддерживаются разные версии бинарников и библиотек
+* Конфликты пакетов
+
+---
+
+#### Проблемы управления зависимостями в ROS
+
+* Зависимость от Ubuntu и её системных зависимостей (apt-пакеты)
+* Сложность интеграции с ПО вне ROS-экосистемы
+* Подготовить для удобного запуска сложный ROS-проект - трудоёмкая задача
+
+---
+
+# Тренды
+
+* Из набора библиотек для одного робота ROS становится стандартом для роботизированных кибер-физических систем
+* В робототехнику проникают инструменты из других ниш: web, машинное обучение, DevOps
+
+---
+
+# А как же Docker?
+---
+
+
+
+---
+
+
+# "В"
+воспроизводимость
+
+---
+
+
+# Теория
+Dockerfile -> Image
+
+---
+
+
+# Реальность
+Dockerfile -> Image1 || Image2 ... ImageN
+
+---
+
+
+# Типичный Dockerfile для ROS
+ FROM ros:foxy-ros-base-focal
+ ...
+ RUN rosdep update && apt-get update
+ ...
+ RUN apk add --no-cache python g++ make
+ ...
+ RUN curl -sSL http://get.gazebosim.org | sh
+ ...
+ CMD [ "ros2", "launch", "app", "app_bringup.launch.py" ]
+---
+
+# Ключевая идея nix
+Описывать сборку в виде _чистой функции_ или уравнения(derivation), результат исполнения строго детерминирован входными параметрами.
+
+---
+
+
+Eelco Dolstra
+## The Purely Functional Software Deployment Model
+PhD Thesis'2006
+https://edolstra.github.io/pubs/phd-thesis.pdf
+
+---
+# Парадигмы программирования
+* Императивная (как?) - C, C++, Java
+* Декларативная (что?) - Lisp, Prolog, Nix
+
+---
+
+
+# Парадигмы конфигурации
+
+* Императивная конфигурация (apt)
+ - Изменение состояния (dependency hell, неконсистентные состояния)
+* Декларативная конфигурация (nix)
+ - Пакеты = иммутабельные переменные (нельзя изменить напрямую, только через функцию)
+ - Одно и то же nix-выражение даёт всегда один и тот же результат
+
+---
+
+ {
+ pname = "hello";
+ version = "2.12.1";
+ src = fetchurl {
+ url = "http://github.com/hello-${version}.tar.bz2";
+ sha256 = "0x2g1jqy...";
+ };
+ buildInputs = [ libbar perl ncurses ];
+ buildPhase = ''gcc hello.c -o hello'';
+ installPhase = ''mkdir -p $out/bin && cp hello $out/bin'';
+ }
+---
+ {
+ "builder": "/nix/store/561wgc73s0x1250hrgp7jm22hhv7yfln-bash-5.2-p15/bin/bash",
+ "env": {
+ "builder": "/nix/store/561wgc73s0x1250hrgp7jm22hhv7yfln-bash-5.2-p15/bin/bash",
+ "out": "/nix/store/260q5867crm1xjs4khgqpl6vr9kywql1-hello-2.12.1",
+ "src": "/nix/store/pa10z4ngm0g83kx9mssrqzz30s84vq7k-hello-2.12.1.tar.gz",
+ "stdenv": "/nix/store/b09v23lirgvci3wzszh22mbkdfj0h0yq-stdenv-linux",
+ "version": "2.12.1"
+ },
+ "inputDrvs": {
+ "/nix/store/0hnjp6s8k71xm62157v37zg3qzwvl8lx-bash-5.2-p15.drv": [ "out" ],
+ "/nix/store/8n3ib41pb90nkq3vv49z520qinf4q9c0-hello-2.12.1.tar.gz.drv": [ "out" ],
+ "/nix/store/r2h029bx2fbyxxj84s5hf1abp2vfkah2-stdenv-linux.drv": [ "out" ]
+ },
+ "inputSrcs": [ "/nix/store/6xg259477c90a229xwmb53pdfkn6ig3g-default-builder.sh" ],
+ "outputs": {
+ "out": { "path": "/nix/store/260q5867crm1xjs4khgqpl6vr9kywql1-hello-2.12.1" }
+ },
+ "system": "x86_64-linux"
+ }
+ }
+
+---
+
+
+ $ ls /nix/store/ | grep humble
+ 00z4hg8q0cxhsl5jq4s7iq81zz54j8vy-ros-humble-ament-lint-common-0.12.5-r1
+ 01nvrmwbf0zbchb3d25kb49rl8jzspv6-ros-humble-ament-cmake-cppcheck-0.12.5-r1
+ 02gdrzn2yrngmqih4hq0j17vj2hgiiz3-ros-humble-unique-identifier-msgs-2.2.1-r3
+ 08s5gvg7gaypllyxvzd17w21ijqx3hgd-ros-humble-tf2-msgs-0.25.2-r1
+ 0hwva9zk3250hd6spwq11ayk0aq4flnm-ros-humble-control-msgs-4.1.0-r1
+
+---
+
+
+
+---
+
+
+# Что это даёт для ROS?
+
+* Возможность запустить проект ROS на любой ОС, даже без apt
+* Контролируемое управление зависимостями
+* Возможность использования разных версий одних и тех же пакетов и библиотек
+* Детерминированные сборки одной командой
+* CACHE!!!
+
+---
+
+
+# Основные компоненты nix
+
+* Nix (менеджер пакетов и язык программирования)
+* Nixpkgs (репозиторий пакетов и стандартная библиотека)
+* NixOS (операционная система)
+* NixOps (DevOps инструмент)
+
+---
+
+
+
+
+---
+
+## Nix ROS Overlay
+https://github.com/lopsided98/nix-ros-overlay
+
+Автоматическая генерация nix-выражений для сборки пакетов ROS из официальных репозиториев (github:ros/rosdistro).
+
+---
+ { lib, buildRosPackage, fetchurl, ament-cmake ... }:
+ buildRosPackage {
+ pname = "ros-rolling-std-msgs";
+ version = "4.6.1-r1";
+ src = fetchurl {
+ url = "https://github.com/ros2-gbp/common_interfaces/std_msgs/4.6.1-1.tar.gz";
+ name = "4.6.1-1.tar.gz";
+ sha256 = "87eee895c2c60a8335ae2a63b05f99773f0897e451e5bf7f45a14a6c36295640";
+ };
+
+ buildType = "ament_cmake";
+ buildInputs = [ ament-cmake rosidl-default-generators ];
+ checkInputs = [ ament-lint-common ];
+ propagatedBuildInputs = [ builtin-interfaces rosidl-default-runtime ];
+ nativeBuildInputs = [ ament-cmake rosidl-default-generators ];
+
+ meta = {
+ description = ''A package containing some standard message definitions.'';
+ license = with lib.licenses; [ asl20 ];
+ };
+ }
+---
+
+# Недостатки
+
+* Пологая кривая обучения
+* Некоторая разрозненность документации
+* Не все пакеты ROS адаптированы в nix
+* Необходимость сборки мусора
+
+
+---
+# Полезные ресурсы
+
+
+Русскоязычное сообщество Telegram
+@ru_nixos
+
+Туториал для новичков
+zero-to-nix.com
\ No newline at end of file