Convert Figma logo to code with AI

joplin logovslogseq logo

Joplin vs Logseq

Detailed comparison of features, pros, cons, and usage

Joplin is a more traditional note-taking app with robust synchronization and encryption, while Logseq is a privacy-focused, local-first outliner that emphasizes networked thought, with Joplin offering better cross-platform support and Logseq providing a more flexible, graph-based structure for organizing information.

Joplin

Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.

49,973
Logseq

A privacy-first, open-source platform for knowledge management and collaboration. Download link: http://github.com/logseq/logseq/releases. roadmap: http://trello.com/b/8txSM12G/roadmap

37,776

joplin logoJoplin Pros and Cons

Pros

  • Open-source and cross-platform note-taking application
  • Supports Markdown formatting and rich text editing
  • Offers end-to-end encryption for secure note storage
  • Provides synchronization across multiple devices and platforms

Cons

  • Learning curve for users unfamiliar with Markdown syntax
  • Limited collaboration features compared to some proprietary alternatives
  • Sync conflicts can occasionally occur when using multiple devices
  • Mobile apps may have fewer features compared to desktop versions

logseq logoLogseq Pros and Cons

Pros

  • Open-source and privacy-focused knowledge management tool
  • Supports both Markdown and Org-mode syntax
  • Offers local-first storage and offline functionality
  • Provides a graph view for visualizing connections between notes

Cons

  • Steeper learning curve compared to some other note-taking apps
  • Limited mobile support (currently in beta)
  • Fewer integrations with third-party services compared to some competitors
  • May require additional setup for cloud sync and collaboration features

joplin logoJoplin Code Examples

Note Creation and Manipulation

This snippet demonstrates how to create a new note and set its properties using the Joplin API:

const joplin = require('api');

async function createNote() {
  let newNote = await joplin.data.post(['notes'], null, {
    title: 'My New Note',
    body: 'This is the content of my new note.',
    parent_id: 'your_notebook_id_here'
  });
  console.log('New note created with ID:', newNote.id);
}

Plugin Development

Here's an example of how to create a simple Joplin plugin that adds a custom command:

import joplin from 'api';

joplin.plugins.register({
  onStart: async function() {
    await joplin.commands.register({
      name: 'myCustomCommand',
      label: 'My Custom Command',
      execute: async () => {
        await joplin.commands.execute('showModalMessage', 'Hello from my plugin!');
      }
    });
  }
});

logseq logoLogseq Code Examples

Graph Query

This snippet demonstrates how to perform a graph query in Logseq, which is a core feature for retrieving and filtering data:

(defn query-blocks
  [query-string]
  (let [query (parse-query query-string)
        blocks (db/get-all-blocks)]
    (->> blocks
         (filter #(match-block? % query))
         (map #(assoc % :block/page (:db/id (:block/page %))))
         (sort-by :block/created-at))))

Markdown Parsing

Logseq uses Markdown for content creation. Here's a snippet showcasing the parsing of Markdown content:

(defn parse-markdown
  [content]
  (-> content
      (string/replace #"(?m)^#\s+(.*?)\s*$" "<h1>$1</h1>")
      (string/replace #"(?m)^##\s+(.*?)\s*$" "<h2>$1</h2>")
      (string/replace #"(?m)^###\s+(.*?)\s*$" "<h3>$1</h3>")
      (string/replace #"\*\*(.*?)\*\*" "<strong>$1</strong>")
      (string/replace #"\*(.*?)\*" "<em>$1</em>")))

Plugin System

Logseq supports a plugin system for extending functionality. Here's a snippet demonstrating how to register a new plugin:

(defn register-plugin
  [plugin-name plugin-fn]
  (swap! plugins assoc plugin-name plugin-fn)
  (println "Plugin registered:" plugin-name))

(defn run-plugin
  [plugin-name & args]
  (if-let [plugin-fn (get @plugins plugin-name)]
    (apply plugin-fn args)
    (println "Plugin not found:" plugin-name)))

joplin logoJoplin Quick Start

Installation

  1. Install Node.js (version 12 or later) on your system.

  2. Open a terminal and run the following command to install Joplin:

    npm install -g joplin
    
  3. After installation, start Joplin by running:

    joplin
    

Basic Usage

Creating a Note

  1. In the Joplin terminal interface, press n to create a new note.

  2. Enter a title for your note and press Enter.

  3. Write your note content using Markdown syntax.

  4. Press Ctrl+S to save the note.

Example Note

Here's a simple example of a note in Joplin:



This is a **bold** statement.

- Item 1
- Item 2
- Item 3

[Visit Joplin's website](https://joplinapp.org)

Synchronization

To sync your notes across devices:

  1. Press :config to open the configuration menu.

  2. Set up a sync target (e.g., Dropbox, OneDrive, or WebDAV).

  3. Press Ctrl+S to save the configuration.

  4. Use the :sync command to synchronize your notes.

For more detailed information and advanced features, refer to the official Joplin documentation.

logseq logoLogseq Quick Start

Installation

  1. Visit the Logseq releases page on GitHub.
  2. Download the appropriate version for your operating system (Windows, macOS, or Linux).
  3. Install the application:
    • For Windows: Run the .exe installer
    • For macOS: Drag the .dmg file to your Applications folder
    • For Linux: Use the .AppImage file or install via your package manager

Basic Usage

Creating Your First Graph

  1. Open Logseq after installation.
  2. Click on "Create a new graph" and choose a location on your computer to store your notes.
  3. Start writing in the main editor. Logseq uses Markdown syntax for formatting.

Adding Pages and Links

  1. To create a new page, simply type [[Page Name]] anywhere in your notes.
  2. To link to an existing page, use the same [[]] syntax and start typing the page name. Logseq will show autocomplete suggestions.

Using Daily Notes

Logseq automatically creates a daily note for you. To access it:

  1. Click on the calendar icon in the left sidebar.
  2. Select today's date or navigate to a specific date.
  3. Start writing your daily entries.

Example Usage

Here's a simple example of how you might use Logseq for note-taking:



- [[Project X]] kickoff meeting
- Attendees: [[John]], [[Sarah]], [[Mike]]
- Action items:
  - [ ] John to prepare project timeline
  - [ ] Sarah to contact potential clients
  - [ ] Mike to set up development environment

## Next Steps

- Schedule follow-up meeting for next week
- Review [[Project Goals]]

#meeting #projectx

This example demonstrates creating links to other pages, using task checkboxes, and adding tags to your notes.

Top Related Projects

5,807

Think fearlessly with end-to-end encrypted notes and files. For issues, visit https://standardnotes.com/forum or https://standardnotes.com/help.

Pros of Standard Notes

  • Strong focus on privacy and end-to-end encryption
  • Clean, minimalist interface for distraction-free note-taking
  • Cross-platform synchronization with web, desktop, and mobile apps

Cons of Standard Notes

  • Limited free features compared to Joplin and LogSeq
  • Less flexible in terms of note organization and linking
  • Fewer integrations with third-party tools and services

Code Comparison

Standard Notes (TypeScript):

export function encryptNoteContent(content: string, key: string): string {
  const encrypted = CryptoJS.AES.encrypt(content, key);
  return encrypted.toString();
}

Joplin (JavaScript):

async function encryptNoteContent(content, masterKey) {
  const encryptedContent = await shim.sjclModule.encrypt(masterKey, content);
  return encryptedContent;
}

LogSeq (ClojureScript):

(defn encrypt-content [content key]
  (let [encrypted (-> content
                      (encrypt-string key)
                      (base64-encode))]
    encrypted))

While all three projects focus on note-taking and personal knowledge management, they have different approaches to encryption and data handling. Standard Notes emphasizes simplicity and strong encryption, Joplin offers more features and flexibility, and LogSeq provides a unique outliner-based approach with local-first philosophy.

View More
23,246

The Markdown-based note-taking app that doesn't suck.

Pros of Notable

  • Clean and intuitive user interface
  • Supports attachments and multi-note editing
  • Faster performance for large numbers of notes

Cons of Notable

  • Lacks mobile apps and sync functionality
  • Limited plugin ecosystem compared to Joplin and LogSeq
  • Less active development and community support

Code Comparison

Notable (JavaScript):

import * as React from 'react';
import {render} from 'react-dom';
import App from './components/app';

render(<App />, document.getElementById('root'));

Joplin (TypeScript):

import { App } from './app';
import { setupGlobalShortcuts } from './globalShortcuts';
import { initializePluginService } from './services/plugins/PluginService';

const app = new App();
app.start();
setupGlobalShortcuts(app);
initializePluginService(app);

LogSeq (ClojureScript):

(ns frontend.core
  (:require [frontend.handler.route :as route]
            [frontend.state :as state]
            [frontend.ui :as ui]))

(defn ^:export init []
  (route/start!)
  (state/restore-state!)
  (ui/render!))

Notable focuses on simplicity and performance, while Joplin and LogSeq offer more advanced features and extensibility. Joplin provides better cross-platform support and synchronization options. LogSeq stands out with its graph-based knowledge management approach and bi-directional linking. The code snippets highlight the different technologies used: Notable uses React, Joplin employs TypeScript, and LogSeq is built with ClojureScript.

View More
16,327

A personal knowledge management and sharing system for VSCode

Pros of Foam

  • Lightweight and flexible, integrating seamlessly with VS Code
  • Supports local storage and version control with Git
  • Highly customizable with VS Code extensions

Cons of Foam

  • Less feature-rich compared to Joplin and LogSeq
  • Steeper learning curve for non-technical users
  • Limited mobile support

Code Comparison

Foam (using VS Code API):

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
  // Foam-specific activation code
}

Joplin (using Electron):

const { app, BrowserWindow } = require('electron');

function createWindow() {
  // Joplin-specific window creation
}

LogSeq (using ClojureScript):

(ns logseq.core
  (:require [reagent.core :as r]))

(defn main []
  ;; LogSeq-specific main function
)

Foam leverages VS Code's ecosystem, making it highly extensible but potentially more complex for non-developers. Joplin offers a more traditional note-taking experience with cross-platform support, while LogSeq provides a powerful knowledge graph and outlining capabilities. The choice between these tools depends on the user's specific needs, technical proficiency, and preferred workflow.

View More
2,164

A plain text note-taking assistant

Pros of zk

  • Lightweight and focused on plain text Zettelkasten note-taking
  • Command-line interface for efficient note management
  • Supports flexible note linking and tagging

Cons of zk

  • Limited graphical user interface compared to Joplin and Logseq
  • Fewer built-in features for rich media and document formatting
  • Steeper learning curve for users unfamiliar with command-line tools

Code Comparison

zk (Go):

func (n *Note) Content() (string, error) {
    content, err := os.ReadFile(n.Path)
    return string(content), err
}

Joplin (JavaScript):

async function noteContent(noteId) {
    const note = await Note.load(noteId);
    return note.body;
}

Logseq (ClojureScript):

(defn get-block-content [block-id]
  (when-let [block (db/entity [:block/uuid block-id])]
    (:block/content block)))

These code snippets demonstrate basic note content retrieval in each project, highlighting their different programming languages and approaches to data access.

View More
6,311

Athens is no longer maintainted. Athens was an open-source, collaborative knowledge graph, backed by YC W21

Pros of Athens

  • Built with Clojure/ClojureScript, offering a unique and powerful functional programming approach
  • Focuses on networked thought and bidirectional linking, similar to Roam Research
  • Open-source and self-hostable, providing more control over data

Cons of Athens

  • Less mature and feature-rich compared to Joplin and LogSeq
  • Smaller community and ecosystem, potentially leading to slower development and fewer plugins
  • Steeper learning curve due to its unique approach and Clojure-based architecture

Code Comparison

Athens (ClojureScript):

(defn create-page [title]
  (let [new-page {:node/title title
                  :block/uid (gen-block-uid)}]
    (d/transact! conn [new-page])))

Joplin (JavaScript):

async function createNote(title) {
  const note = await Note.save({
    title: title,
    body: '',
    parent_id: app.selectedFolderId(),
  });
  return note;
}

LogSeq (ClojureScript):

(defn create-page! [repo page-name]
  (let [page (db/create-page! repo page-name)]
    (state/pub-event! [:page/create page])
    page))

All three projects use different languages and approaches, reflecting their unique architectures and design philosophies. Athens and LogSeq both use ClojureScript, while Joplin is built with JavaScript.

View More