diff --git a/README.md b/README.md
index 0b56ef9..35a0d90 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ Once your preferred template has been initialized, you can use the provided shel
 ## Available templates
 
 | Language/framework/tool  | Template                      |
-| :----------------------- | :-----------------------------|
+| :----------------------- | :---------------------------- |
 | [Clojure]                | [`clojure`](./clojure/)       |
 | [C#][csharp]             | [`csharp`](./csharp/)         |
 | [Cue]                    | [`cue`](./cue/)               |
@@ -38,6 +38,7 @@ Once your preferred template has been initialized, you can use the provided shel
 | [Gleam]                  | [`gleam`](./gleam/)           |
 | [Go]                     | [`go`](./go/)                 |
 | [Hashicorp] tools        | [`hashi`](./hashi/)           |
+| [Haxe]                   | [`haxe`](./haxe/)             |
 | [Java]                   | [`java`](./java/)             |
 | [Kotlin]                 | [`kotlin`](./kotlin/)         |
 | [LaTeX]                  | [`latex`](./latex/)           |
@@ -129,6 +130,10 @@ The sections below list what each template includes. In all cases, you're free t
 - [GHC][haskell] 9.2.8
 - [cabal] 3.10.1.0
 
+### [`haxe`](./haxe/)
+
+- [Haxe] 4.2.5
+
 ### [`java`](./java)
 
 - [Java] 20.0.1+9
@@ -291,6 +296,7 @@ All of the templates have only the root [flake](./flake.nix) as a flake input. T
 [gradle]: https://gradle.org
 [hashicorp]: https://hashicorp.com
 [haskell]: https://haskell.org
+[haxe]: https://haxe.org/
 [iex]: https://hexdocs.pm/iex/IEx.html
 [java]: https://java.com
 [jq]: https://jqlang.github.io/jq
@@ -353,4 +359,3 @@ All of the templates have only the root [flake](./flake.nix) as a flake input. T
 [vulnix]: https://github.com/flyingcircusio/vulnix
 [yarn]: https://yarnpkg.com
 [zig]: https://ziglang.org
-
diff --git a/haxe/.envrc b/haxe/.envrc
new file mode 100644
index 0000000..8392d15
--- /dev/null
+++ b/haxe/.envrc
@@ -0,0 +1 @@
+use flake
\ No newline at end of file
diff --git a/haxe/flake.lock b/haxe/flake.lock
new file mode 100644
index 0000000..2effb16
--- /dev/null
+++ b/haxe/flake.lock
@@ -0,0 +1,27 @@
+{
+  "nodes": {
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1697009197,
+        "narHash": "sha256-viVRhBTFT8fPJTb1N3brQIpFZnttmwo3JVKNuWRVc3s=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "01441e14af5e29c9d27ace398e6dd0b293e25a54",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixpkgs-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "nixpkgs": "nixpkgs"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}
diff --git a/haxe/flake.nix b/haxe/flake.nix
new file mode 100644
index 0000000..46e02d7
--- /dev/null
+++ b/haxe/flake.nix
@@ -0,0 +1,23 @@
+{
+  description = "A Nix-flake-based Haxe development environment";
+
+  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
+
+  outputs = {
+    self,
+    nixpkgs,
+  }: let
+    supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
+    forEachSupportedSystem = f:
+      nixpkgs.lib.genAttrs supportedSystems (system:
+        f {
+          pkgs = import nixpkgs {inherit system;};
+        });
+  in {
+    devShells = forEachSupportedSystem ({pkgs}: {
+      default = pkgs.mkShell {
+        packages = with pkgs; [haxe];
+      };
+    });
+  };
+}