Serverless canister functions bring TypeScript to the heart of ICP development

Developers building on the Internet Computer now have a fresh option for backend work, with support for serverless canister functions written entirely in TypeScript. The update is aimed at teams who already use ic-js on the frontend and want a smoother path to creating backend logic without switching languages or managing extra tooling.
The new setup lets developers write canister functions using familiar TypeScript while gaining access to built-in clients for ICP services including the ledger, ICRC standards, the CMC, NNS and SNS. The framework handles caller identity, removes the need for manual agent configuration and provides full type-safety across the stack. Supporters say the workflow makes it easier to prototype and ship features quickly, though others may still prefer Rust for performance-critical tasks.
One of the most talked-about features is the ability to perform ICP and ICRC transfers directly from serverless hooks. For example, a simple TypeScript function can now make an ICP transfer using the IcpLedgerCanister client with only a few lines of code. According to the team behind the update, this works inside datastore hooks, allowing atomic operations that tie storage actions and ledger calls together in a reliable way.
Early adopters in the community say the approach lowers the barrier for JavaScript and TypeScript developers who want to build on ICP without learning a new backend language. At the same time, some engineers note that Rust remains essential for certain workloads, meaning the ecosystem now offers parallel paths rather than replacing one with another.
Documentation and examples are already live, including a step-by-step guide showing how to make canister calls from a TypeScript environment. The update reflects a broader trend across the Web3 space where toolkits are evolving to meet developers where they are, rather than expecting them to adapt to entirely new stacks.
The team says it hopes the new workflow will encourage experimentation and make it easier for developers to ship production-ready features without backend friction.