Skip to content

Roadmap

Raine Revere edited this page Apr 23, 2024 · 23 revisions

em is a process-oriented note-taking app that facilitates sensemaking flow.

A flow state... is the mental state in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity. [1]

We can experience flow states with anything when the conditions are right. Athletes, musicians, programmers all experience flow. Why not also with sensemaking in our everyday lives? This includes journaling, note-taking, planning, outlining, analyzing, synthesizing, brainstorming, distilling, summarizing, consolidating... any cognitive-linguistic conceptual activity. Pen and paper have always enabled these activities. Yet digital technology is more than simulated paper. We can leverage virtuality to extend our symbolic processing capacities and enable more powerful and fluid sensemaking experiences. As social systems collapse, environmental threats heighten, and cultural change speeds up, we need good sensemaking and good sensemaking tools more than ever before.

em provides a personal thoughtspace coupled with interactive controls that facilitate the emergence of a conceptual flow state. em maps shortcuts and mobile gestures to semantic operations (what your mind is doing) rather than mechanical operations (what the computer is doing), creating a tight feedback loop between thinking and writing.

Vision

An embodied, cybernetic relationship with technology that extends our collective cognitive, linguistic, symbolic, and conceptual capacities so that we may more deeply, thoughtfully, and wisely make sense of ourselves and the world we live in.

Ownership

em is released as public source under the Do No Harm License.

Development of em is funded by the Cybersemics Institute, a U.S.-based 501(c)(3) nonprofit founded by Raine Revere.

Status

em is in alpha status.

Objectives

em development is guided by several major objectives.

πŸ” Sync & Persist

  • πŸ”Œ Sync database
  • πŸ“± Multi-Device Support

⚑️ Performance

  • Load time
  • Render performance
  • Memory usage
  • Sync
    • em must be speedy and smooth up to at least 100,000 thoughts. This would allow a reasonably prolific thinker to use the app for 2-3 years. For a lifetime of sensemaking, em should support 1,000,000+ thoughts.

βœ… Code Quality & Testing

  • Restore unit and jsdom tests
  • Restore Puppeteer tests
  • Fix async generators
  • Vite
  • Restore e2e tests
  • Restore skipped tests
  • Node v18
  • Node v20
  • Restore GitHub Actions
  • Render count tests
  • Upgrade react-dnd
  • Upgrade dependencies
  • Replace mui swipeabledrawer

πŸ“± Mobile App

  • Capacitor

🧠 Fluid Sensemaking

The features and capabilities of a sensemaking tool should be part of an integrated design that affords sensemaking flow. While many more features have been designed, these are the essential features necessary to use em as one's daily sensemaking platform.

  • πŸ™ Context View
    • Initial implementation
    • Re-enable with independent editing
    • Decouple context chain
    • Commands work across normal and context views #320
    • Nested context views
  • πŸ—½ Independent Render #188
    • Thoughts are currently rendered in the DOM as nested elements. Since ancestors are containers of descendants, they cannot be removed, even when they are no longer visible, as that would also remove all of their descendants. Instead, thoughts should be rendered as siblings and their x position controlled programmatically. This will not only allow hidden thoughts to not be rendered, but also more complex animations and transitions.
  • πŸ™‚ Onboarding Experience
    • Test tutorial
    • Improve help system
  • ✏️ Recently Edited
    • Initial implementation #180
    • Not fully merged #323
    • v3 #729
    • Dynamic context #246
  • πŸ” Search
  • πŸ—„ Table View
    • Initial implementation
    • Fix nested table positioning #467
    • Table descendants are indented too far #471
  • πŸ—‘ Undo/Redo
    • Initial implementation #105
    • Persistence
    • View History

πŸ”‘ Security

  • Encryption

Future

  • Linking
  • Collaboration
    • Publish
      • Initial implementation
      • IPFS Pinning
      • Self hosting
      • Mutable
    • Share
      • Public
      • Permissioned
    • Collaborative Editing
  • Import/Export
    • Clipboard
    • HTML
    • JSON #714
    • Roam #865
    • Plaintext
    • WorkFlowy
    • Google Docs
    • Evernote
    • Notion
    • Roam
  • Integrations
    • API
  • UI