Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 80 additions & 80 deletions .llms-snapshots/llms-full.txt

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .llms-snapshots/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ Juno is your self-contained serverless platform for building full-stack web apps

## Management

- [Monitoring](https://juno.build/docs/management/monitoring.md): Juno Monitoring ensures your smart contracts remain operational by automatically managing cycle balances. Monitor your modules, configure thresholds, and enable auto-refill to prevent downtime effortlessly.
- [Monitoring](https://juno.build/docs/management/monitoring.md): Juno Monitoring ensures your containers remain operational by automatically managing cycle balances. Monitor your modules, configure thresholds, and enable auto-refill to prevent downtime effortlessly.
- [Snapshots](https://juno.build/docs/management/snapshots.md): 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.

## Miscellaneous
Expand Down
6 changes: 3 additions & 3 deletions docs/build/analytics/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ Juno Analytics does not follow users across websites and applications they visit

### You 100% own your data

As with all services provided by Juno, you are the sole controller of your smart contracts, and your data belongs exclusively to you.
As with all services provided by Juno, you are the sole controller of your containers, and your data belongs exclusively to you.

You have the capability to delete all collected data within your Analytics at any time by utilizing the [CLI] to reset your smart contract.
You have the capability to delete all collected data within your Analytics at any time by utilizing the [CLI].

---

Expand Down Expand Up @@ -103,7 +103,7 @@ Similar to other analytics services, an Orbiter accepts data submitted from any

Consequently, this leaves the canister open to potential attacks that can pollute the data and consume cycles. For this reason, we recommend the following:

1. Avoid topping up the smart contract with excessive cycles; instead, adopt a lean approach.
1. Avoid topping up with excessive cycles; instead, adopt a lean approach.
2. Enable [monitoring](../../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.

Expand Down
2 changes: 1 addition & 1 deletion docs/build/analytics/setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This section covers how to integrate and configure Juno Analytics in your app or

## Getting Started

Before integrating Juno Analytics into your app or website, you need to create an Orbiter - the smart contract that implements analytics features and gathers data. Here's a step-by-step guide to help you get started:
Before integrating Juno Analytics into your app or website, you need to create an Orbiter - the analytics container that collects anonymous usage data. Here's a step-by-step guide to get started:

1. Sign in to the Juno [Console](https://console.juno.build)
2. Navigate to [Analytics](https://console.juno.build/analytics/)
Expand Down
4 changes: 2 additions & 2 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,13 @@ In contrast, Juno is fully [open-source](https://github.com/junobuild/), providi

Firebase follows a usage-based pricing model, where costs are calculated based on factors like request volume and data storage. The absence of a cap-setting option is a cause for concern, as unexpected spikes in usage can result in substantial expenses.

In contrast, Juno takes a different approach. Developers pre-charge their smart contracts with [cycles](./terminology.md#cycles), which are then utilized to cover computation and memory usage of the [satellites] and [mission control]. This mechanism eliminates the risk of encountering unexpected financial burdens due to unforeseen usage surges.
In contrast, Juno takes a different approach. Developers pre-charge their modules with [cycles](./terminology.md#cycles), which are then utilized to cover computation and memory usage. This mechanism eliminates the risk of encountering unexpected financial burdens due to unforeseen usage surges.

### Do you have a library for [some other language]?

We officially support [JavaScript](setup-the-sdk.mdx) for anything frontend.

Extending smart contract capabilities is done in [Rust](build/functions/index.md).
Extending serverless functions is done in [Rust](build/functions/development/rust.mdx) or [TypeScript](build/functions/development/typescript.mdx).

Community-supported libraries and contributions are warmly welcomed.

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/angular.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ Once you’re set up, continue to the [Deployment](#deployment) section below.

## Deployment

Use this guide to deploy your project to production — directly to a smart contract on mainnet.
Use this guide to deploy your project to production — directly to a satellite on mainnet.

:::note

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/astro.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ Once you’re set up, continue to the [Deployment](#deployment) section below.

## Deployment

Use this guide to deploy your project to production — directly to a smart contract on mainnet.
Use this guide to deploy your project to production — directly to a satellite on mainnet.

import Deploy from "./components/deploy.mdx";

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/components/deploy.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ If you haven't created a satellite yet, go ahead and [create](../../create-a-sat

### {props.index + 1}. Deploy

Once your satellite is up and running, you can proceed with uploading your app to your smart contract.
Once your satellite is up and running, you can proceed with uploading your app.

You can either automate your deployment with GitHub Actions (recommended) or deploy manually from your device. Choose your method:

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/components/functions/call.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
This is useful if you want to:

- Fetch or modify data in other smart contracts
- Fetch or modify data in other modules
- Interact with standard canisters like ledger or governance
- Trigger behavior on other dapps

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/nextjs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Once you’re set up, continue to the [Deployment](#deployment) section below.

## Deployment

Use this guide to deploy your project to production — directly to a smart contract on mainnet.
Use this guide to deploy your project to production — directly to a satellite on mainnet.

### 1. Static exports

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/react.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ Once you’re set up, continue to the [Deployment](#deployment) section below.

## Deployment

Use this guide to deploy your project to production — directly to a smart contract on mainnet.
Use this guide to deploy your project to production — directly to a satellite on mainnet.

import Deploy from "./components/deploy.mdx";

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/sveltekit.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ Once you’re set up, continue to the [Deployment](#deployment) section below.

## Deployment

Use this guide to deploy your project to production — directly to a smart contract on mainnet.
Use this guide to deploy your project to production — directly to a satellite on mainnet.

### 1. Static site generation

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/vue.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ Once you're set up, continue to the [Deployment](#deployment) section below.

## Deployment

Use this guide to deploy your project to production — directly to a smart contract on mainnet.
Use this guide to deploy your project to production — directly to a satellite on mainnet.

import Deploy from "./components/deploy.mdx";

Expand Down
8 changes: 4 additions & 4 deletions docs/management/monitoring.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
sidebar_position: 7
description: Juno Monitoring ensures your smart contracts remain operational by automatically managing cycle balances. Monitor your modules, configure thresholds, and enable auto-refill to prevent downtime effortlessly.
description: Juno Monitoring ensures your containers remain operational by automatically managing cycle balances. Monitor your modules, configure thresholds, and enable auto-refill to prevent downtime effortlessly.
keywords:
[
Smart Contract Monitoring,
Infrastructure Monitoring,
Cycle Management,
Auto-Refill,
Internet Computer Monitoring,
Expand All @@ -24,7 +24,7 @@ Keeping your modules running smoothly is essential for any application. The moni

- **Cycle refilling**: Monitored modules are automatically topped up when their balance falls below what's needed to stay active.
- **Self-Monitoring**: Your Mission Control ensures that both your wallet and modules maintain sufficient cycles, with full control remaining in your hands at all times.
- **Automatic ICP Conversion**: Can mint new cycles from the ICP in your wallet, ensuring your canisters stay adequately funded.
- **Automatic ICP Conversion**: Can mint new cycles from the ICP in your wallet, ensuring your modules stay adequately funded.
- **Hourly Checks**: The system evaluates balances once an hour.

---
Expand All @@ -33,7 +33,7 @@ Keeping your modules running smoothly is essential for any application. The moni

When a smart contract runs out of [cycles] on the [Internet Computer](https://internetcomputer.org), it stops functioning, which can disrupt your application or service. Enabling monitoring provides peace of mind by automating the management of cycles, ensuring your modules are always ready to perform. It also saves a little time by eliminating the need for manual top-ups.

It's important to note that if your smart contracts — whether it's your wallet or a module run out of cycles, they will enter a grace period. During this time, the module stops working but can still be restored. If no action is taken, the module eventually gets deleted, resulting in the permanent loss of its data and functionality.
It's important to note that if your wallet or a module run out of cycles, they will enter a grace period. During this time, the module stops working but can still be restored. If no action is taken, the module eventually gets deleted, resulting in the permanent loss of its data and functionality.

---

Expand Down
4 changes: 2 additions & 2 deletions docs/management/snapshots.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_position: 11

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.

The Snapshot feature acts as your safety net, ensuring that your project can recover quickly and efficiently from potential disasters. Each snapshot is a snapshot of your module (Satellite, Mission Control, or Orbiter) at a specific point in time. Snapshots enable you to restore your canister to its previous state, protecting your work and averting potential crises.
The Snapshot feature acts as your safety net, ensuring that your project can recover quickly and efficiently from potential disasters. Each snapshot is a snapshot of your module (Satellite, Mission Control, or Orbiter) at a specific point in time. Snapshots enable you to restore your module to its previous state, protecting your work and averting potential crises.

---

Expand All @@ -22,7 +22,7 @@ Snapshots are also automatically created during the upgrade process, capturing a

As determined by the Internet Computer (see the [specification](https://internetcomputer.org/docs/current/references/ic-interface-spec#ic-take_canister_snapshot)), only one snapshot per module is currently allowed. If this evolves in the future, Juno will be updated accordingly.

Snapshots are stored on-chain, and the cost of a snapshot’s memory consumption is charged to the module itself. This means they follow the lifecycle of your smart contracts — if the module is deleted or runs out of cycles, its snapshot is also removed.
Snapshots are stored on-chain, and the cost of a snapshot’s memory consumption is charged to the module itself. This means they follow the lifecycle of your modules — if the module is deleted or runs out of cycles, its snapshot is also removed.

This is why snapshots should not be mistaken for backups. Unlike true backups, they do not provide historical retention, off-chain storage, or protection against accidental loss of control. For long-term data protection, external backups — such as secure cold storage for sensitive data — are recommended.

Expand Down
2 changes: 1 addition & 1 deletion docs/miscellaneous/infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Juno's infrastructure is designed to provide developers with a simple, secure, a

## Internet Computer

![An illustration representing Juno smart contracts living at the top of the Internet Computer](../img/juno-internet-computer.webp)
![An illustration representing Juno modules living at the top of the Internet Computer](../img/juno-internet-computer.webp)

Juno operates on the [Internet Computer](https://internetcomputer.org/) (ICP or IC), a blockchain-based open cloud platform designed to run WebAssembly containers in a decentralized setup. Every part of the Juno platform — including your Satellites, Mission Control, Orbiters (analytics), and the platform's own services like the Console — runs as self-contained units on the IC.

Expand Down
4 changes: 2 additions & 2 deletions docs/miscellaneous/memory.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ To help you understand and optimize memory usage, the Console displays a detaile

## Satellite

A [satellite] can store data using two types of memory: `heap` and `stable`. While both types are forms of random-access memory that only exist as long as the smart contract lives, they can be compared to a familiar analogy. Think of `heap` as similar to the RAM in a computer, and `stable` as more akin to ROM.
A [satellite] can store data using two types of memory: `heap` and `stable`. Both are forms of random-access memory that exist only while the satellite is active. As an analogy, `heap` is like RAM in a computer, while `stable` is more like ROM.

### In a nutshell

`Heap` memory offers the best performance for accessing data, both for reading and writing. However, it has a limited capacity in terms of the space it can occupy, with a max of 1 GB.

On the other hand, `stable` memory has a higher memory threshold with a maximum limit of 500 GB minus the heap size, allowing it to store more data in terms of size. However, it is slightly slower.

Additionally, `heap` memory needs to be deserialized and serialized each time you upgrade the smart contract's code. This process becomes heavier as the heap memory size grows.
Additionally, `heap` memory needs to be deserialized and serialized each time you upgrade the module's code. This process becomes heavier as the heap memory size grows.

On the contrary, `stable` memory doesn't require processing during an upgrade. However, the data it contains needs to be deserialized and serialized each time it is accessed, which can make its usage more costly.

Expand Down
4 changes: 2 additions & 2 deletions docs/miscellaneous/wallet.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ We also recommend enabling [monitoring](../management/monitoring.md) to ensure y

ICP are the native cryptocurrency of the [Internet Computer](https://internetcomputer.org). They provide utility for powering the network and are also used for governance.

One key usage is converting ICP tokens to cycles, which are used to cover the computational and storage costs of running smart contracts and modules.
One key usage is converting ICP tokens to cycles, which are used to cover the computational and storage costs of running modules.

---

## Why do I need ICP?

Given that Juno is built on top of the Internet Computer (see [architecture](architecture.md)), your smart contracts require cycles to remain active.
Given that Juno is built on top of the Internet Computer (see [architecture](architecture.md)), your modules require cycles to stay alive.

While you don’t necessarily need ICP in the Juno ecosystem since you can acquire cycles with Stripe through [cycle.express](https://cycle.express), having some ICP can still be interesting.

Expand Down
8 changes: 4 additions & 4 deletions docs/pricing.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ keywords:
transaction fees,
ICP,
cycles,
smart contract costs,
infrastructure costs,
storage costs,
deployment costs,
data costs
Expand Down Expand Up @@ -43,9 +43,9 @@ You can top up your cycle balance in the Juno [console](https://console.juno.bui

New developers who join Juno are granted credits to create a mission control and their initial [satellite].

To create additional satellites, a fee of 0.4 ICP is necessary, along with the infrastructure costs for setting up the smart contract.
To create additional satellites, a fee of 0.4 ICP is necessary, along with the infrastructure costs for setting up the container.

Similarly, enabling analytics by creating an [orbiter] entails a fee of 0.4 ICP, plus the infrastructure costs for creating the smart contract.
Similarly, enabling analytics by creating an [orbiter] entails a fee of 0.4 ICP.

Please note that additional transaction fees may be introduced in the future, and pricing and models are subject to change.

Expand All @@ -61,7 +61,7 @@ You can use the [Pricing Calculator](https://internetcomputer.org/docs/current/d

### Storage

The estimated annual cost of storing 1 gigabyte of data in a smart contract is $5.
The estimated annual cost of storing 1 gigabyte of data on the Internet Computer is $5.

To calculate the estimated monthly cost for 1 gigabyte of storage, you can refer to the table provided on the Internet Computer [website](https://internetcomputer.org/docs/current/developer-docs/gas-cost).

Expand Down
2 changes: 1 addition & 1 deletion docs/reference/cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ import Upgrade from "./cli/upgrade.md";

:::important

- We recommend that you stay current with the Juno releases, as some features may not perform correctly in the [console](../terminology.md#console) if your smart contracts are outdated.
- We recommend that you stay current with the Juno releases, as some features may not perform correctly in the [console](../terminology.md#console) if your modules are outdated.
- Upgrading requires a stable internet connection for a successful process.

:::
Expand Down
10 changes: 5 additions & 5 deletions docs/reference/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,9 @@ import IFrame from "../build/components/iframe.mdx";

#### Maximum Memory Size

You can configure optional limits on heap and stable memory for your smart contract to control the creation and update of assets in your storage.
You can set optional limits on heap and stable memory to control how assets are created and updated in storage.

When the limit is reached, the Storage and smart contract will continue to operate normally but will reject the upload of new assets.
When the limit is reached, the Storage will continue to operate normally but will reject the upload of new assets.

```javascript
import { defineConfig } from "@junobuild/config";
Expand All @@ -191,9 +191,9 @@ The `datastore` configuration accepts the following options and parameters:

#### Maximum Memory Size

You can configure optional limits on heap and stable memory for your smart contract to control the creation and update of documentations in your Datastore.
You can set optional limits on heap and stable memory to control how documents are created and updated.

When the limit is reached, the Datastore and smart contract will continue to operate normally but will reject changes to documents.
When the limit is reached, the Datastore will continue to operate normally but will reject changes to documents.

```javascript
import { defineConfig } from "@junobuild/config";
Expand Down Expand Up @@ -535,7 +535,7 @@ export default defineConfig({

## Apply Changes

Configurations such as above [storage](#storage), [datastore](#datastore), [authentication](#authentication), and [settings](#settings) require explicit application to your smart contract as they directly impact its behavior.
Configurations such as above [storage](#storage), [datastore](#datastore), [authentication](#authentication), and [settings](#settings) require explicit application to your module as they directly impact its behavior.

To apply your changes, run the [juno config](./cli#config) command in the CLI after modifying your configuration file.

Expand Down
Loading