From fc20ab2c4389edc1f3c7d4cf482ab49d04c14c4e Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Sun, 19 Apr 2026 09:30:09 +0200 Subject: [PATCH 1/4] docs: review rust vs typescript Signed-off-by: David Dal Busco --- docs/build/functions/index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/build/functions/index.md b/docs/build/functions/index.md index 3cfdf53a..28f53e6d 100644 --- a/docs/build/functions/index.md +++ b/docs/build/functions/index.md @@ -93,7 +93,9 @@ The Rust ecosystem is also more mature, having been supported on the Internet Co TypeScript support was introduced on Juno in April 2025. While developer-friendly, it currently lacks Node.js polyfills, which means many npm libraries may not work out of the box. That said, we’re actively improving this — and if there's a specific package or feature you'd like to use, reach out. We're happy to explore adding support. -It is worth to note that in both environments, there is no standard library or file system access. Functions like reading from or writing to disk aren’t available. Instead, e.g. Juno provides purpose-built features such as Storage. +Furthermore, a key advantage of TypeScript is the ability to share the same `j` schema types — built on Zod — across both your frontend and your Satellite functions, providing a single strongly typed source of truth for your data shapes with full type safety end-to-end. + +It is worth noting that in both environments, there is no standard library or file system access. Functions like reading from or writing to disk aren’t available. Instead, e.g. Juno provides purpose-built features such as Storage. Despite their differences, Rust and TypeScript serverless functions are designed with interoperability in mind. The API surface and structure are intentionally aligned, so migrating from TypeScript to Rust later should feel intuitive and straightforward. @@ -104,5 +106,6 @@ Despite their differences, Rust and TypeScript serverless functions are designed | **Performance** | ✅ Highest, runs natively in WASM | ⚠️ Interpreted by Rust, slower | | **Library Support** | ✅ Many crates | ⚠️ Limited (only few Node.js polyfills currently supported) | | **Ease of Use** | ✅ Developer-friendly (with or without AI) | ✅ Developer-friendly (with or without AI) | +| **Shared Types** | — | ✅ Share `j`/Zod schemas across frontend and backend | | **Migration Path** | — | ✅ Can migrate to Rust easily | | **Recommended For** | Production apps, performance-critical code | Prototypes, smaller tools, quick dev cycles | From 3b6564609e62f6addfc89d4d9abd735ee5d6eb3a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Apr 2026 07:32:13 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=93=84=20Update=20LLMs.txt=20snapshot?= =?UTF-8?q?=20for=20PR=20review?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .llms-snapshots/llms-full.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.llms-snapshots/llms-full.txt b/.llms-snapshots/llms-full.txt index 6189d305..bc23b836 100644 --- a/.llms-snapshots/llms-full.txt +++ b/.llms-snapshots/llms-full.txt @@ -2349,7 +2349,9 @@ The Rust ecosystem is also more mature, having been supported on the Internet Co TypeScript support was introduced on Juno in April 2025. While developer-friendly, it currently lacks Node.js polyfills, which means many npm libraries may not work out of the box. That said, we’re actively improving this — and if there's a specific package or feature you'd like to use, reach out. We're happy to explore adding support. -It is worth to note that in both environments, there is no standard library or file system access. Functions like reading from or writing to disk aren’t available. Instead, e.g. Juno provides purpose-built features such as Storage. +Furthermore, a key advantage of TypeScript is the ability to share the same `j` schema types — built on Zod — across both your frontend and your Satellite functions, providing a single strongly typed source of truth for your data shapes with full type safety end-to-end. + +It is worth noting that in both environments, there is no standard library or file system access. Functions like reading from or writing to disk aren’t available. Instead, e.g. Juno provides purpose-built features such as Storage. Despite their differences, Rust and TypeScript serverless functions are designed with interoperability in mind. The API surface and structure are intentionally aligned, so migrating from TypeScript to Rust later should feel intuitive and straightforward. @@ -2360,6 +2362,7 @@ Despite their differences, Rust and TypeScript serverless functions are designed | **Performance** | ✅ Highest, runs natively in WASM | ⚠️ Interpreted by Rust, slower | | **Library Support** | ✅ Many crates | ⚠️ Limited (only few Node.js polyfills currently supported) | | **Ease of Use** | ✅ Developer-friendly (with or without AI) | ✅ Developer-friendly (with or without AI) | +| **Shared Types** | — | ✅ Share `j`/Zod schemas across frontend and backend | | **Migration Path** | — | ✅ Can migrate to Rust easily | | **Recommended For** | Production apps, performance-critical code | Prototypes, smaller tools, quick dev cycles | From 18205c69329555a7672fa3af737d656413af4e94 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Sun, 19 Apr 2026 09:34:43 +0200 Subject: [PATCH 3/4] docs: tip Signed-off-by: David Dal Busco --- docs/build/functions/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/build/functions/index.md b/docs/build/functions/index.md index 28f53e6d..d4fc2913 100644 --- a/docs/build/functions/index.md +++ b/docs/build/functions/index.md @@ -109,3 +109,9 @@ Despite their differences, Rust and TypeScript serverless functions are designed | **Shared Types** | — | ✅ Share `j`/Zod schemas across frontend and backend | | **Migration Path** | — | ✅ Can migrate to Rust easily | | **Recommended For** | Production apps, performance-critical code | Prototypes, smaller tools, quick dev cycles | + +:::tip + +Even if experimental and less performant, if you're a TypeScript developer, TypeScript functions are the natural choice — you get a familiar workflow and shared types with your frontend out of the box. + +::: From 1c635611ad4cbf4228ff0f4a68693dce050d04d2 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Apr 2026 07:37:25 +0000 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=93=84=20Update=20LLMs.txt=20snapshot?= =?UTF-8?q?=20for=20PR=20review?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .llms-snapshots/llms-full.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.llms-snapshots/llms-full.txt b/.llms-snapshots/llms-full.txt index bc23b836..ef551013 100644 --- a/.llms-snapshots/llms-full.txt +++ b/.llms-snapshots/llms-full.txt @@ -2366,6 +2366,10 @@ Despite their differences, Rust and TypeScript serverless functions are designed | **Migration Path** | — | ✅ Can migrate to Rust easily | | **Recommended For** | Production apps, performance-critical code | Prototypes, smaller tools, quick dev cycles | +**Tip:** + +Even if experimental and less performant, if you're a TypeScript developer, TypeScript functions are the natural choice — you get a familiar workflow and shared types with your frontend out of the box. + # Lifecycle Understand the full journey of Serverless Functions in Juno, from setup and development to deployment and maintenance.