Attention for Alpha Users: Primitives Update

Hi Anytypers,

We are excited to share some news in advance about a major update we are working on. This update will affect all users and their current spaces – we call the project “Primitives” since it focuses on Anytype’s foundational level. With Primitives, our goal is to improve the simplicity of Anytype as we mentioned here.

What’s New

Currently, we have countless ways to achieve the same outcomes in Anytype, resulting in confusion on how to best use “types”. We are simplifying our user experience by eliminating the current unclear behavior and providing a clearer structure.

Here are the most important changes we are making:

  • Relations are now called “Properties”.
  • Type becomes a full-fledged “first class citizen” as Type now determines all the properties attached to objects.
  • Properties, which were previously set at the object level, will now be defined by Type. This change applies to both featured properties, such as the object description or tags, and specific properties, such as file or system ones.
  • Our improved templates will only handle the contents of specific objects, while the properties will be set at the Type level. Setting a property on the Type level will change the properties for all objects of that Type.
  • The object’s layout will also now only be defined by Type. For example, all objects of the Task Type will have the task layout. You won’t be able to change the layout of a specific task. If you need a different layout, you should create a new object Type.

In this upcoming release, we’re not only introducing new Primitives, but also laying the groundwork for our new Chats, including counters, notifications and other features needed for smooth chat experience.

As part of this groundwork, we have refactored our space storage. This should optimize memory usage, resulting in better overall performance, especially on mobile devices.

What Does This Mean for Your Data?

We understand that data migration is a significant issue, so:

  • You will have full control: For the new Primitives, you will be able to adapt your old structures to the new rules on your own. The changes will not be made automatically.
  • Your data will remain fully secure: For the space store refactoring, the update will be performed directly on your device, and your synced data won’t be affected. We’ll just copy it to a new format, and a local backup will be created on your device, containing all your data in the previous format. The reason we’re retaining this backup is to debug and assist you, in case of unforeseen issues. It will be removed in future releases.

Additional Features

Among the new features, please note the following:

  • Templates for sets and collections: You will now be able to preserve your column configurations and reuse them, just as you do with regular page objects.
  • Updated type icons: The new icons will be more differentiated, making it easier to identify whether you are working with Types or Objects.
  • Introduction of the right sidebar: In this first iteration, you will only be able to check the list of the object’s properties.

What to Expect

After updating to this version, you’ll briefly see a loading screen while the app applies these changes. Once the process is complete, you can continue using the app as usual.

What’s Next

  1. Later today, we plan to release the alpha version of this update which you can download from GitHub here. If you choose this option, please be aware there may be some unexpected behavior.
  2. Next week, we plan on sharing the pre-release version of this update, which you can get by switching to the pre-release channel.
  3. Otherwise, once pre-release testing is complete, we’ll announce the official product release as normal.

We are confident that these updates will significantly improve the Anytype experience and benefit all users, especially those who joined us recently.

More to come,

The Anytype Team

Sounds very interesting, thanks! Looking forward to the update.

Short question to this:

Does this mean, we will no longer have the option to add a specific property only to one object?
For example I had the relation “expenses”. Whenever I had some expenses anywhere (in a task, a page, project, whathever) I simply added the relation “expense” and entered my expenses. In an overview I could collect all the expenses over all the objects. Will this use case no longer be possible? Instead I have to manually add expense to all the type where I might need it?

I think this would significantly decrease the immense and highly liked flexibility inside Anytype and I would be quite sad about…

I’ve got to be honest, I’m going to have to re-read that a few times to get my head around it. But, it does sound interesting and like things are moving in the right direction. I think it sounds more complicated than it will actually be. I found this when first trying Anytype, and nearly ran a mile. So glad I stuck with it. It just makes sense to me now and I’m looking forward to the Primitives update – though I’ll hold out for the official release.

Congrats to the Anytype team. It takes courage and vision to be able to make such radical changes. :clap::clap::clap::clap: I love how you are, all at once, addressing the two major accessibility issues that Anytype had until now: the complexity of type/template/layout and the confusion around relations (and also addressing the top usability improvement request)

I’m sure some users will complain about these changes, as with any major changes. But I can already tell that these changes will make Anytype much more accessible to people who aren’t tech savvy.

It’s an incredible step on the path to decomplexifying Anytype and make local-first, decentralized, end-to-end encrypted knowledge management accessible to all!

Congrats Anytype

So relatable @chrsjrichards :joy:
I’m hoping for an A-Ha! moment when I actually see this stuff in action vs reading about it.

As far as I’ve seen, adding a property adds it to the type (with a choice of where to display it).
So a type with just one object that has an additional property is going to get stuck, I’m afraid.
You can have the “expense” property added to all your types… and you can set it or not.


A quick video for those who want to see what it looks like at the moment.
Here, I’m on page objects, changing the properties and layout of the type directly on a page, and you can see that it applies everywhere.

anytype_capture

I hope this is just the start of applying templates to existing objects, it doesn’t meet my needs at all, even though it’s already quite nice.

Thanks team for the heads up, and thanks @Shampra for sharing the video.

Right sidebar looks nice… It feels like pages/numbers on MacOS.

  • Q: Could a relation/property be put in different location at the same time? e.g. both at header and sidebar
  • If it is a step closer to live template, I support it.

However, the thing I might have greatest struggle is type governing all attached relation/property…

  • I have a self-defined relation for type, so I could have self-defined multi-type before it is actually supported in Anytype. I understand I could decide not to adapt new structure…
  • But now I wonder what Anytype plan to do with Multiple Types for Objects and Sub-Types / Inheritance…

I hope I am not just imagining that team has a bigger wholistic picture/vision to the implementation of more functions…

P.S. RIP relation :headstone:. I miss you already :broken_heart::smiling_face_with_tear:

Not at present, apparently.

If it’s only a step closer, I support it :smile:

:smile:

Thanks a lot for your video @Shampra

One more question: are inline properties still possible? To place them anywhere on the page as a block?

Yes, fortunately!
With the / command or drag and drop

Hallelujah, at least :joy: Thanks for checking!

Yesss !! So it begins. This is very exciting. I was waiting for that big one. After that, I think it will be much simpler to onboard my family and colleagues. I had such a hard time explaining that Relations were in fact some kind of… Properties :sweat_smile: And the hard Types make so much sense, especially for programmers.

I take this opportunity to thank the team for this amazing product. I use it every single day, on my phone and computers. It has become my second (and probably third) brain. As a scientist, I should almost credit AT in my articles as it is involved in many of them. I hardly had any issues (at least no major ones). Wlth every update it becomes smoother and smoother, as beautiful as ever. Keep up the fantastic work. !

I’m so excited to hear this (but only excited enough to be in the pre-release version; I can’t risk losing all my notes for my D&D game later tonight :sweat_smile:)!

Thanks to the AnyTeam as always, and thanks to all those Alpha folks testing it out. This looks like it will be a major step forward in usability for the less technical crowd. I’m hoping that means I can finally share with my spouse to keep us organized :crossed_fingers:

Migrated without problem and… custom icons :heart_eyes: !!!

Finally, this is about to happened!

The upcoming update is seemed very interesting.

I just don’t fully understand yet how to change my current objects and structure to adapt them to new rules.
Seems like I have to create new Types with individual sets of properties instead of different Templates with individual sets of properties that I created for some types. For instance, I use Page type with different templates and each of the template has individual sets of properties…

Yes, I believe you’ll need to re-organize this. I’m in a similar situation with many of my types and templates. The transition may take a bit of work, but long term I think it will make things a lot better organized and robust.

Great work, Anytype team! I really like this new development.

Note for those trying 0.46.0-primitives3 - Currently, newly uploaded images are only displayed as links and not as embeds (macOS).

Hey @Filip
Thanks a lot for all your information. It’s a really nice update, I like it!

One question to my example above:

I’ve now tested the new version as well. It really seems it is no longer possible to add a property which isn’t predefined in the type to an object as a block anymore.

But I’ve found a workaround:
When I create a collection and add objects from different types then I can add a Property which is not defined in the Types yet. These properties are shown as “Local Properties” in the sidebar:

Local Properties

I like this approach. But would it be possible @Anytypeteam to open this option again to the “/” context menu? I would simply like to add any property to any object like it used to be up to now… And when the property is not defined in the types it can simply add them as Local Properties. What do you think?

Because now when I open the “/” context menu I can only choose from predefined properties and no longer add new properties from there… Maybe an solution could be to add a function called “add Local Property” to the context menu.

Wow this is an unexpected huge change!

Without testing anything myself yet this feels that Anytype is getting a bit less flexible and more manageble. Which isn’t a bad thing at all.

A lot of long lasting requests are being adressed in this update. Great work!!

Changing the name from relations to properties is a good thing, that always felt a bit naming things different just to be different to me.