Personal Knowledge Management App | AFFiNE Review (First Impression)

Screenshot

Overview

AFFiNE is a productivity tool developed by Toeverything Pte. Ltd., a company registered in Singapore. The tool is designed to provide a unified platform for various productivity needs, including document editing, diagram drawing, and planning. 

AFFiNE is built on the principles of flexibility and transformation, inspired by the concept of affine transformations in mathematics, which allow for various types of geometric transformations.

Block Suite & Octobase

  • AFFAiNE is built using two other open-source projects, BlockSuite and OctoBase, both of which are also developed by Toeverything.
  • BlockSuite is a project focused on developing a block-based text editor.
  • OctoBase is a team-friendly backend and database project built on CRDT (Conflict-free Replicated Data Type). CRDT is a clever algorithm that lets you update data independently on multiple replicas, all while keeping everything in sync and consistent.

https://affine.pro/blog/who-are-we-and-what-makes-affine

AFFiNE Alpha was launched in late 2022 as the Markdown Editor. The latest stable version of AFFiNE is 0.14.6. If you’re interested in experiencing the upcoming version of the app, you can download the true beta version from their website. This availability highlights the ongoing active development of the application.

https://affine.pro/blog/affine-alpha-is-coming

Core Components of AFFiNE

  • Block-Based Document Editor: Allows users to create and edit documents using a modular block system.
  • Many Views: One of the core design principles of the AFFiNE system is the organization of groups of blocks as a database. This database can then be presented in various ways. Similar to the AFFiNE transformation in mathematics, the core elements remain the same, but the presentation can be adapted in multiple ways.
  • Open-source, local first

Vision and Future Plans

AFFiNE aims to be an “all-in-one” solution for knowledge management. While this is an ambitious goal, and AFFiNE is not the only one striving for it, their current core design seems to be genuinely geared towards achieving this objective. This is primarily due to their modular and flexible design.

Strength

Cloud Sync, Offline & Web App

  • ✅ Full Offline: This app is fully functional even when offline. In fact, when you download the desktop app, you don’t even need to create an account to use it. I appreciate local-first apps because they provide security, privacy, and a sense of ownership over my notes.
  • ☑️ Cloud Sync:

I need the ability to sync my notes across multiple devices, including my home computer, mobile devices, and work computers. Affine offers a free 10GB cloud sync service through their online server. If you prefer not to use this service, they also provide a free self-hosting option. 

If you want to sync your local copies across devices using third-party cloud storage services like iCloud, Google Drive, or Dropbox, the latest stable release currently does not support changing the local file path. 

The ability to choose a local file path is planned for the future. However, the developer is uncertain how this feature will work with third-party cloud sync services.

  • ✅ Web App: Independent of how great the dedicated apps are, I need Web App for my use case because my work computers do not permit the installation of third-party applications. Fortunately, AFFiNe offers fully functional web app. 

I have experienced no issues accessing and taking notes on my work computer, home computer, personal laptop even without internet access. 

Open Source

  • Open-source applications offer numerous advantages. While I may not be able to cover all the benefits comprehensively, here are a few key points, assuming there is a robust community of developers and programmers reviewing the code:
  • Enhanced Security and Privacy: Open-source applications are less likely to contain malicious code because even a single instance of intentional malicious code can jeopardize the entire project. Moreover, vulnerabilities are identified more quickly due to multiple reviewers.
  • Accelerated Development: With a larger pool of potential contributors, development can proceed more quickly and new feature priorities are often driven by community need, not just the core developers.
  • Vendor Independence: There is always a concern when selecting a vendor-dependent app. While this might seem paranoid, I feel uncomfortable with my “second brain” being at risk of abrupt termination by the vendor, either through changing business policies or the company ceasing support entirely.

    With the current status of numerous excellent PKM (Personal Knowledge Management) apps competing and co-existing with each continuing to evolve over time and new ones emerging constantly, I prefer to keep my options open. If I discover a new PKM app that is unequivocally superior to my current one for my use case, I don’t want to be locked into my current app and unable to switch to the new one. Especially, I do not want to continue paying for a subscription that I no longer need, except to retain old data until I can complete the migration.

    One of the key advantages of AFFiNE being open source is that it is inherently free, ensuring I always have access to my data. Even if the original developer decides to cease support, there is a possibility that another developer might take over the project and continue its development.

Business Model

Personally, I have a peculiar threshold for “subscription.” In this context, I am specifically referring to Software as a Service (SaaS). It makes sense to pay for cloud computing power, server storage space and even server maintenance while I use those services. If the app continues to gain features that I use, it also makes sense to paying for them.

The current state of note-taking apps presents a challenge for me. Although I believe their core functionality could warrant a one-time payment, I am uncomfortable with the idea of a monthly subscription, particularly when I have no interest in the new features being introduced. I find it especially frustrating when companies place “essential” note-taking features behind a paywall, rendering the app incomplete without them.

This is where AFFiNE’s approach truly resonated with me. Essentially, every function of AFFiNE is free. There is no functionality that you lose without a subscription. Instead, the company generates revenue by following means:

The first method is to charge for commercial and team use. This approach makes perfect sense to me. If we are generating revenue by using the app, it is only fair to compensate the developer.

A more relevant option for personal use cases is the “subscription” plan, which is tied to specific services.

  • AI Subscription: For $8.90/month, you can access AFFiNE AI. This service is entirely optional. If you need it, you can subscribe; if not, there’s no obligation. AFFiNE AI utilizes cloud computational power, making it a reasonable service that justifies the subscription fee.
  • Extra Cloud Storage: Free cloud storage is limited to 10GB with a maximum file size of 10MB. For $6.75/month, you can upgrade to 100GB of storage with a maximum file size of 100MB. This fee covers the cost of additional server space. Alternatively, you can set up your own server with free self-hosting if you prefer not to pay for extra storage. This subscription model also seems reasonable.

So with AFFiNE, as users, we have the option to choose whether we want a specific service that utilizes external resources. If we decide to opt for such a service, we can then subscribe to it. I believe this is a very fair business model.

https://affine.pro/pricing

Power of Edgeless Mode

Screenshot
  • In AFFiNE, every note, referred to as a document, can be displayed in two formats: the classic lines of text format, known as “page mode”, or the canvas view, called “Edgeless mode”. At first I thought I careless about edgeless mode, but it’s now one of my most favorite feature in AFFiNE.

White board

While my personal workflow does not currently utilize these features, Edgless Mode offers freehand drawing, shape addition, and pre-built flowcharts. When I was a student decades ago, I chose OneNote as my digital note-taking app because it allowed for freehand writing. Therefore, I can see how this feature would be a major attraction for some users. However, one warning: when I tested AFFiNE with my iPad using the web app, it did not support palm rejection. This suggests “free hand-drawing” for notetaking may not yet be ready for prime time. 

Project without clutter

While these features are impressive, they don’t currently fit into my workflow. What I truly appreciate about this mode is its ability to intutively create what’s referred to as “Project notes” in book by Sonke Ahrens, or “Project Folder” on PARA Method by Tiago Forte. Previously, I struggled to connect these concepts with Atomic Notes, which focus on a single concept per note, a method I prefer for peronal knowledge management. There are three reasons why creating these are more intuitive in AFFiNE.

The first reason is that we can split documents into small pieces, referred to as Notes in AFFiNE’s Edgeless Mode. These notes can be reorganized and reordered. I can then switch back to Page Mode to view the long-form document. This approach supports bottom-up writing.

The second reason is that these notes can be displayed in one mode but not the other. This allows me to create additional notes, such as resource piles on the canvas, and selectively choose which ones to include in the final write-up in Page Mode.

These features have enabled me to replace Scrivener, at least for my short-term needs so far.

The third reason allows me to distinguish between Project, or temporary Notes and Permanent Notes. Although I created all these notes in Edgeless Mode, they were all contained within a single document.

Project Notes are meant to be archived or deleted upon the completion of a project, as they are entirely contextual to that specific project. Consequently, having all these notes in one document essentially transformed the document into a Project folder.

In other PKM apps, distinguishing between Project and Permanent notes was challenging. I had to choose between writing a long, single note to keep all text within a single Project note/object or creating individual notes and labeling them as Project notes. The latter cluttered my global note space, and upon project completion, I had to ensure each note was archived. This process became particularly confusing when I wanted to include a Permanent Note as part of a project. In such cases, I used the note for reference but did not want to delete or archive it after the project’s completion.

Database & Kanban

The core feature of Affine is its ability to transform blocks in various ways, allowing users to choose their preferred working method. At the document level, Affine offers Page and Edgeless Modes for transformation. Within a document, Affine currently supports table databases and Kanban view formats. Although I haven’t extensively used these features myself, their utility became immediately apparent to me, even as a novice. For instance, tracking items that change phases is perfectly suited for the Kanban view. It visually displays the stage of each item, and the drag-and-drop functionality feels intuitive and efficient.

No PDF editing

One of my workflows relies heavily on PDFs. It’s essential for me to read, highlight, take notes, and store PDFs in an organized manner for reference. Currently, AFFiNE supports PDF embedding but lacks editing capabilities.

According to the developers, this feature is planned for inclusion in version 0.17. Given that they release a new version every six weeks and the current version is 0.14, we can expect this feature to be available in approximately 3-5 months.

Since it’s not yet released but on the horizon, I am categorizing this as neutral. However, I believe this could become a significant strength of AFFiNE for my workflow once the PDF editing feature is released. It’s not just the convenience of having one app to do it all; I can see that it can actually add a new level of workflow that I was not able to achieve before.

Recently, I tested subscription-only PKM, Heptabase. It already supports PDF editing and has canvas. I was impressed how two functions so coherently. It’s not something I’ve had a chance to experience before on my small set of PKM testings so far.

In Heptabase, you can highlight a PDF and then drag and drop the highlighted note onto the canvas. This action automatically creates a note entry in the system, which retains a link to the original highlighted section of the PDF. This effectively addresses the “reference note” type in Zettelkasten. By allowing me to take my own notes, it then straight becomes the “literature note.” I am uncertain about the exact implementation details of AFFiNe, but I hope it will follow a similar process.

Neutral

AI

AFFiNE offers an AI service through a subscription model. For the free trial, you are limited to 10 uses. Despite such small number of tests, I’ve decided to subscribe because I needed help with English grammar. This service is not just a simple “ask AI and get a response” system; it is integrated into the platform. By selecting your text, you can choose the AI to fix grammar, correct spelling, or improve writing. Additionally, you can request changes in tone to make your text more professional or humorous. The service also includes translation into foreign languages. While it can generate a presentation, the current output does not seem particularly useful.

For me, fixing grammar alone is practical. In fact, I have also used AI to generate content for this presentation. The overview section of this video was generated by AI, and I have quickly verified its credibility.

The cost of $8.90/month for this optional feature seems reasonable in my opinion especially there is no usage limit.

The reason I am rating this as neutral rather than positive is due to the requirement to pay for the entire year upfront. Additionally, they do not offer the option to integrate our own AI subscription key, though developers need to make some money from this project. I think this is a far better way to ask for money than restricting core functionality. As the AI integration into AFFiNE continues to evolve, this could easily become a positive aspect of the app.

Transclusion

Transclusion is the ability to embed the actual content of one note into another. This functionality is crucial for long-form writing, as it allows us to seamlessly integrate individual pieces into a cohesive whole.

This is also listed as coming soon feature. According to the developer, this feature will allow for the inclusion of entire documents, rather than just individual blocks. To me, this feels somewhat restrictive, especially after experiencing block transclusion on other platforms. 

No split view

For multitasking, split-view functionality is crucial for me. I generally avoid apps that do not support this feature. While a true split view feature is not yet available, AFFiNE enables simultaneous access and opening of documents through its collaboration support. This means you can open two web apps or one web app and one desktop app to achieve a split view functionality even now. The highly anticipated split view feature is expected to be available in the near future.

Weakness

No mobile app

One of the main limitations of AFFiNE at this moment is the lack of a mobile app. While a mobile app is planned, it won’t be available until Winter 2024. Although it is possible to access AFFiNE through a web app on your mobile device today, the experience is quite suboptimal.

For example, one annoying issue I have encountered on my iPhone is that if I misspell a word and hit space, the entire text is wiped out instead of being autocorrected.

Also, more complex edgeless view kept crushing on iPhone during my test.

Therefore, if a mobile device is a crucial part of your workflow, AFFiNE may not be suitable for you at this time.

Rough edges

Another limitation of the app is what I refer to as “rough edges” or “frictions.” While the app is functional and I was able to prepare this video script entirely using AFFine, several small aspects seem underdeveloped in terms of usability. Consequently, my overall workflow efficiency felt reduced.

Strict selection box area

For example, the block selection box in AFFiNE can only be created from the sides and must be at the level of the contents. While this may or may not affect you, or you may not have even noticed it before, this behavior is different from other PKM apps I’ve used recently, such as Notion, Capacities, AnyType, or Heptabase. My natural workflow was to find a white space area and draw a box from there. Initially, I thought it was a bug until I figured out this strict selection box trigger zone on AFFiNE.

Toggle only on bullet

Another example is that I can only use the toggle feature on bullet or numbered lists in AFFiNE. When writing a longer document, I use headers, and each section under a header is a group to me. Therefore, my natural workflow involves making these sections toggle points.

Auto-indent subsections

In AFFiNE, when you indent or unindent a parent section, all nested items will move by the same amount. Although this might initially appear convenient, it differs from the default behavior in other Personal Knowledge Management (PKM) systems I’ve used. As a result, this feature can make it more challenging to insert an item between existing entries.

Copy & Paste

One of the most significant issues I encounter in the “rough edge” categories is the suboptimal copy-and-paste functionality in AFFiNE. Whether copying and pasting into AFFiNE or from AFFiNE, the experience is far from ideal. For instance, when I try to paste tabulated data from Apple Numbers, AFFiNE places each item on a separate line, failing to maintain the table format. In contrast, Notion creates an editable table, and Capacities converts the data into an image. Additionally, when I paste text from AFFiNE into Discord, it loses all formatting. On the other hand, Notion and Capacities retain some formatting, making the pasted content more readable.

No regular table

One surprising aspect of AFFiNE is its lack of support for plain tables. This is unexpected, given th at AFFiNE does support database tables, which offer more advanced features. While I can technically use database tables to organize data in a table format, this approach often exceeds my needs. Creating and editing database tables for simple tasks introduces inefficiencies into my workflow.

Slow loading images

You may have observed in earlier videos that image loading in AFFiNE can be slow and far from instantaneous, even though everything should be running locally. This issue impacts both the uploading of new images and the loading of images that have already been uploaded.

These are just a few examples, and most of these points have some workarounds. However, these types of rough edges can create a feeling of “friction” in the system. In a true Personal Knowledge Management (PKM) system, we want the system as frictionless as possible, allowing us to focus solely on our note-taking.

Object-notetaking

AFFiNE supports object-based note-taking by allowing the combination of manual collection capability and custom properties for each document. This means you can create a collection, such as a “Book”, and add a new document under it to represent each book, where each of these “book” doc have set of properties like Author and ISBN. However, there is no default template setting, so you must manually add these properties each time a new document is created. Additionally, there is no default view to better display these objects, which would ideally place the properties more prominently. Currently, properties also lack support for linking to other documents, fixed selection types, and other advanced features.

Network-notetaking

AFFiNE supports linking documents, including backlinks. However, it currently lacks a “graph view.” While I personally haven’t found the graph view particularly useful, I acknowledge that many people appreciate this feature for network-based note-taking. Some may even consider it an incomplete network note-taking system without it.

Bottom-Up notetaking

As part of my favorite design decision in AFFiNE, they allow us to split a document into notes. This feels like a perfect way to do bottom-up note-taking in a given project without cluttering the entire workspace.

However, this workflow is currently limited by the lack of an easy way to focus on each note, and also lacks a real way to create or access notes in Page Mode.

These are just a few examples I’ve noticed in my daily workflow while using AFFiNE and quickly comparing to other PKMs I have used.

Bug

Overall, the app functions relatively smoothly, but AFFiNE is not without its bugs. 

Image Uploading Error

I frequently encounter inconsistent errors when uploading images, even when using the same file. This problem is exacerbated by the slow upload process on AFFiNE, which is rarely instantaneous. Furthermore, the image loading menu does not appear immediately, making it unclear whether the upload is in progress.

Failed or saved Cloud Sync?

Recently, I encountered an issue where my desktop edits failed to upload to the cloud. I didn’t realize this until the next day when I was using my laptop away from home, which made me worry about potential file inconsistencies. Once I got home, I manually refreshed and resynced my files. Fortunately, I still had my desktop version open with the latest edits, and everything synced correctly. I’m unsure how to interpret this incident. Was it a failed cloud sync, which is a concerning bug, or was it the use of Conflict-free Replicated Data Type (CRDT) algorithms that ensured data reliability? In the end, I did have the correct data.

After doing manual refresh, resync once I got back home and seeing I still had my desktop version open and had the latest edit there, all everything went ok.

Final thought

My overall first impression of AFFiNE is very positive, as I tend to be an optimistic person. I genuinely appreciate their business model and core philosophy, which include their subscription model, open-source approach, local-first strategy, and aim to be an “all-in-one” solution. AFFiNE seems to have one of the highest potentials to achieve the ultimate knowledge management platform. While what I have seen so far, and some interactions I have had with the development team, do not contradict this potential, the app is still in the early stages of its development. Whether this is just conceptual or will actually become a real app needs a bit more time to tell. However, the wait to be able to assess this may not be too far away, at least for my own use case. What the team will put out in the next 3-6 months will be very interesting.

Reference:

1 Trackback / Pingback

  1. [PKM] AFFiNE Tip: How to do Object Note-taking in AFFiNE – Game & Tech Focus

Comments are closed.