Honest status · not marketing

Tine vs Logseq, today

Tine matches Logseq by default and round-trips the same Markdown files, so the goal is convergence. But it isn't finished. Here's where it's at parity, where it's scoped, where it deliberately goes further, and what it won't do — grounded in what the app actually does, not a wish-list.

"Logseq" here means the classic file / Markdown Logseq — the one that reads a folder of .md files, which Tine is file-compatible with. Logseq's newer database version is a different product and isn't the comparison target. The full Tine feature list lives in FEATURES.md; this page is the curated, gap-focused view.

✓ full parity ◑ partial / scoped ✗ not yet ⊕ Tine goes further plugin Logseq: community plugin only
Can I copy a block reference?
✓ Yes. Right-click a block → Copy block ref or Copy block embed. Tine stamps the block's id:: on demand and keeps it stable, so the reference survives restarts and round-trips to Logseq.
Page properties?
✓ Yes — page-level and block-level key:: value properties, edited inline, with the same on-disk format Logseq uses.
Queries?
◑ Yes — the everyday queries work: {{query (and (task TODO) (priority A))}}, page-refs, block/page properties, scheduled/deadline ranges, boolean and/or/not, and sort-by. That's the bulk of real-world use. At rest a query reads as one plain-English sentence; the visual query editor and the query text stay in sync, so you don't have to remember the syntax, and an empty result can tell you which condition emptied it. The gap is raw Datalog ([:find … :where [?b :block/…]]): an advanced query stays advanced and is edited as text. Tine translates the common clause heads (task, priority, page-ref, property, page-property, page-tags, page, namespace, scheduled, deadline, journal, between) but skips arbitrary entity–attribute joins, custom rules, and :result-transform/:view — and it tells you which clauses ran and which it ignored, instead of guessing a wrong answer. You can also summarize results (count/sum/average, group-by) with no code. Queries even run in the HTML export.
Do math on query results?
✓ Yes, and no code needed — a query's no-code summarize counts the matched blocks, sums or averages a numeric property across them, and/or groups the results (by page or property) into a per-group table. In Logseq you get this only by writing a Clojure :result-transform or :view function inside the query — an escape hatch most users never touch, with no native no-code path, so this is a step beyond Logseq.

Editing & the outliner

The core writing experience.

FeatureLogseqTineNotes
Outlining — nest, fold, zoom, move blocks✓✓Keyboard-first; drag to reorder.
Bold / italic / strikethrough / highlight / inline code✓✓Cmd+B/I plus a floating selection toolbar; **/==/~~ wrap the selection as you type.
Raw inline HTML (<ins>, <sup>, <kbd>…)✓✓Renders live, sanitized to a safe allowlist (formatting tags + <img>/<a>); scripts, event handlers and style are stripped (#16). Two Logseq-parity notes: a bare <img> is literal in Logseq too (only a self-closed <img/> renders), and ^x^/~x~ aren't sub/superscript in either — use the HTML tags or $math$.
Slash command menu✓✓Blocks, headings, tasks, dates, code, math, queries, and your own templates (right-click → Make a template, then /name).
Auto-pair brackets / [[ ]]✓✓Page-ref pairing is always on; general auto-pairing is a toggle.
Block references & embeds✓✓((ref)), {{embed}}; copy ref/embed from the right-click menu.
Page & block properties✓✓Same key:: value on-disk format; edit inline or through a property form (add, change, remove).

Content & rendering

What a block can show. Every row here is verified against the published Guide's Feature showcase.

FeatureLogseqTineNotes
Headings, lists, blockquotes, HR✓✓
Code blocks + syntax highlighting✓✓
Tables (with column alignment)✓✓
LaTeX math (inline + display)✓✓KaTeX.
Images (inline, sized) & media✓✓Video/audio embeds; PDF too (below).
Callouts / admonitions✓✓#+BEGIN_NOTE and [!NOTE].
Task markers + checkboxes✓✓TODO/DOING/NOW/LATER/WAITING/DONE/CANCELED; click the box to toggle.
Priorities [#A]✓✓
SCHEDULED / DEADLINE + repeaters✓✓Repeating tasks roll forward on completion.
Logbook / time tracking✓✓Task-marker transitions clock in/out into an OG-compatible :LOGBOOK: drawer with computed durations (on by default, toggle in Settings; drawers round-trip and stay hidden).
Footnotes✓✓

Pages, journals & links

FeatureLogseqTineNotes
Journals / daily notes✓✓Multi-day feed, configurable title/file formats.
Page links, tags, namespaces (a/b/c)✓✓Namespace tree in the sidebar.
Aliases✓✓alias:: resolves in search + refs.
Linked & unlinked references✓✓
Favorites✓⊕Favorites can be grouped, nested to any depth; editing the Favorites page updates the sidebar.
Graph view (node-link)✓✗Not yet — researched; a local-neighborhood view is the likely first bite.

Queries

FeatureLogseqTineNotes
Simple & compound queries (DSL)✓✓task / priority / property / page-ref / scheduled / deadline / between / sort-by, with and/or/not.
Advanced Datalog ([:find …])✓◑Tine translates the common clause heads (task, priority, page-ref, property, page-property, page-tags, page, namespace, scheduled, deadline, journal, between, and/or/not) onto its engine; raw entity–attribute joins ([?b ?a ?v]) and custom rules aren't mapped. An advanced query stays advanced and is edited as text; Tine reports which clauses ran vs. were ignored — never a silently-wrong result.
Query result tables / views✓◑One result set, four views — Search, List, Table, Board — with a Display panel for grouping, sort, columns, totals and sample; table headers sort, reorder and total in place. Logseq's :view (a Clojure fn that draws a custom table/layout) and :result-transform (a Clojure fn that reshapes the result list) aren't run.
Math / aggregation on results✗✓Tine has a no-code summarize (count / sum / average a property, group-by page or property). Logseq has no native no-code path — it means writing a Clojure :result-transform.

Search, assets & export

FeatureLogseqTineNotes
Global search / quick switcher (Ctrl+K)✓✓
PDF viewer + annotation / highlights✓✓Highlights become blocks, same as Logseq.
Asset handling (images, files)✓✓Paste an image → saved to assets/.
HTML publish / export✓✓Facets, queries, and embeds all render — resolved against your graph at publish time. This site's Guide is Tine's own export.
Live export (a read-only Tine app)✗⊕tine export live (or Export… in the app, or on any query) publishes pages as a static site that keeps search, tabs, split view and shareable page/block links working — no server. The Guide is one.
PDF exportplugin✓Logseq has no native PDF export — only a community plugin. Tine has it built in: right-click a page → Export to PDF… (whole page, print dialog → Save as PDF). Desktop only.
Copy as Markdown / Rendered✓⊕Tine adds a Rendered copy (paste formatted into email/docs).
Org-mode graphs✓✓Reads/writes .org; per-graph preferred format.

Extensions & themes

Both apps are extensible, but the APIs and trust models are different.

FeatureLogseqTineNotes
Plugin platform✓◑Tine 0.6 starts an experimental signed catalogue of bounded WebAssembly guests and declarative themes (theme API 0.2). F-Droid builds omit the network catalogue. It is intentionally not compatible with Logseq's mature @logseq/libs ecosystem; ports use Tine's narrower host-owned API.
Custom CSS and themes✓✓Tine reads graph logseq/custom.css, aliases common --ls-* variables, and also offers declarative theme packages. Graph CSS remains last in the cascade.

Platforms & your files

FeatureLogseqTineNotes
Desktop: Linux, macOS, Windows✓✓Linux AppImage/.deb/.rpm; signed & notarized macOS; Windows installer or portable zip.
Android✓✓On F-Droid plus a signed APK; same fast core as desktop.
iPhone / iPad✓◑Public TestFlight beta; no App Store listing yet.
Sync conflicts (Syncthing / Dropbox copies, git markers)◑⊕Concord: two versions of a page are reviewed in place, block by block, with a suggestion from the last version both sides agreed on; git/Fossil conflict markers can be finished in Tine; a big checkout or sync burst is one calm update; a Conflicts page lists what is open.
External edits while the app is open✓✓Refresh on window focus, optional “always ask before applying an external change”, and live config.edn re-read.
Command line✗⊕tine open, capture, export static|live, a read-only doctor, and man tine on Linux packages.

Where Tine goes further ⊕

The reason Tine exists is speed — and a few conveniences beyond Logseq.

FeatureLogseqTineNotes
Performance on large graphs / older machines◑⊕The founding goal: a native Rust core + a lean UI, tuned for machines Logseq bogs down on.
Sheets — grids, field tables & boards✗⊕Render a bullet and its children as a spreadsheet-style grid, a typed field table, or a Kanban board — with formula columns, filters, aggregates, group-by, and CSV/TSV import. Stays plain Markdown plus tine.* properties Logseq ignores.
Split view◑⊕Independent panes, each with its own tabs and history; Ctrl+click opens beside, Alt+click opens in the other pane, drag a tab across, keyboard pane/seam navigation. Named workspaces save and restore the whole window. Logseq has only the single right sidebar.
No-code query math & grouping◑⊕The no-code summarize counts / sums / averages a property and groups results with no code; in Logseq this needs a Clojure :result-transform / :view.
Editor tabsplugin⊕Built in (Logseq needs a community plugin): middle-click / Ctrl+W, reorderable, restored on launch.
Search that becomes a query◑⊕Open every Ctrl+K result in a persistent, restorable tab; refine it and view it as a list, table or board; name it to turn it into a query page.
Global quick capture◑⊕tine capture (bind it to a desktop hotkey) opens a mini-window with the full editor, into today's journal or a new page.
Typographic replacements (-> → →)◑⊕Optional render-time only; your .md keeps the ASCII.

Deliberately not doing

Logseq features that are out of scope by design — so a gap here is a choice, not a to-do.

  • Whiteboards — a whole separate canvas app; not Tine's focus.
  • Flashcards / spaced repetition — a large subsystem better served by dedicated tools.
  • Logseq / Obsidian plugin API compatibility — Tine's capability-limited WebAssembly platform is deliberately narrower; existing plugins do not run unchanged.
  • Real-time multi-user collaboration — Tine is local-first over your own file sync (Syncthing/Dropbox/git), not a live shared server.
  • The database version of Logseq — Tine targets the file/Markdown model on purpose; that's what keeps your notes as plain files you own.

As of Tine v0.6.984 · September 2026. This page is maintained by hand and will drift as features ship — FEATURES.md is the source of truth.