diff --git a/.llms-snapshots/llms-full.txt b/.llms-snapshots/llms-full.txt index 9ebdf06d..d6ecc91a 100644 --- a/.llms-snapshots/llms-full.txt +++ b/.llms-snapshots/llms-full.txt @@ -2,6 +2,8 @@ > Juno is your self-contained serverless platform for building full-stack web apps without DevOps or backend boilerplate. Developers use their favorite frontend frameworks like React, SvelteKit, or Next.js, and write backend logic in Rust or TypeScript as serverless functions. Everything is bundled into a single WebAssembly (WASM) artifact that runs in a decentralized, stateful environment — under full user ownership — on the Internet Computer. Juno cannot access or modify your code, data, or infrastructure. It supports GitHub Actions for deploys and upgrades, and provides both a CLI and web Console UI for managing projects. The local development environment closely mirrors production, ensuring smooth transitions from build to deployment — all with the privacy and control developers expect from self-hosting. +Juno is in **maintenance** and not actively developed anymore. + # Getting Started with Juno Unless you're looking to solely host your static website, the recommended way to start with Juno is by developing locally using the emulator — a production-like environment with full support for data, authentication, storage, and serverless functions. @@ -70,6 +72,8 @@ Learn more about the available products, from auth and data to hosting and funct * [Monitoring](/docs/management/monitoring.md) * [Snapshots](/docs/management/snapshots.md) +Juno is in **maintenance** and not actively developed anymore. + # Start a New Project With Juno, a project typically lives in a single repository — combining your frontend, serverless functions, and configuration. Whether you're starting from scratch or extending an existing app, the result is a full-stack project that deploys as a single container. @@ -149,6 +153,8 @@ Everything — frontend, backend, and app state — is bundled into a single Web This architecture keeps development and deployment straightforward, reliable, and fully yours. +Juno is in **maintenance** and not actively developed anymore. + # Setup the SDK To connect your app to a Satellite and use Juno's features — like authentication, data, storage, and serverless functions — you'll need to initialize the SDK. @@ -247,6 +253,8 @@ You can also pass the Satellite ID manually to the SDK, though using the plugins import { initSatellite } from "@junobuild/core";await initSatellite({ satelliteId: "your-actual-satellite-id"}); ``` +Juno is in **maintenance** and not actively developed anymore. + # Local Development Juno offers something most platforms don't: a full local development environment that closely mirrors production. @@ -469,6 +477,8 @@ For example, you can use the following script: #!/usr/bin/env bash# Check if a principal is passed as an argument; otherwise, prompt for itif [ -z "$1" ]; then read -r -p "Enter the Wallet ID (owner account, principal): " PRINCIPALelse PRINCIPAL=$1fi# Make a transfer request to the admin servercurl "http://localhost:5999/ledger/transfer/?to=$PRINCIPAL" ``` +Juno is in **maintenance** and not actively developed anymore. + # Create a Satellite When you're ready to deploy your project to production, you'll need to create a [Satellite](/docs/terminology.md#satellite). @@ -499,6 +509,8 @@ Choose **Application** if your project needs user sign-in, data management, or s You can change this later in your Satellite "Hosting" settings. +Juno is in **maintenance** and not actively developed anymore. + # Analytics Juno Analytics, a simple, performant, and open-source analytics solution that respects your users' privacy and doesn't use cookies, ensuring anonymity while providing valuable user insights. @@ -595,6 +607,8 @@ Consequently, this leaves the canister open to potential attacks that can pollut 2. Enable [monitoring](/docs/management/monitoring.md) to ensure your modules are automatically refueled and stay online. 3. Interpret the statistics provided by this feature with some reservation, similar to any other analytics data, considering potential inaccuracies. +Juno is in **maintenance** and not actively developed anymore. + # Development Learn how to track page views, custom events, and performance metrics. @@ -667,6 +681,8 @@ As long as your URLs include UTM tags, campaign data will be collected and shown Only the `utm_source` field is mandatory. If it's missing, the campaign will not be tracked. +Juno is in **maintenance** and not actively developed anymore. + # Setup This section covers how to integrate and configure Juno Analytics in your app or website. @@ -868,6 +884,8 @@ juno.config.js import { defineConfig } from "@junobuild/config";export default defineConfig({ satellite: { ids: { production: "qsgjb-riaaa-aaaaa-aaaga-cai" }, hosting: { source: "dist" } }, orbiter: { ids: { production: "aaaa-bbbbb-ccccc-ddddd-cai", development: "ffff-eeee-ddddd-ccccc-cai" } }}); ``` +Juno is in **maintenance** and not actively developed anymore. + # Authentication Juno provides a secure, passwordless authentication framework built directly into your project. It supports multiple providers out of the box, including: @@ -951,6 +969,8 @@ Each authentication method has its strengths. The right choice depends not only Many developers combine multiple providers - for example, offering Google as the default and Internet Identity or Passkeys as alternatives. +Juno is in **maintenance** and not actively developed anymore. + # Local Development and E2E Implementing Google, Internet Identity, or Passkeys requires some setup and doesn't always fit best in a local development environment or E2E test suite. For example, they take various steps to complete and therefore consume repetitive time. @@ -1039,6 +1059,8 @@ Clearing identifiers only removes the usage history. * Use different identifiers to test multi-user scenarios * Switch to real providers (Google, Internet Identity, Passkeys) before deploying +Juno is in **maintenance** and not actively developed anymore. + # GitHub GitHub Sign-In lets users authenticate with their existing GitHub account — a natural fit for developer-facing apps. @@ -1244,6 +1266,8 @@ Since you are self-hosting the proxy, you will also need to deploy your own Obse Reach out if you need guidance on setting that up. +Juno is in **maintenance** and not actively developed anymore. + # Google Google Sign-In lets users authenticate with their existing Google account using OpenID Connect (OIDC) - a modern, secure identity standard built on top of OAuth 2.0. @@ -1458,6 +1482,8 @@ This setup means your Satellite **trusts Juno** to deliver the correct, untemper If you prefer to control this part as well, or if you want to improve redundancy in your setup while taking care of the related cost, you can spin your own Observatory instance. Reach out if you're interested in setting that up. +Juno is in **maintenance** and not actively developed anymore. + # Internet Identity [Internet Identity](https://identity.ic0.app) lets users authenticate securely and anonymously through a decentralized identity system built for the Internet Computer. @@ -1555,6 +1581,8 @@ If you're unsure which domain to use as the primary domain, here are two common Choosing the right derivation origin early helps avoid identity issues later, but both approaches are valid depending on your goals. +Juno is in **maintenance** and not actively developed anymore. + # Management This page provides an overview of the administrative functions available in the Juno Console related to user management. @@ -1641,6 +1669,8 @@ You can then share the app link with others. When they attempt to sign in and ar They can send you their key, and you can add them to the list manually to grant access. +Juno is in **maintenance** and not actively developed anymore. + # Passkeys Passkeys let your users authenticate without passwords - using their device's built-in security features such as Face ID, Touch ID, or device unlock. @@ -1771,6 +1801,8 @@ import { isWebAuthnAvailable } from "@junobuild/core";if (await isWebAuthnAvaila * Combine Passkeys with other providers (like [Google](/docs/build/authentication/google.md) or [Internet Identity](/docs/build/authentication/internet-identity.md)) to cover both mainstream and decentralized use cases. * Avoid changing your app's domain setup after users have registered, as identities are tied to the original domain scope. +Juno is in **maintenance** and not actively developed anymore. + # Authentication Utilities These utilities work with **any authentication provider**. @@ -1872,6 +1904,8 @@ The worker also emits an event named `junoDelegationRemainingTime`, which provid document.addEventListener( "junoDelegationRemainingTime", ({ detail: remainingTime }) => { // Display the remaining session duration to your users }, { passive: true }); ``` +Juno is in **maintenance** and not actively developed anymore. + # Datastore The Juno Datastore offers a simple key-value model, organized by collections containing documents, for managing structured data. @@ -1946,6 +1980,8 @@ Both Datastore and Storage use a unique identifier per item — but they refer t * Used to serve, list, or delete files. * Example: `/images/logo.png` (collection: `images`) or `/avatars/user42/profile.jpg` (collection: `avatars`). +Juno is in **maintenance** and not actively developed anymore. + # Collections You can create or update a collection in the "Collections" tab in Juno's console under the [datastore](https://console.juno.build/datastore) view. @@ -1986,6 +2022,8 @@ If not set to immutable, you can modify the permissions at any time, and the cha Any collection with read permissions set to `public`, `managed` or `restricted` will allow the developer to view its content in the console under the [datastore](https://console.juno.build/datastore) view. +Juno is in **maintenance** and not actively developed anymore. + # Development This page provides an overview of how to integrate and manage documents using the Juno SDK, including adding, retrieving, updating, listing, and deleting documents within your app. @@ -2272,6 +2310,8 @@ You never need to set this parameter in a browser context. import { getDoc } from "@junobuild/core";await getDoc({ collection: "my_collection_key", key: "my_document_key", satellite: { identity: myIdentity, satelliteId: "aaaaa-bbbbb-ccccc-ddddd-cai", container: true }}); ``` +Juno is in **maintenance** and not actively developed anymore. + # Functions Functions are a set of features enabling developers to extend the native capabilities of [Satellites](/docs/terminology.md#satellite) using Rust or TypeScript. They let you define serverless behaviors directly within your containerized environment. @@ -2370,6 +2410,8 @@ Despite their differences, Rust and TypeScript serverless functions are designed 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. +Juno is in **maintenance** and not actively developed anymore. + # Lifecycle Understand the full journey of Serverless Functions in Juno, from setup and development to deployment and maintenance. @@ -2527,6 +2569,8 @@ A quick reference for the most common CLI commands and deployment workflows when | `juno functions publish --no-apply` in CI → `juno changes apply` → `juno functions upgrade --cdn-path ...` | CI/CD with submit-only access. | | `juno functions publish --mode staging` | CI/CD using staging environment. | +Juno is in **maintenance** and not actively developed anymore. + # Logs Writing and viewing logs is a crucial tool for debugging and monitoring your code. Serverless Functions offer you the option to utilize loggers to report status effectively. @@ -2580,6 +2624,8 @@ Logs are stored in stable memory, accommodating up to 100 entries. Once this lim | `error` | Error | Logs an error message. | | `error_with_data` | Error | Logs an error message with additional serialized data. | +Juno is in **maintenance** and not actively developed anymore. + # Development When you're ready to implement Functions within your Juno Satellite, you'll have a variety of event-driven macros at your disposal, enabling custom logic execution in response to specific actions. Here's how to implement each available Function: @@ -2916,6 +2962,8 @@ For practical use cases, check out the [Examples](/docs/guides/rust.md) page wit For practical use cases, check out the [Examples](/docs/guides/typescript.md) page with sample projects and resources available on GitHub. +Juno is in **maintenance** and not actively developed anymore. + # Rust This page covers advanced options for writing serverless functions in Rust. @@ -3018,6 +3066,8 @@ For instance: cargo clippy --target=wasm32-unknown-unknown ``` +Juno is in **maintenance** and not actively developed anymore. + # TypeScript This page covers advanced options for writing serverless functions in TypeScript. @@ -3086,6 +3136,8 @@ This version is embedded into the compiled Wasm binary and displayed in the Juno You can use any versioning scheme that suits your development workflow (e.g. `0.1.0`, `1.0.0-beta`, `2025.04.18`...). +Juno is in **maintenance** and not actively developed anymore. + # Hosting Juno Hosting makes it easy to put your project online: fast, secure, and reliable by default. @@ -3104,6 +3156,8 @@ Want to maintain your unique brand identity? You can use your own domain - like This comes with an automatically generated SSL certificate for each domain, ensuring secure connections for your users. +Juno is in **maintenance** and not actively developed anymore. + # Configuration You can customize your hosting environment to fit your needs, including: @@ -3376,6 +3430,8 @@ juno.config.js import { defineConfig } from "@junobuild/config";export default defineConfig({ satellite: { ids: { production: "qsgjb-riaaa-aaaaa-aaaga-cai" }, hosting: { source: "dist" }, assertions: { heapMemory: false } }}); ``` +Juno is in **maintenance** and not actively developed anymore. + # Development This section covers how to configure and manage your custom domain in Juno, including setting up DNS records, troubleshooting common issues, and ensuring compatibility with various domain providers. @@ -3454,6 +3510,8 @@ If you're having trouble, feel free to reach out for assistance—we’re happy If one of the status `Pending...` is reached, the console will automatically refresh the status every few seconds until your domain is available. +Juno is in **maintenance** and not actively developed anymore. + # Storage Juno Storage is for files — like images or other user-generated content. @@ -3532,6 +3590,8 @@ Both Datastore and Storage use a unique identifier per item — but they refer t * Used to serve, list, or delete files. * Example: `/images/logo.png` (collection: `images`) or `/avatars/user42/profile.jpg` (collection: `avatars`). +Juno is in **maintenance** and not actively developed anymore. + # Collections You can create or update a collection in the "Collections" tab in Juno's console under the [storage](https://console.juno.build/storage) view. @@ -3576,6 +3636,8 @@ If not set to immutable, you can modify the permissions at any time, and the cha Any collection with read permissions set to `public`, `managed` or `restricted` will allow the developer to view its content in the console under the [storage](https://console.juno.build/storage) view. +Juno is in **maintenance** and not actively developed anymore. + # Development This page explains how to manage assets using the Juno SDK, including uploading, listing, counting, and deleting files within your application. It also covers configuration options for optimizing storage and access control. @@ -3922,6 +3984,8 @@ You never need to set this parameter in a browser context. import { getAsset } from "@junobuild/core";await getAsset({ collection: "my_collection_key", fullPath: "/images/logo.png", satellite: { identity: myIdentity, satelliteId: "aaaaa-bbbbb-ccccc-ddddd-cai", container: true }}); ``` +Juno is in **maintenance** and not actively developed anymore. + # What makes Juno a great Heroku alternative Heroku introduced a simple way to deploy apps — push code, and it ran in the cloud. It remains a solid choice for long-running, traditional web applications. @@ -4012,6 +4076,8 @@ If you love Heroku's simplicity but want a platform designed for the next decade Ready to explore Juno? [Start building](/docs/intro.md) +Juno is in **maintenance** and not actively developed anymore. + # What makes Juno a great Netlify alternative Netlify has long been a go-to platform for frontend developers. It pioneered the Jamstack movement, offers smooth Git-based workflows, and makes shipping static sites fast and simple. @@ -4117,6 +4183,8 @@ If you want the same ease — with ownership, clarity, and room to scale — Jun Ready to explore Juno? [Start building](/docs/intro.md) +Juno is in **maintenance** and not actively developed anymore. + # What makes Juno a great Railway alternative Railway has earned a strong reputation among developers by making deployment simple and removing infrastructure friction. It modernized the Heroku experience with a polished workflow and transparent usage-based pricing — great for teams who want to ship quickly without managing cloud resources. @@ -4223,6 +4291,8 @@ Then **Juno is a powerful Railway alternative** — all the developer convenienc Ready to explore Juno? [Start building](/docs/intro.md) +Juno is in **maintenance** and not actively developed anymore. + # What makes Juno a great self-hosting alternative For years, developers had two choices: host everything themselves, or rely on a managed platform. @@ -4312,6 +4382,8 @@ If you want the privacy and autonomy of running your own server, without becomin Ready to explore Juno? [Start building](/docs/intro.md) +Juno is in **maintenance** and not actively developed anymore. + # What makes Juno a great Vercel alternative Vercel has been a default choice for frontend teams building with Next.js. It's fast, convenient, and delivers a world-class developer experience. For teams prioritizing raw speed and integration with the centralized cloud ecosystem, Vercel is the established leader. @@ -4417,6 +4489,8 @@ Then **Juno is a powerful Vercel alternative** — the same serverless experienc Ready to explore Juno? [Start building](/docs/intro.md) +Juno is in **maintenance** and not actively developed anymore. + # Frontend Build full apps with Juno using your preferred frontend framework. These examples cover everything from auth to data handling with React, SvelteKit, Angular, Next.js, and more. @@ -4449,6 +4523,8 @@ A fullstack note-taking app built with Angular, and Tailwind CSS using Juno for A fullstack note-taking app built with vanilla JavaScript, and Tailwind CSS using Juno for authentication, data, and file storage.](/docs/examples/frontend/vanilla-javascript.md) +Juno is in **maintenance** and not actively developed anymore. + # Functions Write serverless backend logic for your app using TypeScript or Rust. These examples show how to use hooks, assertions, and common function patterns on Juno. @@ -4461,6 +4537,8 @@ Write serverless backend logic for your app using TypeScript or Rust. These exam 3 items](/docs/examples/functions/typescript.md) +Juno is in **maintenance** and not actively developed anymore. + # Frontend Build full apps with Juno using your preferred frontend framework. These examples cover everything from auth to data handling with React, SvelteKit, Angular, Next.js, and more. @@ -4493,6 +4571,8 @@ A fullstack note-taking app built with Angular, and Tailwind CSS using Juno for A fullstack note-taking app built with vanilla JavaScript, and Tailwind CSS using Juno for authentication, data, and file storage.](/docs/examples/frontend/vanilla-javascript.md) +Juno is in **maintenance** and not actively developed anymore. + # Angular Example This project is a note-taking app template built with **Angular**, **TypeScript**, and **Tailwind CSS**, designed to demonstrate integration with Juno for app development. It showcases authentication, data storage, and file storage using Juno's Satellite container. @@ -4623,6 +4703,8 @@ The following functions from `@junobuild/core` are used in this example: | `uploadFile` | Upload a file to storage | [`src/app/components/modal/modal.component.ts`](https://github.com/junobuild/create-juno/blob/main/templates/angular-example/src/app/components/modal/modal.component.ts) | [Upload file](/docs/build/storage/development.md#upload-file) | | `deleteAsset` | Delete a file from storage | [`src/app/components/delete/delete.component.ts`](https://github.com/junobuild/create-juno/blob/main/templates/angular-example/src/app/components/delete/delete.component.ts) | [Delete asset](/docs/build/storage/development.md#delete-asset) | +Juno is in **maintenance** and not actively developed anymore. + # Next.js Example This project is a note-taking app template built with **Next.js**, **TypeScript**, and **Tailwind CSS**, designed to demonstrate integration with Juno for app development. It showcases authentication, data storage, and file storage using Juno's Satellite container. @@ -4751,6 +4833,8 @@ The following functions from `@junobuild/core` are used in this example: | `uploadFile` | Upload a file to storage | [`src/components/modal.tsx`](https://github.com/junobuild/create-juno/blob/main/templates/nextjs-example/src/components/modal.tsx) | [Upload file](/docs/build/storage/development.md#upload-file) | | `deleteAsset` | Delete a file from storage | [`src/components/delete.tsx`](https://github.com/junobuild/create-juno/blob/main/templates/nextjs-example/src/components/delete.tsx) | [Delete asset](/docs/build/storage/development.md#delete-asset) | +Juno is in **maintenance** and not actively developed anymore. + # React JavaScript Example This project is a note-taking app template built with **React**, **JavaScript**, and **Tailwind CSS**, designed to demonstrate integration with Juno for app development. It showcases authentication, data storage, and file storage using Juno's Satellite container. @@ -4883,6 +4967,8 @@ The following functions from `@junobuild/core` are used in this example: | `uploadFile` | Upload a file to storage | [`src/components/Modal.jsx`](https://github.com/junobuild/create-juno/blob/main/templates/react-example/src/components/Modal.jsx) | [Upload file](/docs/build/storage/development.md#upload-file) | | `deleteAsset` | Delete a file from storage | [`src/components/Delete.jsx`](https://github.com/junobuild/create-juno/blob/main/templates/react-example/src/components/Delete.jsx) | [Delete asset](/docs/build/storage/development.md#delete-asset) | +Juno is in **maintenance** and not actively developed anymore. + # React TypeScript Example This project is a note-taking app template built with **React**, **TypeScript**, and **Tailwind CSS**, designed to demonstrate integration with Juno for app development. It showcases authentication, data storage, and file storage using Juno's Satellite container. @@ -5015,6 +5101,8 @@ The following functions from `@junobuild/core` are used in this example: | `uploadFile` | Upload a file to storage | [`src/components/Modal.tsx`](https://github.com/junobuild/create-juno/blob/main/templates/react-ts-example/src/components/Modal.tsx) | [Upload file](/docs/build/storage/development.md#upload-file) | | `deleteAsset` | Delete a file from storage | [`src/components/Delete.tsx`](https://github.com/junobuild/create-juno/blob/main/templates/react-ts-example/src/components/Delete.tsx) | [Delete asset](/docs/build/storage/development.md#delete-asset) | +Juno is in **maintenance** and not actively developed anymore. + # SvelteKit Example This project is a note-taking app template built with **SvelteKit**, **TypeScript**, and **Tailwind CSS**, designed to demonstrate integration with Juno for app development. It showcases authentication, data storage, and file storage using Juno's Satellite container. @@ -5144,6 +5232,8 @@ The following functions from `@junobuild/core` are used in this example: | `uploadFile` | Upload a file to storage | [`src/lib/components/Modal.svelte`](https://github.com/junobuild/create-juno/blob/main/templates/sveltekit-example/src/lib/components/Modal.svelte) | [Upload file](/docs/build/storage/development.md#upload-file) | | `deleteAsset` | Delete a file from storage | [`src/lib/components/Delete.svelte`](https://github.com/junobuild/create-juno/blob/main/templates/sveltekit-example/src/lib/components/Delete.svelte) | [Delete asset](/docs/build/storage/development.md#delete-asset) | +Juno is in **maintenance** and not actively developed anymore. + # Vanilla JavaScript Example This project is a note-taking app template built with **vanilla JavaScript** and **Tailwind CSS**, designed to demonstrate integration with Juno for app development. It showcases authentication, data storage, and file storage using Juno's Satellite container. @@ -5271,6 +5361,8 @@ The following functions from `@junobuild/core` are used in this example: | `uploadFile` | Upload a file to storage | [`src/components/modal.js`](https://github.com/junobuild/create-juno/blob/main/templates/vanilla-js-example/src/components/modal.js) | [Upload file](/docs/build/storage/development.md#upload-file) | | `deleteAsset` | Delete a file from storage | [`src/components/delete.js`](https://github.com/junobuild/create-juno/blob/main/templates/vanilla-js-example/src/components/delete.js) | [Delete asset](/docs/build/storage/development.md#delete-asset) | +Juno is in **maintenance** and not actively developed anymore. + # Vue Example This project is a note-taking app template built with **Vue**, **TypeScript**, and **Tailwind CSS**, designed to demonstrate integration with Juno for app development. It showcases authentication, data storage, and file storage using Juno's Satellite container. @@ -5400,6 +5492,8 @@ The following functions from `@junobuild/core` are used in this example: | `uploadFile` | Upload a file to storage | [`src/components/Modal.vue`](https://github.com/junobuild/create-juno/blob/main/templates/vue-example/src/components/Modal.vue) | [Upload file](/docs/build/storage/development.md#upload-file) | | `deleteAsset` | Delete a file from storage | [`src/components/Delete.vue`](https://github.com/junobuild/create-juno/blob/main/templates/vue-example/src/components/Delete.vue) | [Delete asset](/docs/build/storage/development.md#delete-asset) | +Juno is in **maintenance** and not actively developed anymore. + # Functions Write serverless backend logic for your app using TypeScript or Rust. These examples show how to use hooks, assertions, and common function patterns on Juno. @@ -5412,6 +5506,8 @@ Write serverless backend logic for your app using TypeScript or Rust. These exam 3 items](/docs/examples/functions/typescript.md) +Juno is in **maintenance** and not actively developed anymore. + # Rust Examples of writing serverless functions in Rust for Juno. Includes patterns like custom assertions, data manipulation and calls. @@ -5432,6 +5528,8 @@ An example showing how to dynamically generate and store assets (like JSON) in S An example showing how to call external canisters (e.g., ICRC ledger) from a serverless function written in Rust using Juno Satellites.](/docs/examples/functions/rust/canister-calls.md) +Juno is in **maintenance** and not actively developed anymore. + # TypeScript Examples of writing serverless functions in TypeScript for Juno. Includes patterns like custom assertions, data manipulation and calls. @@ -5448,6 +5546,8 @@ An example demonstrating how to modify and re-save documents in Juno Satellites An example showing how to call external canisters (e.g., ICRC ledger) from a serverless function written in TypeScript using Juno Satellites.](/docs/examples/functions/typescript/canister-calls.md) +Juno is in **maintenance** and not actively developed anymore. + # Rust Examples of writing serverless functions in Rust for Juno. Includes patterns like custom assertions, data manipulation and calls. @@ -5468,6 +5568,8 @@ An example showing how to dynamically generate and store assets (like JSON) in S An example showing how to call external canisters (e.g., ICRC ledger) from a serverless function written in Rust using Juno Satellites.](/docs/examples/functions/rust/canister-calls.md) +Juno is in **maintenance** and not actively developed anymore. + # Rust Assertion Example This example demonstrates how to write a **custom assertion** in **Rust** for a Juno **serverless function**. It shows how to intercept and validate data operations—such as rejecting specific content—before it's written to the datastore. @@ -5644,6 +5746,8 @@ These crates are used to build and extend serverless functions in Rust with Juno * [junobuild-shared](https://docs.rs/junobuild-shared): Shared types and helpers for Juno projects. Used by all containers including the Console. * [junobuild-storage](https://docs.rs/junobuild-storage): Storage helpers for working with assets and HTTP headers in Juno. +Juno is in **maintenance** and not actively developed anymore. + # Making Canister Calls in Rust Serverless Functions This example demonstrates how to use **Rust serverless functions** to perform canister calls (such as `transfer_from` on the ICP ledger) in response to Datastore events in your Juno **Satellite**. @@ -5815,6 +5919,8 @@ These crates are used to build and extend serverless functions in Rust with Juno * [ic-cdk](https://docs.rs/ic-cdk): Internet Computer canister development kit for Rust. +Juno is in **maintenance** and not actively developed anymore. + # Generating Assets with Rust Serverless Functions This example demonstrates how to use **Rust serverless functions** to dynamically generate and store assets in **Juno Storage** from a **Satellite**. In this example, the generated assets are JSON files. @@ -5976,6 +6082,8 @@ These crates are used to build and extend serverless functions in Rust with Juno * [junobuild-shared](https://docs.rs/junobuild-shared): Shared types and helpers for Juno projects. Used by all containers including the Console. * [junobuild-storage](https://docs.rs/junobuild-storage): Storage helpers for working with assets and HTTP headers in Juno. +Juno is in **maintenance** and not actively developed anymore. + # Mutating Documents with Rust Hooks This example demonstrates how to use **hooks in Rust** to modify documents automatically when they're created or updated in your Juno **Satellite**. @@ -6131,6 +6239,8 @@ These crates are used to build and extend serverless functions in Rust with Juno * [junobuild-shared](https://docs.rs/junobuild-shared): Shared types and helpers for Juno projects. Used by all containers including the Console. * [junobuild-storage](https://docs.rs/junobuild-storage): Storage helpers for working with assets and HTTP headers in Juno. +Juno is in **maintenance** and not actively developed anymore. + # TypeScript Examples of writing serverless functions in TypeScript for Juno. Includes patterns like custom assertions, data manipulation and calls. @@ -6147,6 +6257,8 @@ An example demonstrating how to modify and re-save documents in Juno Satellites An example showing how to call external canisters (e.g., ICRC ledger) from a serverless function written in TypeScript using Juno Satellites.](/docs/examples/functions/typescript/canister-calls.md) +Juno is in **maintenance** and not actively developed anymore. + # TypeScript Assertion Example This example demonstrates how to write a **custom assertion** in **TypeScript** for a Juno **serverless function**. It shows how to intercept and validate data operations—such as rejecting specific content—before it's written to the datastore. @@ -6312,6 +6424,8 @@ It’s a great reference for more advanced setups and orchestration. * [Configuration Reference](/docs/reference/configuration.md) * [Datastore Collections](/docs/build/datastore/collections.md) +Juno is in **maintenance** and not actively developed anymore. + # Making Canister Calls in TypeScript Serverless Functions This example demonstrates how to use **TypeScript serverless functions** to perform canister calls (such as `transfer_from` on the ICP ledger) in response to Datastore events in your Juno **Satellite**. @@ -6487,6 +6601,8 @@ It’s a great reference for more advanced setups and orchestration. * [Configuration Reference](/docs/reference/configuration.md) * [Datastore Collections](/docs/build/datastore/collections.md) +Juno is in **maintenance** and not actively developed anymore. + # Mutating Documents with TypeScript Hooks This example demonstrates how to use **hooks in TypeScript** to modify documents automatically when they're created or updated in your Juno **Satellite**. @@ -6652,6 +6768,8 @@ It’s a great reference for more advanced setups and orchestration. * [Configuration Reference](/docs/reference/configuration.md) * [Datastore Collections](/docs/build/datastore/collections.md) +Juno is in **maintenance** and not actively developed anymore. + # Using Juno with AI Juno provides several ways to integrate with AI tools, from documentation context files to a full MCP server for managing your project through natural language. @@ -6773,6 +6891,8 @@ Once configured, you can interact with Juno directly through your AI tool. Just * [npm package](https://www.npmjs.com/package/junobuild-mcp-server) * [Source repository](https://github.com/nami2111/junobuild-mcp) +Juno is in **maintenance** and not actively developed anymore. + # Angular Explore how to create a Juno project developed with Angular. @@ -6785,6 +6905,8 @@ Learn how to integrate Juno with Angular. Follow our quickstart guide to set up Learn how to deploy your Angular project to Juno. Follow the deployment guide to configure static exports, set up your Satellite, and publish your site to production.](/docs/guides/angular/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Astro Explore how to create a Juno project developed with Astro. @@ -6797,6 +6919,8 @@ Learn how to integrate Juno with Astro. Follow our quickstart guide to set up yo Learn how to deploy your Astro project to Juno. Follow the deployment guide to configure static exports, set up your Satellite, and publish your site to production.](/docs/guides/astro/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Docusaurus Explore how to deploy a Juno project developed with Docusaurus. @@ -6805,6 +6929,8 @@ Explore how to deploy a Juno project developed with Docusaurus. Learn how to deploy your Docusaurus project to Juno. Follow the deployment guide to configure static exports, set up your Satellite, and publish your site to production.](/docs/guides/docusaurus/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # End-to-End Testing End to end (E2E) testing helps you verify that your application behaves as expected when deployed. It covers real workflows — from serverless functions to client calls — and helps catch issues that unit tests might miss. @@ -6893,6 +7019,8 @@ So, how it works: That's it. Minimal setup, no need for the Console UI, and everything runs headlessly in CI. +Juno is in **maintenance** and not actively developed anymore. + # Manual Deployment We recommend using [GitHub Actions](/docs/guides/github-actions.md) for automated and efficient deployments. However, this guide walks you through manually deploying your app using the Juno CLI, covering the setup, build, and deployment process to your Juno Satellite. @@ -6997,6 +7125,8 @@ juno functions buildjuno functions publishjuno functions upgrade For a full overview of the serverless lifecycle—including setup, development, local testing, publishing, approvals, and upgrades — see the Serverless Functions Lifecycle guide. +Juno is in **maintenance** and not actively developed anymore. + # Next.js Explore how to create a Juno project developed with Next.js. @@ -7009,6 +7139,8 @@ Learn how to integrate Juno with Next.js. Follow our quickstart guide to set up Learn how to deploy your Next.js project to Juno. Follow the deployment guide to configure static exports, set up your satellite, and publish your site to production.](/docs/guides/nextjs/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Use Juno in a NodeJS context This guide explains how to use Juno from a client running in a non-interactive environment (e.g. NodeJS, scripts, or CI). @@ -7069,6 +7201,8 @@ import { getDoc } from "@junobuild/core";import { defineRun } from "@junobuild/c This script retrieves a document using `getDoc`, selects the document ID based on the current `mode` (for example staging or production), and writes the result to `mydoc.json`, using `jsonReplacer` to handle types not supported by JSON such as `BigInt`. +Juno is in **maintenance** and not actively developed anymore. + # React Explore how to create a Juno project developed with React. @@ -7081,6 +7215,8 @@ Learn how to integrate Juno with React. Follow our quickstart guide to set up yo Learn how to deploy your React project to Juno. Follow the deployment guide to configure static exports, set up your Satellite, and publish your site to production.](/docs/guides/react/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Code Functions in Rust Learn how to write and extend serverless functions for your Satellite in Rust. @@ -7265,6 +7401,8 @@ One consideration when using replicated mode: since all nodes execute the same r Looking for more examples? Check out [Rust](/docs/examples/functions/rust.md) for patterns like custom assertions, data manipulation, and canister calls. +Juno is in **maintenance** and not actively developed anymore. + # SvelteKit Explore how to create a Juno project developed with SvelteKit. @@ -7277,6 +7415,8 @@ Learn how to integrate Juno with SvelteKit. Follow our quickstart guide to set u Learn how to deploy your SvelteKit project to Juno. Follow the deployment guide to configure static exports, set up your satellite, and publish your site to production.](/docs/guides/sveltekit/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Serverless Functions in TypeScript Learn how to write and extend serverless functions for your Satellite in TypeScript. @@ -7493,6 +7633,8 @@ import { j } from "@junobuild/schema";const Schema = j.strictObject({ name: j.s 📦 Import from `@junobuild/schema` +Juno is in **maintenance** and not actively developed anymore. + # Vue Explore how to create a Juno project developed with Vue. @@ -7505,6 +7647,8 @@ Learn how to integrate Juno with Vue. Follow our quickstart guide to set up your Learn how to deploy your Vue project to Juno. Follow the deployment guide to configure static exports, set up your satellite, and publish your site to production.](/docs/guides/vue/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Angular Explore how to create a Juno project developed with Angular. @@ -7517,6 +7661,8 @@ Learn how to integrate Juno with Angular. Follow our quickstart guide to set up Learn how to deploy your Angular project to Juno. Follow the deployment guide to configure static exports, set up your Satellite, and publish your site to production.](/docs/guides/angular/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Build an Angular App Ready to implement a feature-rich application with Juno? You can choose a step-by-step approach, building each component gradually, or dive into our quickstart template, which showcases Juno's core features. @@ -7671,6 +7817,8 @@ pnpm create juno -- --template angular-example Follow the CLI prompts to choose the note-taking app example and select local development. The CLI will manage all configurations and dependencies, allowing you to focus on exploring and customizing your app right away. +Juno is in **maintenance** and not actively developed anymore. + # Deploy an Angular App Use this guide to deploy your project to production. @@ -7774,6 +7922,8 @@ An access token is used to identify your terminal. That's why the CLI asks wheth juno hosting deploy ``` +Juno is in **maintenance** and not actively developed anymore. + # Astro Explore how to create a Juno project developed with Astro. @@ -7786,6 +7936,8 @@ Learn how to integrate Juno with Astro. Follow our quickstart guide to set up yo Learn how to deploy your Astro project to Juno. Follow the deployment guide to configure static exports, set up your Satellite, and publish your site to production.](/docs/guides/astro/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Build an Astro App This guide provides quickstart instructions for integrating Juno and building a feature-rich application. It also includes guidance on developing locally. @@ -7904,6 +8056,8 @@ Start the app, go to [http://localhost:4321/](http://localhost:4321/) in a brows Once you're ready to deploy your app for others to access, continue to the [Deployment guide](/docs/guides/astro/deploy.md). +Juno is in **maintenance** and not actively developed anymore. + # Deploy an Astro Site Use this guide to deploy and host your project to production. @@ -8007,6 +8161,8 @@ An access token is used to identify your terminal. That's why the CLI asks wheth juno hosting deploy ``` +Juno is in **maintenance** and not actively developed anymore. + # Docusaurus Explore how to deploy a Juno project developed with Docusaurus. @@ -8015,6 +8171,8 @@ Explore how to deploy a Juno project developed with Docusaurus. Learn how to deploy your Docusaurus project to Juno. Follow the deployment guide to configure static exports, set up your Satellite, and publish your site to production.](/docs/guides/docusaurus/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Deploy a Docusaurus Site Use this guide to deploy and host your project to production. @@ -8118,6 +8276,8 @@ An access token is used to identify your terminal. That's why the CLI asks wheth juno hosting deploy ``` +Juno is in **maintenance** and not actively developed anymore. + # GitHub Actions You can leverage the Juno [CLI](/docs/reference/cli.md) to perform tasks within GitHub Actions. @@ -8219,6 +8379,8 @@ When using the Actions, you can configure the following environment variables: | --- | --- | --- | | `PROJECT_PATH` | No | The path to the folder containing the `juno.config` file if it doesn't exist at the root of your repository. e.g. `./my-app-subfolder`. | +Juno is in **maintenance** and not actively developed anymore. + # Deploy Frontend This section describes how to deploy the frontend of your project using GitHub Actions. The frontend typically includes all client-side assets — such as HTML, CSS, JavaScript, and other static files—that are served to users. @@ -8304,6 +8466,8 @@ Deploying new assets consumes \[cycles\], and the cost increases with both the f on: release: types: [released] ``` +Juno is in **maintenance** and not actively developed anymore. + # Build and Publish Serverless Functions This section explains how to automate the build and publication of your serverless functions using GitHub Actions. The process works for functions written in TypeScript or Rust and helps integrate function deployment into your development workflow. @@ -8365,6 +8529,8 @@ on: release: types: [released] This ensures that your function bundle is built and published only when a GitHub release is published. +Juno is in **maintenance** and not actively developed anymore. + # Upgrade Serverless Functions (Optional) **Caution:** @@ -8418,6 +8584,8 @@ name: Upgrade Satellite Containeron: workflow_dispatch:jobs: upgrade: runs- name: Upgrade Satellite Containeron: workflow_dispatch:jobs: upgrade: runs-on: ubuntu-latest steps: - name: Check out the repo uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 24 registry-url: "https://registry.npmjs.org" - uses: pnpm/action-setup@v4 with: version: 10 - name: Install Dependencies run: pnpm i --frozen-lockfile - name: Build uses: junobuild/juno-action@full with: args: functions build - name: Upgrade uses: junobuild/juno-action@full with: args: functions upgrade env: JUNO_TOKEN: ${{ secrets.JUNO_TOKEN }} ``` +Juno is in **maintenance** and not actively developed anymore. + # Next.js Explore how to create a Juno project developed with Next.js. @@ -8430,6 +8598,8 @@ Learn how to integrate Juno with Next.js. Follow our quickstart guide to set up Learn how to deploy your Next.js project to Juno. Follow the deployment guide to configure static exports, set up your satellite, and publish your site to production.](/docs/guides/nextjs/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Build a Next.js App Ready to implement a feature-rich application with Juno? You can choose a step-by-step approach, building each component gradually, or dive into our quickstart template, which showcases Juno's core features. @@ -8584,6 +8754,8 @@ pnpm create juno -- --template nextjs-example Follow the CLI prompts to choose the note-taking app example and select local development. The CLI will manage all configurations and dependencies, allowing you to focus on exploring and customizing your app right away. +Juno is in **maintenance** and not actively developed anymore. + # Deploy a Next.js App Use this guide to deploy and host your project to production. @@ -8705,6 +8877,8 @@ An access token is used to identify your terminal. That's why the CLI asks wheth juno hosting deploy ``` +Juno is in **maintenance** and not actively developed anymore. + # React Explore how to create a Juno project developed with React. @@ -8717,6 +8891,8 @@ Learn how to integrate Juno with React. Follow our quickstart guide to set up yo Learn how to deploy your React project to Juno. Follow the deployment guide to configure static exports, set up your Satellite, and publish your site to production.](/docs/guides/react/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Build a React App Ready to implement a feature-rich application with Juno? You can choose a step-by-step approach, building each component gradually, or dive into our quickstart template, which showcases Juno's core features. @@ -8871,6 +9047,8 @@ pnpm create juno -- --template react-example Follow the CLI prompts to choose the note-taking app example and select local development. The CLI will manage all configurations and dependencies, allowing you to focus on exploring and customizing your app right away. +Juno is in **maintenance** and not actively developed anymore. + # Deploy a React App Use this guide to deploy and host your project to production. @@ -8974,6 +9152,8 @@ An access token is used to identify your terminal. That's why the CLI asks wheth juno hosting deploy ``` +Juno is in **maintenance** and not actively developed anymore. + # SvelteKit Explore how to create a Juno project developed with SvelteKit. @@ -8986,6 +9166,8 @@ Learn how to integrate Juno with SvelteKit. Follow our quickstart guide to set u Learn how to deploy your SvelteKit project to Juno. Follow the deployment guide to configure static exports, set up your satellite, and publish your site to production.](/docs/guides/sveltekit/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Build a SvelteKit App Ready to implement a feature-rich application with Juno? You can choose a step-by-step approach, building each component gradually, or dive into our quickstart template, which showcases Juno's core features. @@ -9146,6 +9328,8 @@ pnpm create juno -- --template sveltekit-example Follow the CLI prompts to choose the note-taking app example and select local development. The CLI will manage all configurations and dependencies, allowing you to focus on exploring and customizing your app right away. +Juno is in **maintenance** and not actively developed anymore. + # Deploy a SvelteKit App Use this guide to deploy and host your project to production. @@ -9277,6 +9461,8 @@ An access token is used to identify your terminal. That's why the CLI asks wheth juno hosting deploy ``` +Juno is in **maintenance** and not actively developed anymore. + # Vue Explore how to create a Juno project developed with Vue. @@ -9289,6 +9475,8 @@ Learn how to integrate Juno with Vue. Follow our quickstart guide to set up your Learn how to deploy your Vue project to Juno. Follow the deployment guide to configure static exports, set up your satellite, and publish your site to production.](/docs/guides/vue/deploy.md) +Juno is in **maintenance** and not actively developed anymore. + # Build a Vue App Ready to implement a feature-rich application with Juno? You can choose a step-by-step approach, building each component gradually, or dive into our quickstart template, which showcases Juno's core features. @@ -9443,6 +9631,8 @@ pnpm create juno -- --template vue-example Follow the CLI prompts to choose the note-taking app example and select local development. The CLI will manage all configurations and dependencies, allowing you to focus on exploring and customizing your app right away. +Juno is in **maintenance** and not actively developed anymore. + # Deploy a Vue App Use this guide to deploy and host your project to production. @@ -9546,6 +9736,8 @@ An access token is used to identify your terminal. That's why the CLI asks wheth juno hosting deploy ``` +Juno is in **maintenance** and not actively developed anymore. + # Monitoring Keeping your modules running smoothly is essential for any application. The monitoring feature ensures your modules — Satellites and Orbiter (Analytics) — stay operational by automatically refilling cycles when they run low. This helps prevent unexpected downtime, allowing you to focus on building and growing your product without worrying about cycle balances. @@ -9671,6 +9863,8 @@ To enable monitoring, go to the [Monitoring Section](https://console.juno.build/ The wizard guides you through the setup process, making it easy to configure monitoring according to your needs. +Juno is in **maintenance** and not actively developed anymore. + # Snapshots Snapshots are an essential component of any disaster recovery strategy. In the fast-paced world of development, unexpected issues can arise—such as accidental overwrites of critical data or bugs in updates. While these scenarios can't always be avoided, their impact can be minimized or mitigated. @@ -9715,6 +9909,8 @@ In addition to standard recovery, snapshots can also be uploaded to reapply the This should be used carefully though, as snapshots also include elements such as public access keys and user IDs. Applying one module's snapshot to another may cause unintended side effects. +Juno is in **maintenance** and not actively developed anymore. + # Access Keys Access keys play a crucial role in granting permissions to Mission Controls, Satellites or Orbiters within Juno. @@ -9820,6 +10016,8 @@ This method is useful if you want to generate a completely new key and apply it This action will overwrite the previously saved key used to configure your local CLI environment. +Juno is in **maintenance** and not actively developed anymore. + # Architecture Juno is your own self-contained execution space. Everything your app needs — frontend, backend logic, storage — gets bundled into a single deployable WebAssembly (WASM) container called a Satellite. @@ -9933,6 +10131,8 @@ Juno provides many JavaScript libraries, Rust crates, templates and tooling to g It also provides an emulator for [local development](/docs/guides/local-development.md) that mimics as closely as possible the experience you get in production. +Juno is in **maintenance** and not actively developed anymore. + # Best Practices This page provides recommendations to improve your application when developing and deploying with Juno. @@ -9965,6 +10165,8 @@ Configure your Satellite to send a CSP header as part of the HTTP response. Head import { defineConfig } from "@junobuild/config";export default defineConfig({ satellite: { ids: { production: "qsgjb-riaaa-aaaaa-aaaga-cai" }, hosting: { source: "dist" }, storage: { headers: [ { source: "**/*", headers: [["Content-Security-Policy", "REPLACE_THIS_WITH_YOUR_RULES"]] } ] } }}); ``` +Juno is in **maintenance** and not actively developed anymore. + # Infrastructure Juno's infrastructure is designed to provide developers with a simple, secure, and self-contained execution environment. It blends WebAssembly container deployment with supporting services that prioritize ownership, transparency, and practical workflows. @@ -9994,6 +10196,8 @@ While Juno runs fully on the Internet Computer, two supporting services are main These services are strictly optional and exist only for this specific use case. +Juno is in **maintenance** and not actively developed anymore. + # Memory This page explains how memory works conceptually and how you can monitor its usage through the Console. @@ -10136,6 +10340,8 @@ In any case, the best course of action is to reach out so we can assess your sit * [Measure different collection libraries written in Rust](https://dfinity.github.io/canister-profiling/collections/) * [Question about freeing/shrinking memory in WebAssembly design](https://github.com/WebAssembly/design/issues/1300) +Juno is in **maintenance** and not actively developed anymore. + # Provisioning Options The creation wizard for Satellites and Orbiters includes advanced provisioning options for developers who need more control. @@ -10237,6 +10443,8 @@ For most applications, we recommend using the default subnets and staying on the If you have already configured a [monitoring](/docs/management/monitoring.md) strategy, the new module will automatically be registered with it upon creation. This option is enabled by default and can be unchecked in the advanced options if you prefer to set it up manually later. +Juno is in **maintenance** and not actively developed anymore. + # Wallet This section provides guidance on managing your cycles with your wallet (your account), which are essential for maintaining and providing enough resources for your modules in the Juno ecosystem. @@ -10332,6 +10540,8 @@ You can also receive and send ICP for backwards compatibility with Mission Contr Cycles remain the recommended approach for all operations. +Juno is in **maintenance** and not actively developed anymore. + # Workarounds This page is dedicated to helping you make the most of Juno features, even when some functionalities are not yet fully supported out of the box. Below, you'll find practical workarounds and guidance for processes which in the future will be resolved by new features. @@ -10428,6 +10638,8 @@ It's recommended to rename the newly added passkey in Internet Identity to keep A maximum of 8 passkeys can be assigned to an identity, allowing you to share a project with up to 7 other people. +Juno is in **maintenance** and not actively developed anymore. + # CLI The Juno CLI provides a variety of tools for managing and deploying projects. @@ -10861,6 +11073,8 @@ These config files are created based on the selected `--profile` and `--mode`: | `juno[-profile][-mode]-cli-settings` | | Stores CLI preferences, e.g. whether the access key file is encrypted (to avoid unnecessary prompts). | | `juno[-profile][-mode]-cli-state` | | Stores ephemeral state like applied config hashes. | +Juno is in **maintenance** and not actively developed anymore. + # Configuration When the `juno` command is run from your terminal or used in a CI environment, it will automatically attempt to locate a config file named `juno.config.ts` or `juno.config.js` or `juno.config.json` within your project's root directory. @@ -11473,6 +11687,8 @@ import { defineConfig } from "@junobuild/config";export default defineConfig({ A similar configuration is also available for the `orbiter` field used for analytics. +Juno is in **maintenance** and not actively developed anymore. + # Emulator The emulator provides a complete local environment to build, test, and run your project without deploying anything live. There are two images available, depending on your needs: @@ -11489,6 +11705,8 @@ Unlike Skylab, the image junobuild/satellite runs a single Satellite in a headle In the local environment, several services (which can be either canisters or apps on the Internet Computer) are automatically spun up. This ensures that developers have everything they need to start building right out of the box. Thanks to built-in plugins and tooling, these services are automatically integrated into the environment, eliminating the need for developers to manually manage their bindings.](/docs/reference/emulator/infrastructure.md) +Juno is in **maintenance** and not actively developed anymore. + # Functions API reference for writing serverless functions in Rust or TypeScript. @@ -11501,6 +11719,8 @@ API reference for writing serverless functions in Rust or TypeScript. 6 items](/docs/reference/functions/typescript.md) +Juno is in **maintenance** and not actively developed anymore. + # Plugins Juno provides various plugins to simplify your development workflow. Each plugin automatically loads values from your `juno.config` file into your build environment, so you can call `initSatellite()` and `initOrbiter()` without extra config. @@ -11681,6 +11901,8 @@ The following variables are available: Discover additional options in the library's [README](https://github.com/junobuild/plugins/tree/main/plugins/vite-plugin). +Juno is in **maintenance** and not actively developed anymore. + # Settings This document will help you understand the different settings you can configure for your modules ([Satellites](/docs/terminology.md#satellite), [Mission controls](/docs/terminology.md#mission-control), and [Orbiters](/docs/terminology.md#orbiter)). @@ -11799,6 +12021,8 @@ The default value is `0n` - i.e. no particular allocation. If you set the compute allocation to `50n`, the module will be allocated 50% of the compute capacity. This ensures that the module has a guaranteed share of the compute resources, potentially improving its performance by ensuring it has sufficient processing power for its operations. +Juno is in **maintenance** and not actively developed anymore. + # Emulator The emulator provides a complete local environment to build, test, and run your project without deploying anything live. There are two images available, depending on your needs: @@ -11815,6 +12039,8 @@ Unlike Skylab, the image junobuild/satellite runs a single Satellite in a headle In the local environment, several services (which can be either canisters or apps on the Internet Computer) are automatically spun up. This ensures that developers have everything they need to start building right out of the box. Thanks to built-in plugins and tooling, these services are automatically integrated into the environment, eliminating the need for developers to manually manage their bindings.](/docs/reference/emulator/infrastructure.md) +Juno is in **maintenance** and not actively developed anymore. + # Infrastructure In the local environment, several services (which can be either canisters or apps on the Internet Computer) are automatically spun up. This ensures that developers have everything they need to start building right out of the box. Thanks to built-in plugins and tooling, these services are automatically integrated into the environment, eliminating the need for developers to manually manage their bindings. @@ -11834,6 +12060,8 @@ However, in some cases, it may be useful to explicitly reference their IDs or UR | [SNS-Wasm](https://dashboard.internetcomputer.org/canister/qaa6y-5yaaa-aaaaa-aaafa-cai) | `qaa6y-5yaaa-aaaaa-aaafa-cai` | | [NNS-dapp](https://dashboard.internetcomputer.org/canister/qoctq-giaaa-aaaaa-aaaea-cai) | `qoctq-giaaa-aaaaa-aaaea-cai` | +Juno is in **maintenance** and not actively developed anymore. + # Satellite Unlike Skylab, the image [junobuild/satellite](https://hub.docker.com/r/junobuild/satellite) runs a single Satellite in a headless environment, without the Console UI. It always mounts the same Satellite, using the fixed ID `jx5yt-yyaaa-aaaal-abzbq-cai`. @@ -11854,6 +12082,8 @@ import { defineConfig } from "@junobuild/config";export default defineConfig({ For more advanced options like customizing ports, image name, or CI setup, see the [Emulator Configuration](/docs/reference/configuration.md#emulator-configuration) section. +Juno is in **maintenance** and not actively developed anymore. + # Skylab The [junobuild/skylab](https://hub.docker.com/r/junobuild/skylab) image is an all-in-one emulator for local development. It bundles everything you need to build, test, and explore the Juno ecosystem: @@ -11893,6 +12123,8 @@ When running Skylab, the Console UI is available at [http://localhost:5866](http This is the same interface used in production at [console.juno.build](https://console.juno.build), allowing you to create Satellites and Orbiters, inspect your wallet, manage your Datastore and Storage, etc. +Juno is in **maintenance** and not actively developed anymore. + # Functions API reference for writing serverless functions in Rust or TypeScript. @@ -11905,6 +12137,8 @@ API reference for writing serverless functions in Rust or TypeScript. 6 items](/docs/reference/functions/typescript.md) +Juno is in **maintenance** and not actively developed anymore. + # Rust API reference for writing serverless functions in Rust. @@ -11925,6 +12159,8 @@ In the context of Juno, it enables your Satellite to perform low-level operation This page lists the crate versions for each Juno release, to help you upgrade your Rust Serverless Functions. If a release is not listed, no crate updates were required for that version.](/docs/reference/functions/rust/crate-versions.md) +Juno is in **maintenance** and not actively developed anymore. + # TypeScript API reference for writing serverless functions with TypeScript. @@ -11953,6 +12189,8 @@ The following functions can be used to interact with well-known Internet Compute The TypeScript runtime used in Juno does not provide full Node.js support. Polyfills are added iteratively to keep the environment stable and predictable.](/docs/reference/functions/typescript/node.md) +Juno is in **maintenance** and not actively developed anymore. + # Rust API reference for writing serverless functions in Rust. @@ -11973,6 +12211,8 @@ In the context of Juno, it enables your Satellite to perform low-level operation This page lists the crate versions for each Juno release, to help you upgrade your Rust Serverless Functions. If a release is not listed, no crate updates were required for that version.](/docs/reference/functions/rust/crate-versions.md) +Juno is in **maintenance** and not actively developed anymore. + # Crate Versions This page lists the crate versions for each Juno release, to help you upgrade your Rust Serverless Functions. If a release is not listed, no crate updates were required for that version. @@ -12067,6 +12307,8 @@ Release notes on [GitHub](https://github.com/junobuild/juno/releases/tag/v0.0.57 If your current version is not listed, refer to the [release notes on GitHub](https://github.com/junobuild/juno/releases) for older crate versions. +Juno is in **maintenance** and not actively developed anymore. + # IC-CDK The [Canister Development Kit](https://github.com/dfinity/cdk-rs) (`ic-cdk` or `ic_cdk`) provides core functionality for interacting with the Internet Computer in Rust. @@ -12083,6 +12325,8 @@ Because of this compatibility, we do not list them individually here and encoura For compatibility, always use the `ic_cdk` version specified in Juno’s release notes. This ensures proper integration and avoids version mismatch issues. +Juno is in **maintenance** and not actively developed anymore. + # SDK The following functions are provided to help you work with document and asset data inside your Satellite. They are part of the tools available when writing serverless functions in Rust and support common tasks such as interacting with the datastore, storage, and custom hook logic. @@ -12457,6 +12701,8 @@ pub fn random() -> Result 📦 See full definition on [docs.rs](https://docs.rs/junobuild-satellite/latest/junobuild_satellite/fn.random.html) +Juno is in **maintenance** and not actively developed anymore. + # Utils The following utilities are provided to help you work with document and asset data inside your Satellite. They simplify tasks such as decoding and encoding data, serializing custom types, and interacting with Juno’s core features in a consistent way. @@ -12509,6 +12755,8 @@ pub fn encode_doc_data_to_string( data: &T,) -> Result(data: T): Uint8Array; * A `Uint8Array` containing the encoded binary data. +Juno is in **maintenance** and not actively developed anymore. + # FAQ ### Where do I find support? @@ -13987,6 +14249,8 @@ You can also check out the [guides](/docs/category/guides.md), which feature exa Do you have more questions or need further assistance? Feel free to reach out to us on [Discord](https://discord.gg/wHZ57Z2RAG) or [Twitter](https://twitter.com/junobuild). We're here to help! +Juno is in **maintenance** and not actively developed anymore. + # Pricing Juno has a simple starting point: @@ -14055,6 +14319,8 @@ If you use the [local emulator](/docs/guides/local-development.md) during develo The emulator runs on a single [node](/docs/terminology.md#node), whereas on mainnet your data is replicated across all nodes in a [subnet](/docs/terminology.md#subnet). This replication is what makes the Internet Computer resilient, but it also means real-world costs are meaningfully higher than what local testing suggests. +Juno is in **maintenance** and not actively developed anymore. + # Terminology In Juno, we use some terms that may be unfamiliar to some. This page provides a summary of the most commonly used terms. @@ -14174,6 +14440,8 @@ Your wallet is tied to your identity, which is generated when you first log in. For more information see [Wallet](/docs/miscellaneous/wallet.md) documentation. +Juno is in **maintenance** and not actively developed anymore. + # Troubleshooting --- diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 710ca83f..509700bd 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -220,6 +220,14 @@ const config: Config = { } ] }, + announcementBar: { + id: "maintenance_bar", + content: + "Juno is in maintenance and not actively developed anymore.", + isCloseable: false, + backgroundColor: "var(--ifm-button-color)", + textColor: "var(--ifm-button-background-color)" + }, footer: { style: "light", links: [ diff --git a/src/css/docusaurus.scss b/src/css/docusaurus.scss index cbbec27d..836c1fd9 100644 --- a/src/css/docusaurus.scss +++ b/src/css/docusaurus.scss @@ -21,6 +21,11 @@ nav { font-size: var(--font-size-navbar); } +.theme-announcement-bar { + margin: 0 0 0.5rem; + border: 0; +} + .main-wrapper { position: relative; }