Skip to content

Commit beefe16

Browse files
blog: "Architecture Changes for a Better Developer Experience"
Signed-off-by: David Dal Busco <[email protected]>
1 parent b3f0354 commit beefe16

File tree

2 files changed

+93
-0
lines changed

2 files changed

+93
-0
lines changed
92.7 KB
Loading
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
slug: architecture-changes-for-better-developer-experience
3+
title: Architecture Changes for a Better Developer Experience
4+
authors: [peterpeterparker]
5+
tags: [architecture, dx, platform]
6+
date: 2026-01-08
7+
---
8+
9+
Happy New Year 🥳
10+
11+
We're kicking off 2026 with a major [release](https://github.com/junobuild/juno/releases/tag/v0.0.63) that ships significant changes in the architecture and design of the Juno Console with a single goal: making the DX more straightforward and comprehensive.
12+
13+
---
14+
15+
## Mission Control and Monitoring merged
16+
17+
Mission Control was originally designed as a dedicated control center for developers — a place to create and manage projects (Satellites) and analytics (Orbiters). Over time, it was also extended to include Monitoring.
18+
19+
The original idea was simple: the Console would only know a developer's identity and their Mission Control ID — nothing else.
20+
21+
While this approach had advantages, it also introduced significant drawbacks.
22+
23+
On every new sign-up, the Console had to automatically create a Mission Control. This meant that when a developer signed in and created their first (free) project, Juno had to provision **two containers instead of one**, increasing infrastructure costs.
24+
25+
It also led to a confusing user experience. Mission Control could not be hidden from the UI because modules must be provisioned with resources (cycles) to avoid being decommissioned. As a result, it was always visible, and many developers were unsure what Mission Control was or why it existed.
26+
27+
For these reasons, Mission Control and Monitoring have now been merged:
28+
29+
- A Mission Control is created **only when a developer explicitly enables Monitoring**
30+
- Monitoring is now treated as a dedicated microservice
31+
32+
This architectural change brings clear benefits:
33+
34+
- **For developers:** a clearer, more straightforward experience and simpler long-term maintenance
35+
- **For Juno:** acquisition costs for new developers are effectively cut in half
36+
37+
There are a few trade-offs to note:
38+
39+
- The Juno Console now keeps track of all containers created by developers (Satellites, Orbiters, and Mission Controls), whereas previously it only knew the Mission Control ID.
40+
- When Monitoring is enabled, module metadata must be duplicated inside the Mission Control so it knows what to monitor. This introduces a risk of inconsistencies if a bug causes a mismatch between the Console and Monitoring data. To mitigate this, a Console feature is planned to compare and verify this information.
41+
42+
---
43+
44+
## Deprecate ICP, use only Cycles
45+
46+
Over the past year, I've been refining both the platform and its communication to reinforce Juno's vision: a platform to build, deploy, and run applications in WASM containers, with ownership and zero DevOps.
47+
48+
As part of this effort, I've aimed to remove all blockchain and crypto-slangs.
49+
50+
While merging Mission Control and Monitoring, a new wallet ID - derived from the developer's sign-in - had to be introduced.
51+
52+
During this work, it became really clear again that the onboarding for new developers was just confusing:
53+
54+
> Why do I need ICP to get cycles?
55+
56+
Since this release already introduced breaking changes, it felt like the right moment to simplify the model further.
57+
58+
As a result, **ICP is now deprecated in favor of using cycles only**.
59+
60+
This significantly simplifies the user journey:
61+
62+
- You start using Juno for free
63+
- You learn about cycles as the resource that powers your containers and services
64+
- When you need more resources or want to spin up additional modules, you acquire cycles
65+
66+
To support this, the primary call to action for acquiring cycles now points to [cycle.express](https://cycle.express), which allows developers to convert dollars directly into cycles. Third-party wallets like [OISY](https://oisy.com) remain supported, but are now positioned as secondary options for users already familiar with them.
67+
68+
Together with the other changes in this release, this should make both the developer experience and the mental model of how Juno works much more approachable.
69+
70+
![](cycles-everywhere.png)
71+
72+
---
73+
74+
## Price increase
75+
76+
Previously, creating new Satellites or Orbiters cost 0.4 ICP. In practice, this was undervalued: each module is provisioned with 1.5 T cycles, while 0.4 ICP corresponds to roughly 0.93 T cycles—effectively a significant bonus.
77+
78+
Going forward:
79+
80+
- Additional Satellites and Orbiters cost 3 T cycles (roughly $4).
81+
- Enabling Monitoring (which spins up a Mission Control) requires the same fee.
82+
83+
:::note
84+
85+
See the [Pricing](/docs/pricing) documentation for more details.
86+
87+
:::
88+
89+
---
90+
91+
I believe these changes represent a significant step forward in making Juno more accessible and easier to understand. Whether you're just getting started or have been with us for a while, I hope these improvements make your development experience that much better.
92+
93+
To infinity and beyond<br />David

0 commit comments

Comments
 (0)