diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..3550a30
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+use flake
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e8f8c9a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.direnv/**
diff --git a/cmd/renderer/main.go b/cmd/renderer/main.go
new file mode 100644
index 0000000..e69de29
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..cf99a35
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,61 @@
+{
+  "nodes": {
+    "flake-utils": {
+      "inputs": {
+        "systems": "systems"
+      },
+      "locked": {
+        "lastModified": 1710146030,
+        "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1722421184,
+        "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "flake-utils": "flake-utils",
+        "nixpkgs": "nixpkgs"
+      }
+    },
+    "systems": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..b753109
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,25 @@
+{
+  description = "An example project using flutter";
+  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+  inputs.flake-utils.url = "github:numtide/flake-utils";
+  outputs = {
+    self,
+    flake-utils,
+    nixpkgs,
+    ...
+  } @ inputs:
+    flake-utils.lib.eachDefaultSystem (system: let
+      pkgs = import nixpkgs {
+        inherit system;
+      };
+    in {
+      devShell = pkgs.mkShell {
+        buildInputs = with pkgs; [
+          go
+          gopls
+          gotools
+          go-tools
+        ];
+      };
+    });
+}
diff --git a/internal/renderer/renderer.go b/internal/renderer/renderer.go
new file mode 100644
index 0000000..531e94a
--- /dev/null
+++ b/internal/renderer/renderer.go
@@ -0,0 +1,7 @@
+package renderer
+
+import "fmt"
+
+func render() {
+	fmt.Println("Test")
+}
diff --git a/internal/renderer/renderer_test.go b/internal/renderer/renderer_test.go
new file mode 100644
index 0000000..c34c891
--- /dev/null
+++ b/internal/renderer/renderer_test.go
@@ -0,0 +1,9 @@
+package renderer
+
+import (
+	"testing"
+)
+
+func TestRender(t *testing.T) {
+	t.Error("Something wrong")
+}
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/main.go
@@ -0,0 +1 @@
+