This week we released a new version of Holochain Launcher with a lot of new features. I took it for a test run and I have to say… I'm excited. It feels like something my dad could actually use! The new Launcher is much more welcoming to non-technical users. I’m going to unbox it below, but first, the Holochain release notes for this week.
Holochain 0.0.139: Keystore version bump, simpler link CRUD
Breaking changes: none
Compatible HDK versions: 0.0.129, 0.0.130, 0.0.131, 0.0.132
Compatible Lair version: 0.1.3
This release is another small one, albeit with a couple meaningful changes for devs and users:
- The compatible Lair keystore has been bumped to version 0.1.3 (#1377). This brings mostly documentation updates, but also fixes a bug involving spaces in Lair’s socket/pipe path (lair #91) and gets more strict about the version of Lair that it intends to connect to (lair #95).
- The link CRUD functions
get_linksnow take any DHT hash that can be converted to a linkable hash, rather than requiring you to convert it yourself. On the flip side, entry, header, and external hashes now have
Into<AnyLinkableHash>implementations to make this all possible. Surprisingly, this isn’t a breaking change, as it all happens in the HDK before getting sent to the host. (#1365)
Unboxing the user-friendly Launcher 0.4.4
Compatible Holochain versions: 0.0.127, 0.0.131, 0.0.132, 0.0.136
If you’re not familiar with the Holochain Launcher, it’s a user-friendly manager for running hApps. This will eventually be our end-user offering, and one of the primary ways you’ll be able to distribute web-based hApps to your users.
Version 0.4.4 is a huge jump toward the goal of user-friendliness, in a few ways:
- DevHub, a built-in package manager that lets your users download and install hApps right from within the Launcher!
- It supports multiple Holochain versions, which means that you don’t have to worry quite as much about whether your users have the right Launcher installed. It also means they also won’t have to perform any more factory resets and lose their data!
Okay, let’s unbox this thing.
1. First run
Here’s something new: When you start up Launcher 0.4.4 for the first time, there’s already a hApp running! It’s the first public preview of the new DevHub hApp. (I’ll talk more about that at the bottom of this Dev Pulse.)
2. hApp Library
If you click on the ‘Install new app’ button, instead of getting a file dialog, you see the new App Library! It’s powered by the DevHub DNA, and it lets you download, install, and start a hApp with just a couple of clicks. Currently there’s only one hApp with a public release, called Notebooks, but it’s a fun one.
3. Installing a hApp
As you can see, I didn’t have to hunt around for a hApp bundle file on the internet, and I didn’t have to hunt for the downloaded file on my device’s storage. The Launcher just downloaded Notebooks and showed me a simplified installation dialog. The membrane proof fields are hidden; all I have to do is change the hApp’s name if I feel like it.
4. Behold, a newly installed hApp
Now I have two hApps, DevHub and Notebooks. They each require a different conductor version, but that’s no problem; you can see that Launcher started up 0.0136 automatically for me. Users probably won’t notice or care about this detail, but what it means for them is that It Just Works.
5. Using Notebooks for the first time
Notebooks is a real-time collaborative document editor, similar to HackMD or Google Docs. It’s built using a framework called Syn, created by Eric Harris-Braun and his son last year. I’d like to say more about Notebooks, but for brevity’s sake I’ll say this: I was surprised by how delightful it was to use. The real-time editing experience is smooth and snappy, just like you’d expect from a cloud app. But I’m comforted by the knowedge that all the stuff I care about is on my machine!
So, now that you’ve seen the new Launcher, why not give it a try? I invite non-developers to try it out too!
DevHub public preview
So the other big news that got bundled with Launcher 0.4.4 is, of course, the first public preview of the DevHub hApp. It’s not ready for prime time yet (that will likely happen after the Stable Validation milestone) but I’m still excited by the possibilities it hints at.
So what is DevHub? If you’re a developer, it’s easiest to think of it as a package manager and distributed repository for hApps, built on Holochain. You can distribute releases of your zomes, DNAs, hApps, and web-based UIs for other developers to remix, or for users to download.
If you’re a user, it’s like an open-source hApp store or library. As we’ve seen, the Launcher can talk to the DevHub DNA natively, giving it the power to search, download, install, and update hApps.
The DevHub hApp comes with a web-based GUI that attempts to serve both devs and users. In the future, it will split into two GUIs — one specifically tailored to devs, and a user-focused ‘hApp store’ experience.
This demonstrates that you don’t have to use a hApp’s default UI — you can fork it, create your own, or even build it into a desktop app, as the Launcher’s native support demonstrates. This is what happens when an app’s API is totally accessible to you on your machine. It’s all under your control!
Unboxing the DevHub GUI
Now let’s take a look at this first iteration of the DevHub GUI. It’s being redesigned at the moment, but this will give you a taste of what the DNA is meant for.
1. Main page
When you open up the GUI, you see a listing of hApp packages, sorted by date. You can get info on a package, add your own hApp, or choose instead to look at individual DNAs and zomes if you’re interested in remixing and creating your own hApp.
2. hApp info page
Let’s take a look at the Notebooks listing. We can see some information about the hApp — what it’s for, how fresh it is, who wrote it, etc. Below that, you can see all the individual releases of the hApp.
3. Release page
Let’s take a look at the 0.0.1 release of Notebooks. It was published on 9 May 2022, and we can see the changelog. To the right we can see the DNAs that comprise it — `syn` and `notebooks` — and download a headless `.happ` package or a full `.webhapp` package.
That’s all for now — once I learn more about DevHub I’d like to do a more in-depth study of what it can do!