Skip to main content

v0.0.47

Summary

This release introduces support for writing serverless functions in TypeScript. Developers can now choose between Rust and TypeScript for backend logic, with both approaches designed to follow a similar structure and API surface. Switching between the two, or migrating over time, should feel intuitive. More details are available in the documentation, reference and guides.

It also marks a shift in focus toward local-first development. While previous versions defaulted to building directly against production, this release encourages starting locally. To support this, a new Docker image called Skylab has been introduced. It bundles everything needed for local development—including the Console UI—offering a setup that closely mirrors the mainnet experience.

Finally, this release prepares for the removal of the version() and build_version() endpoints in all modules. Instead, each WASM now includes a public juno:package custom section containing metadata such as the module’s name, version, and dependencies.

For example:

{
	"name": "@junobuild/satellite",
	"version": "0.0.22"
}

And if extended by a developer:

{
	"name": "test-satellite",
	"version": "0.0.1-test",
	"dependencies": {
		"@junobuild/satellite": "0.0.22"
	}
}

This new approach is more flexible and opens the door to features like module templates or fine-grained dependency management.

[!NOTE] No new versions of the modules included.

Overview

ModuleVersionBreaking changes
Sputnik0.1.0🆕 ️
CratesVersionBreaking changes
junobuild-satellitev0.1.0⚠️ (version() deprecated)
junobuild-storagev0.1.0
junobuild-collectionsv0.1.0
junobuild-sharedv0.1.0
junobuild-macrosv0.1.0
junobuild-utilsv0.1.0
LibraryVersionBreaking changes
@junobuild/corev0.1.11
@junobuild/core-standalonev0.1.11
@junobuild/adminv0.2.0⚠️
@junobuild/analyticsv0.1.8
@junobuild/functionsv0.1.0🆕
@junobuild/storagev0.1.7
@junobuild/consolev0.1.7
@junobuild/cli-toolsv0.1.9
@junobuild/configv0.1.6
@junobuild/config-loaderv0.2.1⚠️
@junobuild/utilsv0.1.3
@junobuild/errorsv0.0.7
CLIVersionBreaking changes
@junobuild/cliv0.2.14⚠️
PluginsVersionBreaking changes
@junobuild/vite-pluginv3.3.0⚠️
@junobuild/nextjs-pluginv3.3.0⚠️
TemplatesVersionBreaking changes
create-junov0.4.1⚠️
satellite-templatev0.0.5
observatory-templatesv0.0.3
DockerVersionBreaking changes
@junobuild/skylabv0.0.55🆕
@junobuild/satellitev0.0.55
@junobuild/consolev0.0.55
@junobuild/actionv0.1.0

Changes

Here is a list of changes included in this release:

Console (Backend)

No changes.

Console (Frontend)

The Console UI/UX has been improved as follows:

Features

  • Load version and dependency information using the new custom section juno:package (with fallback to previous methods for backward compatibility).
  • Mark version() and build_version() as deprecated.
  • Extend the store to handle version data and introduce a corresponding component loader.
  • Use the full window width for the Functions page.
  • Update the list of subnets.
  • Convert environment constants (e.g., dev, prod) into functions to improve testability.
  • Hide the navbar on scroll.
  • Review and update guides and related links.

Development-Only Features

  • Add a "Get ICP" button to the Wallet.
  • When creating a new module (Satellite or Orbiter), fetch the emulator identity and attach it as a controller.
  • Introduce a new SKYLAB environment used to run the Console UI locally and toggle features specific to the containerized development environment.
  • Display a "DEV Console" banner when the Console is running locally.
  • Skip calls to the BN if the relevant environment variables are not set.

Styles

  • Increase the main content max width to 1440px for better support on most devices (especially laptops with 1920px resolution).
  • Display version information as tags.

Build

  • Update dependencies.

Satellite

No changes released in this version.

Mission Control

No changes released in this version.

Orbiter

No changes released in this version.

Observatory

No changes released in this version.

Sputnik 🆕

Sputnik is a new module introduced in this release.

It extends the default Satellite module and reuses the same system of hooks and assertions. Rather than functioning as a standalone module, it acts primarily as a proxy, delegating execution to the serverless functions written by the developer.

In other words, it cannot be used on its own but serves as a runtime for custom logic.

Library

Please refer to the releases for details.

CLI

Please refer to the releases for details.

Plugins

Please refer to the releases for details.

Templates

Please refer to the create-juno and satellite-template releases for details.

GitHub Action

Please refer to the releases for details.

Docker

Please refer to the releases for details.

Proxy

Please refer to the releases for details.