Skip to content

Commit f2ed0ff

Browse files
feat: remove white-paper (#481)
* feat: remove white-paper Signed-off-by: David Dal Busco <david.dalbusco@outlook.com> * 📄 Update LLMs.txt snapshot for PR review * docs: review architecture Signed-off-by: David Dal Busco <david.dalbusco@outlook.com> * 📄 Update LLMs.txt snapshot for PR review * docs: quote Signed-off-by: David Dal Busco <david.dalbusco@outlook.com> * docs: review infrastructure Signed-off-by: David Dal Busco <david.dalbusco@outlook.com> * 📄 Update LLMs.txt snapshot for PR review * feat: review redirect Signed-off-by: David Dal Busco <david.dalbusco@outlook.com> --------- Signed-off-by: David Dal Busco <david.dalbusco@outlook.com> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
1 parent d179e88 commit f2ed0ff

28 files changed

Lines changed: 345 additions & 761 deletions

.llms-snapshots/llms-full.txt

Lines changed: 152 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6702,6 +6702,123 @@ This method is useful if you want to generate a completely new key and apply it
67026702

67036703
This action will overwrite the previously saved key used to configure your local CLI environment.
67046704

6705+
# Architecture
6706+
6707+
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.
6708+
6709+
One artifact. One push. That's your app.
6710+
6711+
No DevOps. No backend boilerplate. No surprise complexity.
6712+
6713+
Juno's architecture is designed to give developers complete control and ownership. It combines familiar developer workflows with an environment that runs independently once deployed — without Juno's intervention.
6714+
6715+
6716+
6717+
![Juno architecture schema showing developer control flow](/assets/images/architecture-ea813c74e7ec12ec0989052392308143.png)
6718+
6719+
---
6720+
6721+
## How It Works
6722+
6723+
A typical Juno development flow looks like this:
6724+
6725+
1. **Build your frontend** using Next.js, React, SvelteKit, Vue or any other framework you love (or none).
6726+
2. **Add backend logic** (if needed) via serverless functions written in Rust or TypeScript.
6727+
3. **Bundle everything into a Satellite** — a single WebAssembly container that holds your entire application, including its logic, state, and storage.
6728+
4. **Deploy using the CLI or GitHub Actions.** No servers to configure. No infrastructure to manage.
6729+
6730+
Once deployed, your Satellite runs independently in an unstoppable environment, entirely under your control.
6731+
6732+
---
6733+
6734+
## Platform Services
6735+
6736+
Juno provides supporting services to manage your projects, while keeping everything under your ownership:
6737+
6738+
### Console
6739+
6740+
The Console is a platform for managing your projects. It runs as its own container, combining a user interface with orchestration logic.
6741+
6742+
It only holds one piece of data: a keypair linking each developer's anonymous ID to their Mission Control ID.
6743+
6744+
When you sign in, the Console returns your Mission Control ID. From there, all project management happens under your control. The Console does not have access to your apps, your data, or your infrastructure.
6745+
6746+
It provides services such as:
6747+
6748+
* Creating, upgrading, and deleting Satellites.
6749+
* Managing authentication, storage, data, and application state.
6750+
* Monitoring logs from serverless functions.
6751+
* Setting custom domains.
6752+
* Spinning up and reviewing analytics.
6753+
6754+
You can access the Console at [console.juno.build](https://console.juno.build).
6755+
6756+
**Note:**
6757+
6758+
The Console is not decentralized. It is maintained by Juno to provide a stable management platform and up-to-date developer experience. However, all applications, data, and infrastructure you deploy through it remain under your control.
6759+
6760+
In the future, there is a strong will to resolve this dependency by making the Console self-hostable or governed by a DAO, aligning it with the same principles of ownership and autonomy as the rest of the platform.
6761+
6762+
It is worth noting that Juno is fully open source. Anyone can review its source code at any time. And while not formally documented, the Console is already self-hostable today — offering anyone who wants full control over the entire stack the option to do so.
6763+
6764+
### Observatory
6765+
6766+
The Observatory is a proxy service used solely for developer notifications. When monitoring is enabled in a developer's Mission Control, events such as automatic top-up successes or failures trigger a message sent through the Observatory to notify the developer via email.
6767+
6768+
This setup ensures that each Mission Control does not need to maintain its own notification infrastructure. The Observatory only forwards messages — it does not monitor, modify, or access any application logic or data.
6769+
6770+
### CDN
6771+
6772+
Juno maintains a CDN that stores libraries, templates, and pre-built WASM code. These pre-built WASM containers are official module versions shipped by Juno. When a new release is available, it is uploaded to the CDN, allowing developers to upgrade e.g. their Satellites using the latest version.
6773+
6774+
While it functions as a CDN, technically it's not a traditional content delivery network. It is itself a Satellite.
6775+
6776+
---
6777+
6778+
## Developer-Owned Spaces
6779+
6780+
### Mission Control
6781+
6782+
Mission Control is your personal management container. It tracks your Satellites and Orbiters, and it acts as your wallet.
6783+
6784+
You use it for example to spin up new containers or provide [cycles](/docs/terminology.md#cycles) to keep your modules running. It serves as your central hub for managing projects and resources.
6785+
6786+
Mission Control belongs to you. No one else can access it — not Juno, not the Console, not any other service.
6787+
6788+
### Satellites
6789+
6790+
Satellites are your applications. Each one is a self-contained unit that bundles:
6791+
6792+
* Frontend assets
6793+
* Default backend features
6794+
* Custom serverless functions
6795+
* Data and storage
6796+
* Permissions and access control
6797+
6798+
### Orbiters
6799+
6800+
Orbiters provide analytics — a decentralized alternative to services like Google Analytics. Orbiters collect traffic, page views, and device information, under your ownership and without exposing user data to third parties.
6801+
6802+
---
6803+
6804+
## CI/CD and Deployment
6805+
6806+
You can deploy and upgrade your Satellites using GitHub Actions or the Juno CLI.
6807+
6808+
* Deployment automation is opt-in.
6809+
* Juno does not control or interfere with your deployed app.
6810+
* Once live, your apps remain running independently.
6811+
6812+
Each Satellite uses a role-based permission system managed via [access keys](/docs/miscellaneous/access-keys.md), letting you decide whether to retain full access, delegate writable access, or allow third parties to solely propose changes.
6813+
6814+
---
6815+
6816+
## Libraries, Tools, and Emulator
6817+
6818+
Juno provides many JavaScript libraries, Rust crates, templates and tooling to get started and integrate with your workflow. You can find all the code in the [Juno GitHub organization](https://github.com/junobuild).
6819+
6820+
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.
6821+
67056822
# Best Practices
67066823

67076824
This page provides recommendations to improve your application when developing and deploying with Juno.
@@ -6734,6 +6851,35 @@ Configure your Satellite to send a CSP header as part of the HTTP response. Head
67346851
import { defineConfig } from "@junobuild/config";export default defineConfig({ satellite: { ids: { production: "qsgjb-riaaa-aaaaa-aaaga-cai" }, source: "dist", storage: { headers: [ { source: "**/*", headers: [["Content-Security-Policy", "REPLACE_THIS_WITH_YOUR_RULES"]] } ] } }});
67356852
```
67366853

6854+
# Infrastructure
6855+
6856+
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.
6857+
6858+
---
6859+
6860+
## Internet Computer
6861+
6862+
![An illustration representing Juno smart contracts living at the top of the Internet Computer](/assets/images/juno-internet-computer-905a4ce5071e12858c93525e424b9d30.webp)
6863+
6864+
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.
6865+
6866+
The Internet Computer connects independent data centers worldwide. Specialized node machines and cryptography ensure that applications run efficiently and consistently, without relying on Big Tech intermediaries. It even enables direct web content delivery from these self-contained units.
6867+
6868+
While Juno relies on the Internet Computer as its primary execution layer, it avoids unnecessary blockchain complexity. Developers interact with Juno using familiar frontend and backend development workflows, without needing to manage or understand blockchain infrastructure.
6869+
6870+
---
6871+
6872+
## Supporting Infrastructure
6873+
6874+
While Juno runs fully on the Internet Computer, two supporting services are maintained to handle a feature that cannot yet be decentralized — sending email notifications.
6875+
6876+
* Observatory Proxy: To handle IPv6 and deduplication constraints in Internet Computer HTTPS outcalls, Juno uses an additional [proxy](https://github.com/junobuild/proxy) deployed on Google Firebase. This service may be removed in the future as the Internet Computer layer improves.
6877+
6878+
* Email Notifications: Developer notifications triggered by Mission Control monitoring (such as top-up successes or failures) are sent via [Resend](https://resend.com).
6879+
6880+
6881+
These services are strictly optional and exist only for this specific use case.
6882+
67376883
# Memory
67386884

67396885
This page explains how memory works conceptually and how you can monitor its usage through the Console.
@@ -6951,7 +7097,7 @@ One key usage is converting ICP tokens to cycles, which are used to cover the co
69517097

69527098
## Why do I need ICP?
69537099

6954-
Given that Juno is built on top of the Internet Computer (see [architecture](/docs/white-paper/architecture.md)), your smart contracts require cycles to remain active.
7100+
Given that Juno is built on top of the Internet Computer (see [architecture](/docs/miscellaneous/architecture.md)), your smart contracts require cycles to remain active.
69557101

69567102
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.
69577103

@@ -7019,7 +7165,7 @@ Review the transaction details and confirm to execute it.
70197165

70207166
# Workarounds
70217167

7022-
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 features planned in the [roadmap](/docs/white-paper/roadmap.md).
7168+
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.
70237169

70247170
---
70257171

@@ -9574,7 +9720,7 @@ For current usage and setup, refer to the [Access Keys documentation](/docs/misc
95749720

95759721
## Cycles
95769722

9577-
Cycles are used to pay for [infrastructure](/docs/white-paper/infrastructure.md) usage. Your [mission control](/docs/terminology.md#mission-control) or [satellite](/docs/terminology.md#satellite) consumes cycles while it's active.
9723+
Cycles are used to pay for [infrastructure](/docs/miscellaneous/infrastructure.md) usage. Your [mission control](/docs/terminology.md#mission-control) or [satellite](/docs/terminology.md#satellite) consumes cycles while it's active.
95789724

95799725
The amount of cycles available determines whether a smart contract will be active, inactive, or eventually decommissioned (deleted).
95809726

@@ -9595,7 +9741,7 @@ Learn more about [computation and storage costs](https://internetcomputer.org/do
95959741

95969742
## ICP
95979743

9598-
The ICP token is the cryptocurrency used to pay for transactions on Juno's [infrastructure](/docs/white-paper/infrastructure.md).
9744+
The ICP token is the cryptocurrency used to pay for transactions on Juno's [infrastructure](/docs/miscellaneous/infrastructure.md).
95999745

96009746
It can also be converted into cycles, which are used to pay for computation and storage. Unlike the market price of ICP, the price of cycles remains constant, ensuring predictable costs for infrastructure usage.
96019747

@@ -9613,7 +9759,7 @@ Think of it like the command center for a space mission. Just as NASA's mission
96139759

96149760
Because it can hold ICP and is only controlled by you, your mission control also functions as your ([wallet](#wallet)).
96159761

9616-
For a schematic representation, refer to the [Architecture](/docs/white-paper/architecture.md) documentation page.
9762+
For a schematic representation, refer to the [Architecture](/docs/miscellaneous/architecture.md) documentation page.
96179763

96189764
## Modules
96199765

@@ -9689,7 +9835,7 @@ Please ensure that npm is added to your system's PATH (e.g. `C:\Users\{PC_NAME}\
96899835

96909836
### Windows Not Defined
96919837

9692-
Juno does not support yet Server Side Rendering (see [Roadmap](/docs/white-paper/roadmap.md)). Therefore if you are facing such an issue as `ReferenceError: window is not defined` please make sure that your application is not build using SSR.
9838+
Juno does not support yet Server Side Rendering at the moment. Therefore, if you are facing such an issue as `ReferenceError: window is not defined` please make sure that your application is not build using SSR.
96939839

96949840
We generally recommend using Static Site Generation (SSG) / prerendering.
96959841

.llms-snapshots/llms.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,13 @@ Juno is your self-contained serverless platform for building full-stack web apps
107107
## Miscellaneous
108108

109109
- [Access Keys](https://juno.build/docs/miscellaneous/access-keys.md): Learn how to manage access keys in Juno, their roles, and how to generate them using the CLI or Console.
110+
- [Architecture](https://juno.build/docs/miscellaneous/architecture.md): Explore the architecture behind Juno — a self-contained execution space where your entire application lives in a single deployable unit under your full control.
110111
- [Best Practices](https://juno.build/docs/miscellaneous/best-practices.md): This page provides recommendations to improve your application when developing and deploying with Juno.
112+
- [Infrastructure](https://juno.build/docs/miscellaneous/infrastructure.md): Discover how Juno's infrastructure blends self-hosted deployment with WebAssembly containers, focusing on simplicity, control, and modern Web2-compatible tooling.
111113
- [Memory](https://juno.build/docs/miscellaneous/memory.md): This page explains how memory works conceptually and how you can monitor its usage through the Console.
112114
- [Provisioning Options](https://juno.build/docs/miscellaneous/provisioning-options.md): The creation wizard for Satellites and Orbiters includes advanced provisioning options for developers who need more control.
113115
- [Wallet](https://juno.build/docs/miscellaneous/wallet.md): This section provides guidance on managing your assets and cycles with your wallet, which are essential for maintaining and providing enough resources for your modules in the Juno ecosystem.
114-
- [Workarounds](https://juno.build/docs/miscellaneous/workarounds.md): 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 features planned in the roadmap.
116+
- [Workarounds](https://juno.build/docs/miscellaneous/workarounds.md): 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.
115117

116118
## Reference
117119

blog/2024-09-03-building-tomorrow-juno-build-dao-for-the-future/index.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ The white paper has been updated to continue presenting the vision; however, the
4444

4545
:::
4646

47-
I’ve put together a [white paper](/docs/white-paper/intro) that outlines the reasoning and vision I have for a Juno Build DAO. I highly recommend giving it a read to fully understand what I’m aiming to achieve.
47+
I’ve put together a white paper that outlines the reasoning and vision I have for a Juno Build DAO. I highly recommend giving it a read to fully understand what I’m aiming to achieve.
4848

4949
If you have any questions, feel free to reach out on [Discord](https://discord.gg/wHZ57Z2RAG), [Twitter/X](https://x.com/junobuild), [OpenChat](https://oc.app/community/vxgpi-nqaaa-aaaar-ar4lq-cai/?ref=xanzv-uaaaa-aaaaf-aneba-cai) or also the [DFINITY forum](https://forum.dfinity.org/t/upcoming-juno-build-sns-decentralization-swap/34719) (as requested per their guidelines).
5050

@@ -103,7 +103,6 @@ David
103103

104104
**Useful Links**:
105105

106-
- [Juno White Paper](/docs/white-paper/intro) - Understand the vision and details behind the proposed DAO.
107106
- [Sign Up to the Newsletter](/newsletter) - Stay updated on all the latest news and steps.
108107
- [Discord](https://discord.gg/wHZ57Z2RAG) or [OpenChat](https://oc.app/community/vxgpi-nqaaa-aaaar-ar4lq-cai/?ref=xanzv-uaaaa-aaaaf-aneba-cai) - Join the community and ask your questions.
109108
- [Twitter/X](https://x.com/junobuild) - Follow for real-time updates.

0 commit comments

Comments
 (0)