Juno Adds TypeScript Custom Functions, Expanding Serverless Toolkit for Developers

Juno has introduced support for custom serverless functions in TypeScript, giving developers a new way to define callable endpoints directly within their applications. The update builds on its existing model, which already allowed similar functionality in Rust, and aims to bring both languages under a shared structure and workflow.

The addition centres on what Juno calls custom functions, designed to behave like endpoints that can be triggered from a frontend or other services. Until now, TypeScript support was limited to reactive hooks, which respond to events but do not allow developers to define their own callable logic. This release changes that by enabling more flexible interactions within applications built on the platform.

Developers can now create two types of functions. Query functions are read-only and intended for fast data retrieval without modifying state. Update functions, on the other hand, can both read and write data, making them suitable for operations that require persistence or side effects. This distinction mirrors patterns already familiar in decentralised computing, particularly where state changes need stronger guarantees.

Juno’s approach places a strong emphasis on type safety. Functions can be defined with optional arguments and return values, supported by a schema system built on top of Zod. These schemas are validated at runtime while also shaping the developer experience during the build process. The result is a setup where input and output structures are defined once and enforced across the application.

The update also introduces automatic client bindings. When a project is built, a type-safe API is generated based on the defined functions, removing the need for manual integration work. Developers can call backend logic from the frontend through a generated namespace, without handling serialization or writing additional connection code.

Juno has extended its schema tools to include environment-specific types, such as principals and byte arrays, alongside support for more complex data structures like discriminated unions. This allows developers to manage varied input formats within a single function while maintaining clarity in how different cases are handled.

The release reflects a broader effort to simplify backend development in decentralised applications while keeping the system predictable and structured. By aligning Rust and TypeScript under a similar model, Juno is positioning itself as a more accessible option for developers who may not want to work exclusively with lower-level languages.

At the same time, the effectiveness of this approach will depend on adoption. Competing platforms continue to offer their own abstractions for serverless and decentralised logic, and developers often weigh flexibility against ease of use when choosing tools. Juno’s latest update focuses on reducing friction, though its long-term impact will be shaped by how well it integrates into existing workflows.

For developers already working within the Juno ecosystem, the addition of TypeScript custom functions offers a more complete toolkit. For others, it presents another option in a growing field of platforms trying to make decentralised development feel closer to traditional web development.


Dear Reader,

Ledger Life is an independent platform dedicated to covering the Internet Computer (ICP) ecosystem and beyond. We focus on real stories, builder updates, project launches, and the quiet innovations that often get missed.

We’re not backed by sponsors. We rely on readers like you.

If you find value in what we publish—whether it’s deep dives into dApps, explainers on decentralised tech, or just keeping track of what’s moving in Web3—please consider making a donation. It helps us cover costs, stay consistent, and remain truly independent.

Your support goes a long way.

🧠 ICP Principal: ins6i-d53ug-zxmgh-qvum3-r3pvl-ufcvu-bdyon-ovzdy-d26k3-lgq2v-3qe

🧾 ICP Address: f8deb966878f8b83204b251d5d799e0345ea72b8e62e8cf9da8d8830e1b3b05f

Every contribution helps keep the lights on, the stories flowing, and the crypto clutter out.

Thank you for reading, sharing, and being part of this experiment in decentralised media.
—Team Ledger Life

0

Community Discussion

Loading discussion…

LEAVE A REPLY

Please enter your comment!
Please enter your name here

More like this

Chinese Gold ETFs Hold Firm as North America Sees...

Investor behaviour in gold funds has split along regional lines, with fresh data showing a clear divergence...

ICP rolls out ckBTC skill to simplify native Bitcoin...

A new developer-focused release tied to Internet Computer is aiming to make working with Bitcoin on-chain more...

Cloudly Aims to Cut Platform Fees with Web3 Creator...

A new project shared by Paul is positioning itself as an alternative to traditional creator platforms, with...