asopi tech
asopi techIndie Developer

Asopitech With · Note app

Notion with Alopex DB

Notion is a note app that organizes notes and documents into pages and blocks. How would we make it with Alopex DB?

Updated: Oct 12, 2026

What the service does

In a Notion-like note app, everything on a page is a block. Text, images and tables are stacked as blocks, any block can be turned into another type, and blocks are rearranged by drag and drop. The data is workspaces, the page hierarchy, the order and content of blocks, and search across pages.

Where the data lives

  • SQL tables: workspaces, pages and blocks live in tables. Each block points to its parent, so blocks form a tree, and a recursive CTE walks a page from top to bottom. Attributes that differ by block type go in a JSON column.
  • Vectors: each block’s embedding sits in a vector column of the same table. A question such as “the part of last month’s minutes about pricing” is answered through an HNSW index.
  • Full-text search: headings and proper names are found through a full-text index. Meaning-based and word-based search are combined in the same SQL.

The app creates the embeddings. When a block changes, the app computes a new embedding and commits the text and the vector in the same transaction. Search results always point at the current text.

Deployment

Each workspace is a single .alopex file. Alopex DB is embedded in the desktop app, so reading, writing and searching all happen on the device, with or without a network. Copying or handing over a workspace is a file copy. A shared team workspace is the same file opened by the Alopex DB server and reached over HTTP or gRPC.

Why Alopex DB fits

A note app is built around tree-shaped documents and search across them. Alopex DB handles tables, JSON, full-text search and vectors in one file and one transaction. The notes and their search index always describe the same moment.

For a note app, we recommend Alopex DB, which keeps blocks and semantic search in one .alopex file. You can try it from the quickstart.