Skip to content

Competitive Study — Scientific Editors and Notebooks

Goal: identify the strengths and weaknesses of each competitor to build the best scientific notebook editor on the market.


1. Market Overview

ProductTypeOpen SourcePrimary Focus
Jupyter Notebook/LabComputational notebookYesCode execution + visualization
NotionCollaborative docs/wikiNoGeneral productivity, blocks
OverleafOnline LaTeX editorPartialAcademic LaTeX documents
MathchaVisual math editorNoFormulas + diagrams WYSIWYG
ObservableReactive notebookPartialData visualization, JS
QuartoScientific publishingYesReproducible multi-language documents
TypstTypesetting languageYesModern alternative to LaTeX
CoCalcCollaborative platformPartialJupyter + LaTeX + terminal in the cloud
DeepnoteCollaborative notebookNoJupyter in the cloud + collaboration
HackMD/CodiMDCollaborative MarkdownYesReal-time Markdown

2. Detailed Analysis by Competitor

2.1 Jupyter Notebook / JupyterLab

Strengths:

  • De facto standard for scientific computing
  • Code execution in 100+ languages via kernels
  • Massive extension ecosystem
  • .ipynb format widely adopted
  • Rich output: charts, tables, interactive widgets

Weaknesses:

  • Outdated UX — text editing is clunky
  • No WYSIWYG for Markdown (separate edit/preview)
  • LaTeX only in preview, no visual formula editor
  • No drag & drop to reorder cells (JupyterLab added it partially)
  • No contextual floating toolbar
  • Limited themes, manual CSS customization
  • No real-time collaboration (JupyterLab has experimental extension)
  • Slow startup (Python server + kernel)

Opportunity for sci-notebook:

  • Modern UX with click-to-edit, floating toolbar, insert handles
  • Visual formula editor that Jupyter doesn't have
  • Instant startup (no server, pure frontend)
  • Better mobile experience

2.2 Notion

Strengths:

  • Exceptional UX — the gold standard in block editing
  • Slash commands (/) to insert any block type
  • Smooth drag & drop reordering
  • Inline databases, tables, kanban, calendars
  • Real-time collaboration
  • Reusable templates
  • Robust public API

Weaknesses:

  • No native LaTeX support (only inline with $$, basic rendering)
  • No code execution
  • No visual formula editor (raw LaTeX only)
  • Closed, proprietary, vendor lock-in
  • No robust offline mode
  • Slow formula rendering compared to native KaTeX
  • No advanced syntax highlighting for code

Opportunity for sci-notebook:

  • Adopt Notion's block UX but with a scientific focus
  • Visual formula editor >>> what Notion offers
  • Open source, no vendor lock-in
  • Better code support with real syntax highlighting

2.3 Overleaf

Strengths:

  • Market-leading collaborative LaTeX editor
  • Real-time compilation with PDF preview
  • Thousands of academic templates
  • Integration with journals for direct submission
  • Git sync, Dropbox sync
  • Complete version history

Weaknesses:

  • Steep learning curve (requires knowing LaTeX)
  • No real WYSIWYG mode (the "rich text" is limited)
  • No cells/blocks — it's a plain text editor
  • No code execution
  • No interactive embeds
  • Slow for large documents
  • Dated, non-modern interface

Opportunity for sci-notebook:

  • Visual formula editor that eliminates the LaTeX barrier
  • Cell-based structure more flexible than plain text
  • Interactive embeds (charts, videos, iframes)
  • Superior performance (no need to compile PDF)

2.4 Mathcha

Strengths:

  • Most intuitive WYSIWYG math editor on the market
  • Visual palette of symbols and structures
  • Integrated diagrams (tikz-like)
  • Export to LaTeX, PDF, image
  • No need to know LaTeX to write formulas

Weaknesses:

  • Only formulas and diagrams — not a complete notebook
  • No code cells
  • No Markdown
  • No plugins or extensibility
  • No programmatic API
  • Closed, proprietary
  • No real-time collaboration

Opportunity for sci-notebook:

  • Combine Mathcha's formula UX with a complete notebook
  • Our MathEditor already has a similar block palette
  • Add: drag & drop formula blocks, real-time preview
  • Extensible via plugins

2.5 Observable

Strengths:

  • Reactive notebooks — cells update automatically
  • First-class data visualization (D3, Plot)
  • Notebook import between users
  • Native JavaScript execution in the browser
  • Active visualization community

Weaknesses:

  • JavaScript only (no Python, R, etc.)
  • No robust LaTeX support
  • No visual formula editor
  • Proprietary data model (not .ipynb)
  • No offline mode
  • Learning curve for the reactive model

Opportunity for sci-notebook:

  • Multi-format support (Markdown + LaTeX + code + embeds)
  • Visual formula editor
  • Standard, portable JSON format
  • Observable embeds as iframe

2.6 Quarto

Strengths:

  • First-class scientific publishing
  • Multi-language (Python, R, Julia, Observable JS)
  • Output to HTML, PDF, Word, presentations, books
  • Integration with Jupyter kernels
  • Cross-references, citations, bibliography
  • Extensible via Lua filters

Weaknesses:

  • Not an editor — it's a build/publishing system
  • Requires CLI + external editor (VS Code, RStudio)
  • No interactive UX in the browser
  • No visual formula editor
  • No drag & drop
  • No real-time collaboration

Opportunity for sci-notebook:

  • Be the visual editor that Quarto needs as a frontend
  • Interactive UX that Quarto doesn't have
  • Possible integration: export to Quarto format (.qmd)

2.7 Typst

Strengths:

  • Modern alternative to LaTeX with simpler syntax
  • Ultra-fast incremental compilation
  • Real-time preview
  • Built-in functions and scripting
  • Better error handling than LaTeX
  • Open source

Weaknesses:

  • Young ecosystem, few packages
  • No visual formula editor
  • No cell/notebook model
  • No external code execution
  • Limited adoption vs LaTeX

Opportunity for sci-notebook:

  • Possible plugin to render Typst in addition to LaTeX
  • Our visual formula editor is something Typst doesn't have
  • More flexible cell model

2.8 CoCalc

Strengths:

  • Jupyter + LaTeX + terminal + chat in one platform
  • Real-time collaboration with CRDT
  • Granular version history
  • Support for Sage, R, Julia, Octave
  • TimeTravel (edit replay)

Weaknesses:

  • Complex, overloaded UX
  • Slow (remote server required)
  • No visual formula editor
  • Outdated interface
  • Requires account and connection

Opportunity for sci-notebook:

  • Clean, modern UX vs CoCalc's complexity
  • Works offline, no server
  • Visual formula editor

3. Feature Comparison Matrix

FeatureJupyterNotionOverleafMathchaObservableQuartoTypstCoCalcsci-notebook
Cells/Blocks
Markdown WYSIWYG
LaTeX rendering⚠️⚠️
Visual formula editor
Symbol palette
Image cells
Image drag & drop
Embeds/iframes⚠️
Floating toolbar
Insert handles
Click-to-editN/AN/AN/AN/A
Drag reorder⚠️
Keyboard nav⚠️⚠️N/A
Light/dark themes⚠️⚠️
Code execution
RT collaboration🔜
Open source⚠️⚠️⚠️
Serverless
Plugin system
Framework agnostic
Presentation mode⚠️
PDF/DOCX export⚠️
Mobile support

Legend: ✅ = Yes | ⚠️ = Partial | ❌ = No | 🔜 = Planned


4. Unique Competitive Advantages of sci-notebook

4.1 What NOBODY else has (combined)

  1. Visual formula editor + notebook: Only Mathcha has a visual editor, but it's not a notebook. Only Jupyter has a notebook, but no visual editor. sci-notebook is the only one that combines both.

  2. Framework agnostic + serverless: Works 100% in the browser with no backend. No competitor offers this with the same level of features.

  3. Plugin system + modern UX: Jupyter's extensibility with Notion's UX.

  4. Open source + scientific focus: Quarto is open source but not an editor. Jupyter is open source but the UX is outdated.

4.2 Key Differentiators

DifferentiatorDescription
Visual MathEditor9 categories, 100+ blocks, real-time preview, dual mode (visual/raw)
Zero-serverPure TypeScript, works offline, embed in any app
Micro-bundleCore ~45KB, React adapter ~80KB, vs Jupyter (MB of Python + JS)
Instant bootNo kernel startup, no compilation, immediate rendering
ComposableEvery feature is an opt-in plugin, tree-shakeable

5. Identified Gaps — What We Were Missing

5.1 Critical (necessary to compete)

#GapReference CompetitorPriority
G1Slash commands (/ to insert)Notion🔴 High
G2Drag & drop reorder of cellsNotion, JupyterLab🔴 High
G3Code execution (at least JS/Python via Pyodide)Jupyter, Observable🔴 High
G4Syntax highlighting in code cellsJupyter, VS Code🔴 High
G5Export to PDF, HTML, Markdown, .ipynbQuarto, Jupyter🔴 High
G6Real-time collaboration (Yjs/CRDT)Notion, Overleaf, CoCalc🟡 Medium

5.2 Important (quality differentiators)

#GapReference CompetitorPriority
G7Table editor interactive within cellsNotion🟡 Medium
G8Mermaid diagrams renderingJupyter, Quarto🟡 Medium
G9TOC sidebar (table of contents)Notion, JupyterLab🟡 Medium
G10Find & replace across cellsOverleaf, Jupyter🟡 Medium
G11Cell output display (for execution)Jupyter🟡 Medium
G12Version history / diffingOverleaf, CoCalc🟡 Medium

5.3 Nice-to-have (polish)

#GapReference CompetitorPriority
G13Presentation mode (slideshow)Jupyter RISE🟢 Low
G14Comments / annotationsNotion, Google Docs🟢 Low
G15Templates galleryNotion, Overleaf🟢 Low
G16Mobile-optimized UINotion🟢 Low
G17Autocomplete for LaTeX commandsOverleaf🟢 Low
G18Citation management (BibTeX)Overleaf, Quarto🟢 Low

6. Strategy — How to Be the Best

Immediate Phase (v0.2) ✅ COMPLETE

  • [x] G1: Slash commands — SlashCommand.tsx with 8 types, filter, keyboard nav
  • [x] G2: Drag & drop reorder with top/bottom indicator
  • [x] G4: Syntax highlighting with Shiki (lazy loading, 30+ languages)
  • [x] G8: Mermaid diagrams — renderMermaidFallback() in pipeline

Short Phase (v0.3) ✅ COMPLETE

  • [x] G3: JS code execution in sandbox + custom language executors
  • [x] G5: Export to standalone HTML + Markdown + .ipynb + JSON
  • [x] G7: Interactive table editor — TableCell.tsx
  • [x] G9: TOC sidebar — TOCSidebar.tsx

Medium Phase (v0.4) ✅ COMPLETE

  • [x] G10: Global find & replace — FindReplace.tsx with Ctrl+F
  • [x] G11: Cell outputs — CellOutputDisplay.tsx (stream/display/error)
  • [x] G17: LaTeX autocomplete — 120+ commands in 8 categories
  • [x] G12: Version history — VersionHistory with save/restore/diff

Long Phase (v1.0) ✅ COMPLETE (partial)

  • [x] G13: Presentation mode — PresentationEngine with 3 split modes, transitions, fullscreen
  • [x] G16: Mobile-optimized UI — MobileAdapter with touch gestures, responsive CSS
  • [x] G5 (extended): PDF/DOCX export — plugin-export with browser print and Office Open XML
  • [ ] G6: Real-time collaboration (Yjs) — out of scope v1.0
  • [ ] G14: Comments — out of scope v1.0
  • [ ] G18: Citations — out of scope v1.0

7. Design Principles for "The Best Editor"

  1. Instant feedback: Every user action produces immediate visual result (<16ms)
  2. Zero friction: Never more than 2 clicks for any common operation
  3. Progressive disclosure: Simple by default, powerful when you need it
  4. Keyboard-first: Everything accessible by keyboard, mouse is optional
  5. Offline-first: Works without connection, syncs when online
  6. Composable: Every feature is a plugin, nothing is mandatory
  7. Beautiful defaults: Looks professional without configuration
  8. Accessible: WCAG 2.1 AA, screen readers, high contrast
  9. Fast: <100ms for any operation, <1s for boot
  10. Open: Standard JSON format, no vendor lock-in, MIT license

8. Conclusion

sci-notebook occupies a unique niche: scientific notebook editor with modern UX, visual formula editor, and plugin architecture — all serverless, open source, and framework agnostic.

No competitor combines these characteristics. The strategy is:

  1. Maintain the unique advantages (MathEditor, zero-server, plugins)
  2. Close the critical gaps (slash commands, drag reorder, code execution, syntax highlighting) — ✅ DONE
  3. Polish the UX to surpass Notion in the scientific niche
  4. Build community with excellent docs and working examples

Integrated under the Sci DNA / VeloSci Ecosystem