How peakk2011/mousse works
Mousse is an Electron-based writing and thinking workspace whose main user workflow is composing and formatting notes in the renderer, with command-palette and preview affordances, and optional collaboration and canvas-style marker-board organization. The main process boots the app and manages windows; the renderer owns editing and note state. Separate branches cover sharing/profile UI and real-time collaboration. The README documents several capabilities whose internal wiring is not shown here, so those branches are represented at their known module paths without speculative call chains; unsampled implementation details are not asserted.
Main entry points: WindowManager.js Board windows · editorPage.js Rich editor · noteStore.js Note state · initFascinateNotes.js App bootstrap
Components 25
App runtime
- App bootstrap
src/initFascinateNotes.js - Electron entry
src/main.js - Window lifecycle
src/core/createWindow.js - IPC manager
src/core/ipcManager.js
Writing workspace
- Renderer app
src/renderer/content/app.js - Rich editor
src/renderer/content/pages/editorPage.js - Editing pipeline
src/renderer/scripts/editor/markdown.js - Command palette
src/renderer/content/contentComponents/commandPalette/controller/CommandPaletteController.js - Cursor manager
src/renderer/content/contentComponents/commandPalette/utils/CursorManager.js - Note interactions
src/renderer/scripts/note/notehandlers.js - Note state
src/renderer/scripts/note/noteStore.js
Marker board
- Board orchestration
src/api/marker/board/MarkerBoard.js - Board windows
src/api/marker/window/WindowManager.js - Window rendering
src/api/marker/window/WindowFactory.js - Group management
src/api/marker/group/GroupManager.js - Board persistence
src/api/marker/board/persistence.js - Note previews
src/api/marker/board/preview.js - Canvas navigation
src/api/marker/controllers/zoomPan.js
Collaboration
- Collaboration client
src/renderer/scripts/collab/realtimeCollab.js - Collaboration service
workers/collab/index.js - Collaboration persistence
workers/collab/persistence.js
Sharing and profile
- Room sharing
src/renderer/content/pageComponents/collabShare.js - Profile editor
src/renderer/content/pageComponents/profile/steps/detailsStep.js
Other components
- User
- WebSocket service
Connections 24
- User → Electron entry: launches
- Electron entry → App bootstrap: starts
src/main.js - App bootstrap → Window lifecycle: creates windows
src/initFascinateNotes.js - App bootstrap → IPC manager: configures IPC
- Window lifecycle → Renderer app: loads interface
- User → Renderer app: uses workspace
- Renderer app → Rich editor: opens editor
- Rich editor → Editing pipeline: transforms input
- Rich editor → Note state: edits notes
- Command palette → Cursor manager: saves and restores
src/renderer/content/contentComponents/commandPalette/controller/CommandPaletteController.js - Command palette → Rich editor: applies commands
- Note interactions → Note state: updates notes
- Board orchestration → Board windows: manages windows
- Board windows → Window rendering: creates windows
src/api/marker/window/WindowManager.js - Board windows → Board persistence: persists board
src/api/marker/window/WindowManager.js - Board windows → Note state: deletes note
src/api/marker/window/WindowManager.js - Group management → Board persistence: persists groups
src/api/marker/group/GroupManager.js - Note previews → Note state: reads note
src/api/marker/board/preview.js - Board orchestration → Canvas navigation: navigates canvas
- Collaboration client → WebSocket service: syncs over WebSocket
- Collaboration service → Collaboration persistence: uses persistence
workers/collab/index.js - Room sharing → Collaboration client: starts room sharing
- User → Room sharing: shares room
- User → Profile editor: edits profile