Morning! Great news for the Juno community, which has always used identity.internetcomputer.org
as the default domain for authentication.
Internet Identity now supports passkeys on both of its domains!
This means it should no longer matters whether devs or users sign in via identity.internetcomputer.org
or identity.ic0.app
— the registered identity should work seamlessly across both. There are a few limitations, which is why II may prompt you to register your current device.
As a result, I’ve just launched a new, clean sign-in page with a single call to action! 
To address potential sign-in issues, the page still offers domain-specific methods as a fallback. Plus, I added a brand-new footer accessible on scroll—kind of really happy with that design. 
https://console.juno.build/
Cool, cool, cool!
References:
1 Like
Juno CLI v0.1.9
Who’s using Windows? 
I spent the last two days reviewing the Juno CLI and all admin tasks—init, config, deploy, upgrade, etc.—and I can confirm that it is now fully supported on Windows (without WSL)!
Local development features still need some love, and I plan to work on them in the coming weeks.
npm i -g @junobuild/cli
Happy weekend! 
2 Likes
Juno CLI v0.2.0
A new version of the CLI is out, and it includes a breaking change: the juno backup
command has been renamed to snapshot
because what I originally called “backup” wasn’t really a backup but snapshot as described and provided on the IC. I still need to document the reasoning behind this change.
This release also improves the CLI’s behavior by displaying the correct follow-up commands after running juno init
, based on your package manager—since, yeah, yarn
and pnpm
have both been supported for a while now.
Additionally, I bumped the required version of ic-wasm
to v0.8.5
for those developing serverless functions (still not happy that devs need to install these tools on their sides, but I’m exploring ways to improve DX).
Lastly, I added a comment in the function template to clarify that Satellite modules are initialized with all hooks by default, but for readability, you can select only a subset (as already documented).
// All the available hooks and assertions for your Datastore and Storage are scaffolded by default in this `lib.rs` module.
// However, if you don’t have to implement all of them, for example to improve readability or reduce unnecessary logic,
// you can selectively enable only the features you need.
//
// To do this, disable the default features in your `Cargo.toml` and explicitly specify only the ones you want to use.
//
// For example, if you only need `on_set_doc`, configure your `Cargo.toml` like this:
//
// [dependencies]
// junobuild-satellite = { version = "0.0.22", default-features = false, features = ["on_set_doc"] }
//
// With this setup, only `on_set_doc` must be implemented with custom logic,
// and other hooks and assertions can be removed. They will not be included in your Satellite.
#[on_set_doc]
async fn on_set_doc(_context: OnSetDocContext) -> Result<(), String> {
Ok(())
}
// etc.
5 Likes
Create Juno just got a big upgrade!
Local dev is now the default for apps (!)
Scaffold serverless functions
Sputnik preview (WIP)
Updated all template dependencies
Onboarding revamped
Give it a try 
With NPM:
npm create juno@latest
With Yarn:
yarn create juno
With PNPM:
pnpm create juno
4 Likes
Hey! I shipped a change in the local development approach.
By default, devs on Juno now get a full environment that closely mirrors production — including the Console UI — running entirely on their machine inside a container.
I believe there’s real value in mimicking the production experience as closely as possible during development. And compared to most common cloud platforms, that’s something pretty special.
Plus, it’s genuinely fun to have everything running locally without the setup headache.
Got Node.js and Docker? Run juno dev start
— that’s it.
I rolled out the change along with updates to the documentation, templates, and tooling. Also started adding little handy touches, like a “Get ICP” button directly in the local wallet.
Let me know what you think or if anything breaks 

5 Likes
Juno v0.0.47
Easter, everything’s quiet, so I finally wrapped up the latest Juno release. 
This update includes the support for TypeScript serverless functions, a redefined local developer experience (as announced last week), and lay the foundation for a more future-proof module metadata.
No modules (Satellites, etc.) are included in the release, so there’s no rush to upgrade anything on that side. But on the tooling side… I went absolutely bananas
. Feel free to update your tools! 
4 Likes
Juno v0.0.48
This new release brings a major upgrade to Juno Analytics — now powered by native HTTP requests with no more web workers or IndexedDB.
The JS client is now over 90% (
) smaller (just 3KB gzipped!), and the dashboard supports paginated views, top time zones, and OS metrics.
There are a few breaking changes (
), so check the notes if you’re using analytics — and make sure to upgrade your Orbiter and JS libraries at the same time
.
Reach out if you have questions, happy to help!
2 Likes
(intermediate frontend release)
So, I heard you like charts?
Say hello to the new memory metrics and radar chart - now live in the Console.
The docs for those shiny new metrics are updated too. 
https://juno.build/docs/miscellaneous/memory
4 Likes
Juno v0.0.49
I just shipped a release focuses solely on updates to the Console UI.
The main change is the addition of a new “Health Check” section under “Monitoring”, along with a clearer breakdown of memory metrics.
I also revisited the notion of the “auto-refill threshold”, as the previous description was misleading or partial.
Lastly, the step related to the “authentication domain” in the hosting wizard has been simplified.
All these changes are, of course, documented.
Happy weekend 
3 Likes
Juno Docker v0.1.0
I just published a new version of the Juno Docker setup. All images — Skylab, Satellite, and Console — have been updated to include the latest Internet Computer canisters (ICP Ledger, Index, Internet Identity, Governance, and CMC).
If you upgrade these images, you might encounter issues when restarting your environment. For example:
Canister called ic0.trap with message: 'Panicked at 'Cannot upgrade from scratch stable memory, please upgrade to memory manager first.', rs/ledger_suite/icp/ledger/src/main.rs:788:13'.
I’ve assumed it’s acceptable not to handle these types of upgrades explicitly, at least this time as I don’t mind doing a bit of Docker cleanup from time to time to free up space and don’t know anyone who mentionning before have a super important local state. But if that assumption is off, please let me know.
In other words, it’s adviced to start after upgrade with a clean volume state.
4 Likes