diff --git a/packages/deno/1.32.3/build.sh b/packages/deno/1.32.3/build.sh
new file mode 100644
index 0000000..8cda9bc
--- /dev/null
+++ b/packages/deno/1.32.3/build.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+curl -OL https://github.com/denoland/deno/releases/download/v1.32.3/deno-x86_64-unknown-linux-gnu.zip
+unzip -o deno-x86_64-unknown-linux-gnu.zip
+rm deno-x86_64-unknown-linux-gnu.zip
\ No newline at end of file
diff --git a/packages/deno/1.32.3/environment b/packages/deno/1.32.3/environment
new file mode 100644
index 0000000..0d5a1f7
--- /dev/null
+++ b/packages/deno/1.32.3/environment
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+export PATH=$PWD:$PATH
\ No newline at end of file
diff --git a/packages/deno/1.32.3/metadata.json b/packages/deno/1.32.3/metadata.json
new file mode 100644
index 0000000..2dc0a7c
--- /dev/null
+++ b/packages/deno/1.32.3/metadata.json
@@ -0,0 +1,20 @@
+{
+    "language": "deno",
+    "version": "1.32.3",
+    "dependencies": {},
+    "provides": [
+        {
+            "language": "typescript",
+            "aliases": [
+                "deno",
+                "deno-ts"
+            ]
+        },
+        {
+            "language": "javascript",
+            "aliases": [
+                "deno-js"
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/packages/deno/1.32.3/run b/packages/deno/1.32.3/run
new file mode 100644
index 0000000..5c9cfb6
--- /dev/null
+++ b/packages/deno/1.32.3/run
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+DENO_DIR=$PWD NO_COLOR=true deno run $@
\ No newline at end of file
diff --git a/packages/deno/1.32.3/test.deno.ts b/packages/deno/1.32.3/test.deno.ts
new file mode 100644
index 0000000..56ed4a0
--- /dev/null
+++ b/packages/deno/1.32.3/test.deno.ts
@@ -0,0 +1 @@
+console.log("OK")
\ No newline at end of file
diff --git a/packages/rust/1.68.2/build.sh b/packages/rust/1.68.2/build.sh
new file mode 100644
index 0000000..bfd853f
--- /dev/null
+++ b/packages/rust/1.68.2/build.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+curl -OL "https://static.rust-lang.org/dist/rust-1.68.2-x86_64-unknown-linux-gnu.tar.gz"
+tar xzvf rust-1.68.2-x86_64-unknown-linux-gnu.tar.gz
+rm rust-1.68.2-x86_64-unknown-linux-gnu.tar.gz
\ No newline at end of file
diff --git a/packages/rust/1.68.2/compile b/packages/rust/1.68.2/compile
new file mode 100644
index 0000000..c4b591a
--- /dev/null
+++ b/packages/rust/1.68.2/compile
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+# https://stackoverflow.com/questions/38041331/rust-compiler-cant-find-crate-for-std
+# Rust compiler needs to find the stdlib to link against
+rustc -o binary -L ${RUST_INSTALL_LOC}/rustc/lib -L ${RUST_INSTALL_LOC}/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib "$@"
+chmod +x binary
\ No newline at end of file
diff --git a/packages/rust/1.68.2/environment b/packages/rust/1.68.2/environment
new file mode 100644
index 0000000..77e21a4
--- /dev/null
+++ b/packages/rust/1.68.2/environment
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+# Put 'export' statements here for environment variables
+export PATH=$PWD/rust-1.68.2-x86_64-unknown-linux-gnu/rustc/bin/:$PATH
+export RUST_INSTALL_LOC=$PWD/rust-1.68.2-x86_64-unknown-linux-gnu
\ No newline at end of file
diff --git a/packages/rust/1.68.2/metadata.json b/packages/rust/1.68.2/metadata.json
new file mode 100644
index 0000000..e0cdb7c
--- /dev/null
+++ b/packages/rust/1.68.2/metadata.json
@@ -0,0 +1,7 @@
+{
+    "language": "rust",
+    "version": "1.68.2",
+    "aliases": [
+        "rs"
+    ]
+}
\ No newline at end of file
diff --git a/packages/rust/1.68.2/run b/packages/rust/1.68.2/run
new file mode 100644
index 0000000..bb85070
--- /dev/null
+++ b/packages/rust/1.68.2/run
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+shift
+./binary "$@"
\ No newline at end of file
diff --git a/packages/rust/1.68.2/test.rs b/packages/rust/1.68.2/test.rs
new file mode 100644
index 0000000..f5524c7
--- /dev/null
+++ b/packages/rust/1.68.2/test.rs
@@ -0,0 +1,3 @@
+fn main() {
+    println!("OK");
+}
\ No newline at end of file
diff --git a/packages/typescript/5.0.3/build.sh b/packages/typescript/5.0.3/build.sh
new file mode 100644
index 0000000..c753c69
--- /dev/null
+++ b/packages/typescript/5.0.3/build.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+source ../../node/18.15.0/build.sh
+
+source ./environment
+
+bin/npm install -g typescript@5.0.3
\ No newline at end of file
diff --git a/packages/typescript/5.0.3/compile b/packages/typescript/5.0.3/compile
new file mode 100644
index 0000000..d674bb0
--- /dev/null
+++ b/packages/typescript/5.0.3/compile
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+# Put instructions to compile source code, remove this file if the language does not require this stage
+
+rename 's/$/\.ts/' "$@" # Add .ts extension
+
+tsc *.ts
\ No newline at end of file
diff --git a/packages/typescript/5.0.3/environment b/packages/typescript/5.0.3/environment
new file mode 100644
index 0000000..c6ab089
--- /dev/null
+++ b/packages/typescript/5.0.3/environment
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+# Put 'export' statements here for environment variables
+export PATH=$PWD/bin:$PATH
\ No newline at end of file
diff --git a/packages/typescript/5.0.3/metadata.json b/packages/typescript/5.0.3/metadata.json
new file mode 100644
index 0000000..0a57acf
--- /dev/null
+++ b/packages/typescript/5.0.3/metadata.json
@@ -0,0 +1,5 @@
+{
+    "language": "typescript",
+    "version": "5.0.3",
+    "aliases": ["ts", "node-ts", "tsc", "typescript5", "ts5"]
+}
\ No newline at end of file
diff --git a/packages/typescript/5.0.3/run b/packages/typescript/5.0.3/run
new file mode 100644
index 0000000..4ce91c5
--- /dev/null
+++ b/packages/typescript/5.0.3/run
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+# Put instructions to run the runtime
+
+CODE=$1.js
+shift
+
+node $CODE "$@"
\ No newline at end of file
diff --git a/packages/typescript/5.0.3/test.ts b/packages/typescript/5.0.3/test.ts
new file mode 100644
index 0000000..c963843
--- /dev/null
+++ b/packages/typescript/5.0.3/test.ts
@@ -0,0 +1 @@
+console.log('OK');
\ No newline at end of file