Architecture & Detail

The Architecture, Design, and Detail of AvalonOS

In the previous section, I spoke about how I wanted to "get the UI out of the way" in an effort to spend more time on the philosophy and design of AvalonOS.

I should have been more clear. What I meant was I wanted to get the atomic UI out of the way. That is, the design of dropdown components, buttons, and so on. The UI of AvalonOS itself plays a major role in its efficacy, and that is, in fact, what I plan to focus on entirely today.

Don't worry, however—this won't be another exposé in dropdown menu design. Rather, I plan to focus on the design, experience, workflow, and more properties of AvalonOS as a whole.

Let's get right into it.

Views

Right when you login to MacOS, you are greeted with your _______.

Logging into Windows, you instantly see your _______.

And still, even when logging into Linux, the default view is the _______.

In the top 3 most used operating systems in the world, the only "View" is the desktop. You can clutter it with windows, you can create tiny abstractions on top of it like MacOS's "Mission Control" or GNOME's "Activities" (or is it "Overview" now?), but ultimately, you're stuck in the prison of experience that is your barren Desktop.

I think this is hugely limiting.

To my eye, the Desktop serves as the most bland starting point for any task. It is the vessel to all nested actions. As a consequence of this, however, it must remain general and unspecific.

So, how can we better utilize this?

Given that the Desktop, meant to act as the cornerstone for action, has to remain unspecific, the only way to utilize this is to create more views that have more specific purposes.

You may be thinking, "well, okay. The Desktop is the one and only view, but hasn't it worked fine for us? What could we do to make it better?"

Nay, I believe this is looking at things backwards. We aren't trying to improve our Views, we're trying to improve our work. And as a consequence of these improvements, the way we view and literally do our work has to change as well.

While I have a lot of ideas for Views, the most important one is:

Projects & Workspaces

Earlier, I mentioned MacOS's "Mission Control" and GNOME's "Activities." Over the last, I don't know, 10 or so years, the concept of window management has become more popular.

(I do not like Windows [the operating system] and I haven't used it for some time, so I'm going to disregard it for now.)

Let's define these more clearly.

In my opinion, a "window manager" is something that manages the placement and size of windows in any given environment. A "Workspace," as MacOS and Linux [1] define it is a collection of windows. In other words, each workspace is a separate window manager.

In this way, a Workspace is just your Desktop, duplicated.

Now, there's no blame to be placed on the designers and developers of the most widely-used operating systems in the world here.

After all, their goal is likely to stay as usable and familiar as possible. Every single major operating system uses windows. And nearly every one (I don't know about Windows) has created this idea of Workspaces as a collection of windows.

This is normal, natural, and predictable. What's to change?

Well, the title of this section is "Projects & Workspaces", not just "Workspaces." So... what's the difference?

No matter what you work on, I guarantee it has a name, can be given a name, or is, at minimum, considered a "project."

This extends to real-life occupations, of course. Hell, even baking could have its own project: "Jim's Wedding Cake!"

Baking obviously isn't the best example here. After all, we're talking about digital projects. Still, my point stands. If you're doing something on your computer, it's safe to say you are either working on a project or doing some general stuff (entertainment, "wasting time," and so on).

And, by extension, if you are working on something, you are probably working on a project.

So... how can this help us?

One word: Integration.

Traditional "Workspaces" are a collection of windows. In Avalon, a Workspace is the project you are working on—entirely.

Indeed, in Avalon, a Workspace does contain a collection of windows, but it also contains much more.

Views and Workspaces work very well together. Below, we see the Today view, which is a collection of Workspaces ordered by the time you most recently worked on them.

Notice how the top 3 cards contain more contextually useful information than the others? Remember how I said Workspaces are much more than just windows?

I reiterate: A Workspace is a project. It contains a bunch of other information related to the project as a whole: browser tabs, browser history, passwords, windows, widgets, emails, messages—the list goes on.

Think of how you start a project right now. Since I'm a programmer, we'll use my work as an example.

Let's say I'm creating a new website. My tasks are generally:

  1. Open the Terminal and navigate to my main projects directory

  2. Create a new project directory, usually via yarn create next-app --typescript

  3. Open my code editor and click "Open Folder" and then use my mouse to walk down what seems like an endless directory tree in an effort to find the newly created project.

  4. Start the development server (yarn dev)

  5. Open my browser to localhost:3000

  6. Finally, begin work.

Generally, this is fine. After all, it's not the sort of hinderance that makes me want to throw my laptop across the room. Rather, it's the sort of thing that, in passing, could be greatly improved.

So, how would this "issue" be improved by Avalon's Workspaces?

Normal Workspaces are essentially duplicates of your Desktop. Avalon's Workspaces are completely new environments—they contain their own filesystem, their own notifications, their own data.

In this way, if I were to create a new project in Avalon, I'd simply press the "new" button and type in a name. Then, I am already working.

This has a modular structure to it. Each project is individual and does not in any way conflict with your other projects, unless you specifically do so.

This modular nature introduces the concept of patterns. And in patterns we can automate.

I make a lot of websites. Really, I do. I make so many that I've wondered why I haven't automated the process of creating new websites.

Well, in Avalon, that will come by default.

Intelligence

Avalon is not dumb. I mean, the code inside it and how it works with you, the user, is not dumb. Its usefullness and efficacy as a project is debatable, but the underlying functionality is undeniably genius, for which I do not take all the credit.

When you create a new project in Avalon, it's watching you. It's paying close attention to what you're doing.

In fact, it's paying such close attention that you can press Command + K and say "Make common project."

"What does this do?" you ask. Well, it takes everything you've done from when you pressed "New project" and it creates a new pattern. It recognizes that this project, at least the setup for it, is common, and you may want to use it again.

Now, when I need to create a new web project, all I have to do is press a single button, and my entire environment is already set up for me.

Security & Sandboxing

I needn't go on to explain the usefullness of this modularization, but I will speak for a moment about sandboxing and security.

Projects (or "Workspaces," as I will use interchangably) are not only visually separate, but literally as well. A separate filesystem means separate permissions. It means that if a bad actor gains access to my "New House" project, there's no way in hell they'll know about my "Job Interview" project, much less have access to it.

Indeed, when switching between Projects (which is understandably seamless, by the way) permissions are entirely reset and you are ultimately working as a new user created specifically to manage that one project.

The implications of the safety here are incredible. It'd be like literally creating a new user on your current operating system for each project you work on.

We're just getting started

Views and Workspaces are really the heart of Avalon's architecture. It is modular by design—and this modularization unlocks an impressive amount of features that modern operating systems lack.

I hope that, like me, you're excited for what comes next. Stay tuned for part 4 where I'll go into more general details about distribution, security, usefullness, and more. In the meantime, if you've found this interesting, share it with those who will do so likewise.

Thanks for reading.

References

  • [1]: I often use the word "Linux" to describe any number of technologies that sit atop it. In this case, I'm talking about Linux's most popular Desktop Environments (DEs) or Window Managers (WMs).

Copyright © 2022

Privacy

Made with

in SLC