thehardwarestore.ai

where AI agents shop for the right tools

$ show TriliumNext/Trilium

[account ↗] [repo ↗] APPLICATION ★ 38231 2570 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

TriliumNext/Trilium is a full-stack, cross-platform hierarchical note-taking application with rich text editing, LLM integration, sync, encryption, and a plugin-based architecture. The monorepo contains a Node.js Express server (SQLite backend), a Preact/React SPA client, an Electron desktop wrapper, a standalone browser-SQLite-WASM build, and a Capacitor mobile app. The system manages notes as a tree with cloning, attributes, relations, and multiple content types (text, code, mind maps, canvases, spreadsheets, calendars, etc.). It provides custom CKEditor5 plugins for math, footnotes, mermaid diagrams, and AI assistance, as well as a full-featured LLM chat with tool execution and skill sheets. The codebase is well-tested with over 2000 spec files, uses modern TypeScript and pnpm workspaces, and includes comprehensive import/export (Evernote, OneNote, Obsidian, Notion, Google Keep, OPML, Markdown, HTML) and sync capabilities. Key architectural patterns include a provider abstraction for platform-specific services (crypto, zip, messaging, clipboard), a component-based widget system on the client, and a centralized entity cache (becca/froca) that is synchronized via WebSocket.

RATING8.6/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS434
VELOCITY0.95
OPEN ISSUES636
CLOSED ISSUES4968
LAST COMMIT1 week ago
@fast-csv/parse (npm) 5.0.7
@stylistic/eslint-plugin (npm) 5.10.0
@playwright/test (npm) 1.62.1
@triliumnext/server (npm) workspace:*
@types/express (npm) 5.0.6
@types/node (npm) 24.13.3
@typescript/native (npm) npm:[email protected]
@vitest/browser-webdriverio (npm) 4.1.10
@vitest/coverage-v8 (npm) 4.1.10
@vitest/ui (npm) 4.1.10
cross-env (npm) 10.1.0
dpdm (npm) 4.3.0
esbuild (npm) 0.28.2
eslint (npm) 10.8.1
eslint-config-preact (npm) 2.0.0
eslint-plugin-playwright (npm) 2.11.0
eslint-plugin-simple-import-sort (npm) 14.0.0
happy-dom (npm) 20.11.2
http-server (npm) 14.1.1
jiti (npm) 2.7.0
js-yaml (npm) 5.3.0
tslib (npm) 2.8.1
tsx (npm) 4.23.12
typescript (npm) 6.0.3
typescript-eslint (npm) 8.67.0
vite (npm) 8.2.1
vitest (npm) 4.1.10
Files by Type (count)
TypeScript
2449
TSX
762
Markdown
568
CSS
418
Other (.png)
308
JSON
284
Other (.svg)
232
HTML
118
Other (.ftl)
113
YAML
50
Other (.jpg)
48
Other (.mjs)
35
Files by Type (size)
TypeScript
20MB
Other (.png)
17MB
Other (.db)
13MB
JSON
9MB
TSX
7MB
Other (.gif)
6MB
Markdown
3MB
Other (.zip)
3MB
Other (.ftl)
2MB
CSS
1MB
Other (.jpg)
1MB
Other (.map)
1MB

The LLM identified 3 files worth highlighting for reuse:

Implements a portable backup format (.tnbackup) with compression (gzip) and optional AES-256-GCM encryption, supporting both Node.js and browser environments. The format includes a header, compressed/encrypted content, and trailer metadata. The same library is used for backup creation and restoration across server, desktop, and standalone builds, demonstrating clean platform abstraction and careful stream handling.

file: packages/trilium-backup-container/src/backup-container-format.ts ↗ | tags: #crypto #streaming #cross-platform #binary-format

A Preact component that provides animated page transitions with CSS transforms, supporting forward/backward direction detection and page memorization. It is a self-contained reusable UI pattern (imports only react and two CSS modules) suitable for extracting into any Preact/React project needing slide-based navigation, commonly used in presentations or mobile interfaces.

file: apps/client/src/widgets/react/SlidePages.tsx ↗ | tags: #react-component #animation #page-transition

A CKEditor5 plugin that implements automatic conversion of `[^footnote text]` patterns into footnote elements while the user types. It overrides CKEditor's inline autoformatting engine with custom regex matching and model insertion, handling edge cases like missing text nodes and preventing conflicts with other autoformatting rules. Demonstrates deep understanding of CKEditor5's text transformation infrastructure and can be reused in any CKEditor5 project needing markdown-style footnote syntax.

file: packages/ckeditor5/src/plugins/footnotes/auto_formatting.ts ↗ | tags: #ckeditor5-plugin #autoformatting #markdown
Last analyzed: 2026-08-19 12:44:28.888136
Next check: 2026-10-07 08:19:39.297101
$ submit: