diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000000000000000000000000000000000000..b4837a5a291eddfbdd804f46e6d410b2eb6b7156
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,42 @@
+{
+  "nodes": {
+    "flake-utils": {
+      "locked": {
+        "lastModified": 1667395993,
+        "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1668417584,
+        "narHash": "sha256-yeuEyxKPwsm5fIHN49L/syn9g5coxnPp3GsVquhrv5A=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "013fcdd106823416918004bb684c3c186d3c460f",
+        "type": "github"
+      },
+      "original": {
+        "id": "nixpkgs",
+        "ref": "nixos-unstable",
+        "type": "indirect"
+      }
+    },
+    "root": {
+      "inputs": {
+        "flake-utils": "flake-utils",
+        "nixpkgs": "nixpkgs"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000000000000000000000000000000000000..85caee5a928812312c5fe34422613a73c52e537c
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,33 @@
+{
+  inputs = {
+    flake-utils.url = "github:numtide/flake-utils";
+    nixpkgs.url = "nixpkgs/nixos-unstable";
+  };
+
+  outputs = { self, flake-utils, nixpkgs }:
+    flake-utils.lib.eachDefaultSystem (system:
+      let
+        pkgs = import nixpkgs { inherit system; };
+        ocamlPackages = pkgs.ocaml-ng.ocamlPackages_4_13;
+        dolmen = ocamlPackages.dolmen.overrideAttrs (old: {
+          src = pkgs.fetchurl {
+            url =
+              "https://github.com/Gbury/dolmen/releases/download/v0.7/dolmen-0.7.tbz";
+            sha256 = "sha256-/yiJ+p1GfVtNh65PgZpkNYcV9FfMYia0VUY8L81Ksq8=";
+          };
+        });
+      in rec {
+        packages = { };
+
+        devShells.default = pkgs.mkShell {
+          name = "logIA-dev";
+          packages = with ocamlPackages; [
+            ocaml
+            findlib
+            dune_2
+            ocaml-lsp
+            dolmen
+          ];
+        };
+      });
+}